@@ -2,7 +2,6 @@ package matching
22
33import (
44 "context"
5- "strings"
65 "sync"
76 "time"
87
@@ -21,6 +20,7 @@ import (
2120 "go.temporal.io/server/common/persistence"
2221 "go.temporal.io/server/common/persistence/serialization"
2322 "go.temporal.io/server/common/persistence/visibility/manager"
23+ "go.temporal.io/server/common/primitives"
2424 "go.temporal.io/server/common/resource"
2525 "go.temporal.io/server/common/searchattribute"
2626 "go.temporal.io/server/common/testing/testhooks"
@@ -156,18 +156,12 @@ func (h *Handler) opMetricsHandler(
156156 )
157157}
158158
159- // internalTaskQueuePrefix identifies server-internal task queues
160- // (e.g. /temporal-sys/worker-commands/{namespace}/{worker_grouping_key}).
161- // Note: BreakdownMetricsByTaskQueue should NOT be enabled for these queues as
162- // they are per-worker and will cause cardinality explosion.
163- const internalTaskQueuePrefix = "/temporal-sys/"
164-
165159// recordNexusTaskRequest emits the nexus_task_requests metric with namespace,
166160// operation, client_name, and is_internal tags.
167- func (h * Handler ) recordNexusTaskRequest (ctx context.Context , namespaceID string , taskQueueName string , operation string ) {
161+ func (h * Handler ) recordNexusTaskRequest (ctx context.Context , namespaceID string , taskQueueKind enumspb. TaskQueueKind , operation string ) {
168162 nsName := h .namespaceName (namespace .ID (namespaceID ))
169163 clientName , _ := headers .GetClientNameAndVersion (ctx )
170- isInternal := strings . HasPrefix ( taskQueueName , internalTaskQueuePrefix )
164+ isInternal := primitives . IsInternalTaskQueueKind ( taskQueueKind )
171165 metrics .NexusTaskRequests .With (h .metricsHandler ).Record (1 ,
172166 metrics .NamespaceTag (nsName .String ()),
173167 metrics .OperationTag (operation ),
@@ -531,7 +525,7 @@ func (h *Handler) PollNexusTaskQueue(ctx context.Context, request *matchingservi
531525 // Only record on the initial handler call (ForwardedSource == ""), not on
532526 // the forwarded call to the root partition, to avoid double-counting.
533527 if request .GetForwardedSource () == "" {
534- h .recordNexusTaskRequest (ctx , request .GetNamespaceId (), request .GetRequest ().GetTaskQueue ().GetName (), "PollNexusTaskQueue" )
528+ h .recordNexusTaskRequest (ctx , request .GetNamespaceId (), request .GetRequest ().GetTaskQueue ().GetKind (), "PollNexusTaskQueue" )
535529 }
536530
537531 if request .GetForwardedSource () != "" {
@@ -556,7 +550,7 @@ func (h *Handler) RespondNexusTaskCompleted(ctx context.Context, request *matchi
556550 enumspb .TASK_QUEUE_TYPE_NEXUS ,
557551 metrics .MatchingRespondNexusTaskCompletedScope ,
558552 )
559- h .recordNexusTaskRequest (ctx , request .GetNamespaceId (), request .GetTaskQueue ().GetName (), "RespondNexusTaskCompleted" )
553+ h .recordNexusTaskRequest (ctx , request .GetNamespaceId (), request .GetTaskQueue ().GetKind (), "RespondNexusTaskCompleted" )
560554
561555 return h .engine .RespondNexusTaskCompleted (ctx , request , opMetrics )
562556}
@@ -569,7 +563,7 @@ func (h *Handler) RespondNexusTaskFailed(ctx context.Context, request *matchings
569563 enumspb .TASK_QUEUE_TYPE_NEXUS ,
570564 metrics .MatchingRespondNexusTaskFailedScope ,
571565 )
572- h .recordNexusTaskRequest (ctx , request .GetNamespaceId (), request .GetTaskQueue ().GetName (), "RespondNexusTaskFailed" )
566+ h .recordNexusTaskRequest (ctx , request .GetNamespaceId (), request .GetTaskQueue ().GetKind (), "RespondNexusTaskFailed" )
573567
574568 return h .engine .RespondNexusTaskFailed (ctx , request , opMetrics )
575569}
0 commit comments