Service Performance Monitoring (SPM)
Service Performance Monitoring surfaces in Jaeger UI as the "Monitor" tab and helps identify interesting traces without requiring prior knowledge of service or operation names. The feature aggregates span data to produce RED (Request, Error, Duration) metrics.
UI Feature Overview
The Monitor tab provides service-level and operation-level aggregation of:
- Request rates
- Error rates
- Durations (P95, P75, P50)
An "Impact" metric is computed as the product of latency and request rate, helping identify operations with high business impact despite varied latency profiles.
Architecture
The SpanMetrics Connector receives spans and generates metrics exported to a PromQL-compatible backend. Jaeger Query then retrieves these pre-computed metrics. This approach requires:
- A SpanMetrics Connector is introduced in the pipeline that receives trace data (spans) and generates RED metrics.
- An external Metrics Store that supports PromQL queries.
- A configuration in the
jaeger_queryextension to reference the external metrics store.

Derived Time Series
The SpanMetrics Connector generates two metric names:
traces_span_metrics_calls (counter type)
- Counts total spans, including error spans
- Call counts differentiated from errors via the
status_codelabel - Errors identified as time series with label
status_code = "STATUS_CODE_ERROR"
traces_span_metrics_duration (histogram type)
- Histogram of span durations/latencies
- Creates additional time series:
traces_span_metrics_duration_count: Total data points across bucketstraces_span_metrics_duration_sum: Sum of all data point valuestraces_span_metrics_duration_bucket: Collection of time series for each bucket
Estimated time series calculation:
Configuration
Enable the SpanMetrics Connector in your OpenTelemetry Collector pipeline:
Define a remote PromQL-compatible storage in Jaeger:
Reference the metrics store in the jaeger_query extension: