Open-Source Wikis

/

Temporal

/

How to monitor

temporalio/temporal

How to monitor

The Temporal server exposes structured logs, metrics, and OpenTelemetry traces. This section is the operator-oriented entry point; the implementation details are on Systems → Telemetry.

Sub-page Covers
Logging Where logs go, log level configuration, structured fields, log levels per code path.
Metrics What is tracked, key SLIs, dashboards, how to add a metric.
Tracing OpenTelemetry setup, span naming, how to trace a request end-to-end.

A short overview

  • Logs — Uber zap, structured fields, configured under the log: block of YAML config.
  • Metrics — defined centrally in common/metrics/metric_defs.go, exported via Prometheus / OpenTelemetry / statsd.
  • Traces — OpenTelemetry SDK + OTLP exporters, configured under global.tracerProvider.
  • Health checks — every service exposes the standard gRPC health-check service plus a deeper internal check.

Health endpoints

Each service runs a gRPC health-check endpoint registered by common/rpc/interceptor/health.go. The History service additionally exposes a deep health check at service/history/deep_health_check.go that walks shard ownership, persistence, and membership.

For load-balancer probes the standard health-check is sufficient. For more discriminating health (e.g. mark a host unhealthy when it lost shard ownership but the gRPC server is still up) the deep health check is what you want.

Useful inputs to monitor

Signal Why it matters
Per-RPC latency p99 / error rate Standard SLI for any gRPC service.
Shard ownership transitions per second A spike means hosts are flapping; investigate Ringpop and persistence.
Queue depth per History queue family Unbounded growth signals a stuck executor or downstream dependency.
Replication lag "How far behind is the standby?" — exposed as replication_* metrics.
Persistence operation latency Bottlenecks here propagate everywhere.
Matching task forwarder rate High forwarder rates indicate idle child partitions; consider re-shard.
DLQ message count Anything above zero is operator attention.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to monitor – Temporal wiki | Factory