Metric Types
Temporal uses four metric types:- Counter - Monotonically increasing value (e.g., request count)
- Gauge - Point-in-time value that can increase or decrease (e.g., queue size)
- Timer - Duration measurements with histogram distribution
- Histogram - Value distribution (bytes, dimensionless counts)
Common Metric Tags
All metrics may include these tags:| Tag | Description | Values |
|---|---|---|
operation | API method or operation name | Method-specific |
service_role | Service type | frontend, history, matching, worker, admin |
namespace | Namespace name | User-defined |
task_category | Task category type | transfer, timer, visibility, archival |
task_type | Specific task type | Task-specific |
failure | Failure reason | Error-specific |
error_type | Error classification | invalid_argument, not_found, etc. |
cache_type | Cache identifier | mutablestate, events, etc. |
db_kind | Database type | cassandra, mysql, postgres, sqlite |
Service-Level Metrics
Request Metrics
service_requests
Type: CounterDescription: Total number of RPC requests received by the service
Tags:
operation, service_role
service_pending_requests
Type: GaugeDescription: Current number of pending/in-flight requests
Tags:
operation, service_role
service_latency
Type: TimerDescription: End-to-end request latency including user code execution
Tags:
operation, service_roleUnit: milliseconds
service_latency_nouserlatency
Type: TimerDescription: Server-side processing latency excluding user code execution
Tags:
operation, service_roleUnit: milliseconds
service_latency_userlatency
Type: TimerDescription: Time spent in user code (workflow/activity execution)
Tags:
operation, service_roleUnit: milliseconds
Error Metrics
service_errors
Type: CounterDescription: Total unexpected service errors
Tags:
operation, service_role
service_error_with_type
Type: CounterDescription: Service errors categorized by error type
Tags:
operation, service_role, error_type
service_errors_invalid_argument
Type: CounterDescription: Requests rejected due to invalid arguments
Tags:
operation, service_role
service_errors_namespace_not_active
Type: CounterDescription: Requests to inactive namespaces
Tags:
operation, service_role, namespace
service_errors_resource_exhausted
Type: CounterDescription: Requests rejected due to resource limits
Tags:
operation, service_role, resource_exhausted_cause, resource_exhausted_scope
service_errors_entity_not_found
Type: CounterDescription: Requests for non-existent entities (workflow, namespace, etc.)
Tags:
operation, service_role
service_errors_execution_already_started
Type: CounterDescription: Attempts to start already-running workflows
Tags:
operation, service_role
service_errors_context_timeout
Type: CounterDescription: Requests that timed out
Tags:
operation, service_role
service_errors_unauthorized
Type: CounterDescription: Authorization denied requests
Tags:
operation, service_role, namespace
service_errors_authorize_failed
Type: CounterDescription: Authorization system failures
Tags:
operation, service_role, namespace
Connection Metrics
service_grpc_conn_accepted
Type: CounterDescription: Number of gRPC TCP connections accepted
Tags:
service_role
service_grpc_conn_closed
Type: CounterDescription: Number of gRPC TCP connections closed
Tags:
service_role
service_grpc_conn_active
Type: GaugeDescription: Current number of active gRPC connections
Tags:
service_role
service_dial_latency
Type: TimerDescription: Latency of establishing new TCP connections
Tags:
service_roleUnit: milliseconds
service_dial_success
Type: CounterDescription: Successful TCP connection attempts
Tags:
service_role
service_dial_error
Type: CounterDescription: Failed TCP connection attempts
Tags:
service_role
Persistence Metrics
All persistence metrics follow the pattern:Persistence{Operation}Scope
Shard Operations
GetOrCreateShard
Description: Shard metadata retrieval or initializationTags:
db_kind
UpdateShard
Description: Shard metadata updatesTags:
db_kind
AssertShardOwnership
Description: Shard ownership validationTags:
db_kind
Workflow Execution Operations
CreateWorkflowExecution
Description: New workflow execution creationTags:
db_kind
GetWorkflowExecution
Description: Workflow execution state retrievalTags:
db_kind
UpdateWorkflowExecution
Description: Workflow execution state updatesTags:
db_kind
DeleteWorkflowExecution
Description: Workflow execution deletionTags:
db_kind
GetCurrentExecution
Description: Current workflow run retrievalTags:
db_kind
History Operations
AppendHistoryNodes
Description: History event append operationsTags:
db_kind
ReadHistoryBranch
Description: History event readsTags:
db_kind
ReadHistoryBranchReverse
Description: Reverse chronological history readsTags:
db_kind
DeleteHistoryBranch
Description: History branch deletionTags:
db_kind
ForkHistoryBranch
Description: History branch creation for resetTags:
db_kind
Task Queue Operations
GetTransferTasks
Description: Transfer task retrievalTags:
db_kind
CompleteTransferTask
Description: Transfer task completionTags:
db_kind
GetTimerTasks
Description: Timer task retrievalTags:
db_kind
CompleteTimerTask
Description: Timer task completionTags:
db_kind
GetVisibilityTasks
Description: Visibility task retrievalTags:
db_kind
GetReplicationTasks
Description: Replication task retrievalTags:
db_kind
DLQ Operations
EnqueueMessageToDLQ
Description: Messages moved to dead letter queueTags:
db_kind, queue_type
ReadMessagesFromDLQ
Description: DLQ message readsTags:
db_kind, queue_type
DeleteMessageFromDLQ
Description: Individual DLQ message deletionTags:
db_kind, queue_type
RangeDeleteMessagesFromDLQ
Description: Bulk DLQ message deletionTags:
db_kind, queue_type
dlq_message_count
Type: GaugeDescription: Number of messages in DLQ by task category
Tags:
task_categoryNote: Emitted every 3 hours from shard 1 owner
Namespace Operations
CreateNamespace
Description: Namespace creationTags:
db_kind
GetNamespace
Description: Namespace metadata retrievalTags:
db_kind
UpdateNamespace
Description: Namespace metadata updatesTags:
db_kind
ListNamespaces
Description: Namespace listingTags:
db_kind
History Service Metrics
Workflow Operations
StartWorkflowExecution
Description: Workflow start requestsTags:
namespace
RespondWorkflowTaskCompleted
Description: Workflow task completion processingTags:
namespace
RespondActivityTaskCompleted
Description: Activity task completion processingTags:
namespace
RecordActivityTaskHeartbeat
Description: Activity heartbeat processingTags:
namespace
Shard Management
ShardController
Description: Shard controller operationsTags:
shard-id
ShardInfo
Description: Shard metadata operationsTags:
shard-id
Task Processing
TransferQueueProcessor
Description: Transfer queue processingTags:
task_type
TimerQueueProcessor
Description: Timer queue processingTags:
task_type
VisibilityQueueProcessor
Description: Visibility queue processingTags:
task_type
ArchivalQueueProcessor
Description: Archival queue processingTags:
task_type
Cache Metrics
HistoryCacheGetOrCreate
Description: History cache operationsTags:
namespace
EventsCacheGetEvent
Description: Event cache retrievalsTags: No additional tags
EventsCachePutEvent
Description: Event cache insertionsTags: No additional tags
EventsCacheGetFromStore
Description: Event cache misses requiring database fetchTags: No additional tags
Matching Service Metrics
PollWorkflowTaskQueue
Description: Workflow task poll operationsTags:
namespace
PollActivityTaskQueue
Description: Activity task poll operationsTags:
namespace
AddActivityTask
Description: Activity task additions to queueTags:
namespace
AddWorkflowTask
Description: Workflow task additions to queueTags:
namespace
TaskQueueMgr
Description: Task queue manager operationsTags:
namespace
Worker Service Metrics
HistoryArchiver
Description: History archival operationsTags:
namespace
VisibilityArchiver
Description: Visibility archival operationsTags:
namespace
Replicator
Description: Cross-cluster replication operationsTags:
namespace, cluster
Authorization Metrics
service_authorization_latency
Type: TimerDescription: Authorization check duration
Tags:
operation, namespaceUnit: milliseconds
Resource Metrics
Lock Metrics
lock_requests
Type: CounterDescription: Lock acquisition attempts
Tags: No additional tags
lock_latency
Type: TimerDescription: Time waiting for lock acquisition
Tags: No additional tags
Unit: milliseconds
Semaphore Metrics
semaphore_requests
Type: CounterDescription: Semaphore acquisition attempts
Tags: No additional tags
semaphore_failures
Type: CounterDescription: Failed semaphore acquisitions
Tags: No additional tags
semaphore_latency
Type: TimerDescription: Time waiting for semaphore acquisition
Tags: No additional tags
Unit: milliseconds
TLS Metrics
certificates_expired
Type: GaugeDescription: Number of expired TLS certificates
Tags: No additional tags
certificates_expiring
Type: GaugeDescription: Number of certificates expiring within warning window
Tags: No additional tags
Workflow Metrics
state_transition_count
Type: HistogramDescription: Number of state transitions per workflow task
Tags:
namespace
history_size
Type: HistogramDescription: Workflow history size in bytes
Tags:
namespaceUnit: bytes
history_count
Type: HistogramDescription: Number of events in workflow history
Tags:
namespace
event_blob_size
Type: HistogramDescription: Size of individual event blobs
Tags:
namespaceUnit: bytes
search_attributes_size
Type: HistogramDescription: Size of search attributes payload
Tags:
namespaceUnit: bytes
memo_size
Type: HistogramDescription: Size of workflow memo
Tags:
namespaceUnit: bytes
Limit Exceeded Metrics
wf_too_many_pending_activities
Type: CounterDescription: Workflow tasks failed due to pending activity limit
Tags:
namespace
wf_too_many_pending_child_workflows
Type: CounterDescription: Workflow tasks failed due to pending child workflow limit
Tags:
namespace
wf_too_many_pending_cancel_requests
Type: CounterDescription: Workflow tasks failed due to pending cancel request limit
Tags:
namespace
blob_size_error
Type: CounterDescription: Requests failed due to blob size limits
Tags:
namespace
Client Metrics
client_requests
Type: CounterDescription: Outbound client requests to other services
Tags:
service_role, operation
client_errors
Type: CounterDescription: Client request errors
Tags:
service_role, operation
client_latency
Type: TimerDescription: Client request latency
Tags:
service_role, operationUnit: milliseconds
Metric Collection Best Practices
Histogram Bucket Configuration
Customize histogram buckets based on your workload:Tag Cardinality
Be cautious with high-cardinality tags:Sampling for High Volume
For extremely high request rates, consider sampling at the metrics backend level rather than in Temporal.See Also
- Monitoring Guide - Setup and alerting
- Scaling Guide - Using metrics for scaling decisions
- Persistence - Database-level metrics