Skip to content

Commit 6498271

Browse files
rkannan82claude
andcommitted
Suppress per-task-queue metrics for /temporal-sys/ internal queues
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 44094da commit 6498271

2 files changed

Lines changed: 53 additions & 8 deletions

File tree

service/matching/matching_engine.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -540,14 +540,19 @@ func (e *matchingEngineImpl) loggerAndMetricsForPartition(
540540
tag.WorkflowTaskQueueName(partition.RpcName()),
541541
tag.WorkflowTaskQueueType(partition.TaskType()),
542542
tag.WorkflowNamespace(nsName))
543-
metricsHandler := metrics.GetPerTaskQueuePartitionIDScope(
544-
e.metricsHandler,
545-
nsName,
546-
partition,
547-
tqConfig.BreakdownMetricsByTaskQueue(),
548-
tqConfig.BreakdownMetricsByPartition(),
549-
metrics.OperationTag(metrics.MatchingTaskQueuePartitionManagerScope),
550-
).WithTags(metrics.NamespaceStateTag(nsState))
543+
var metricsHandler metrics.Handler
544+
if strings.HasPrefix(partition.TaskQueue().Name(), internalTaskQueuePrefix) {
545+
metricsHandler = metrics.NoopMetricsHandler
546+
} else {
547+
metricsHandler = metrics.GetPerTaskQueuePartitionIDScope(
548+
e.metricsHandler,
549+
nsName,
550+
partition,
551+
tqConfig.BreakdownMetricsByTaskQueue(),
552+
tqConfig.BreakdownMetricsByPartition(),
553+
metrics.OperationTag(metrics.MatchingTaskQueuePartitionManagerScope),
554+
).WithTags(metrics.NamespaceStateTag(nsState))
555+
}
551556
return logger, throttledLogger, metricsHandler
552557
}
553558

service/matching/matching_engine_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5223,6 +5223,46 @@ func (*testTaskManager) CountTaskQueuesByBuildId(context.Context, *persistence.C
52235223
return 0, nil
52245224
}
52255225

5226+
func TestLoggerAndMetricsForPartition_InternalTaskQueue(t *testing.T) {
5227+
t.Parallel()
5228+
5229+
controller := gomock.NewController(t)
5230+
ns, mockNamespaceCache := createMockNamespaceCache(controller, matchingTestNamespace)
5231+
config := defaultTestConfig()
5232+
e := createTestMatchingEngine(log.NewTestLogger(), controller, config, nil, mockNamespaceCache)
5233+
e.metricsHandler = metricstest.NewCaptureHandler()
5234+
5235+
tests := []struct {
5236+
name string
5237+
tqName string
5238+
expectNoop bool
5239+
}{
5240+
{
5241+
name: "normal task queue gets real metrics handler",
5242+
tqName: "my-task-queue",
5243+
expectNoop: false,
5244+
},
5245+
{
5246+
name: "internal nexus task queue gets noop metrics handler",
5247+
tqName: "/temporal-sys/worker-commands/ns/key",
5248+
expectNoop: true,
5249+
},
5250+
}
5251+
5252+
for _, tc := range tests {
5253+
t.Run(tc.name, func(t *testing.T) {
5254+
prtn := newRootPartition(ns.ID().String(), tc.tqName, enumspb.TASK_QUEUE_TYPE_NEXUS)
5255+
tqConfig := newTaskQueueConfig(prtn.TaskQueue(), config, matchingTestNamespace)
5256+
_, _, handler := e.loggerAndMetricsForPartition(ns, prtn, tqConfig)
5257+
if tc.expectNoop {
5258+
assert.Equal(t, metrics.NoopMetricsHandler, handler)
5259+
} else {
5260+
assert.NotEqual(t, metrics.NoopMetricsHandler, handler)
5261+
}
5262+
})
5263+
}
5264+
}
5265+
52265266
func TestConvertPollWorkflowTaskQueueResponse(t *testing.T) {
52275267
t.Parallel()
52285268

0 commit comments

Comments
 (0)