Dash0 acquires Polar Signals

Last updated: September 18, 2026

Span Metrics

Metrics counting and measuring Dash0 spans.

dash0.spans

Counts the number of spans ingested by Dash0.

View the dash0.spans metric in Dash0

PropertyValue
InstrumentCounter
Unit{span}
StabilityStable

dash0.spans is a synthetic metric: it is not stored as a metric time series, but computed on-the-fly from the ingested span data. It can be filtered and grouped by any span or resource attribute.

dash0.spans counts the spans that Dash0 received and stored, so it is not a measure of the total request rate of a sampled service. If spans are sampled before they reach Dash0, for example with head sampling in the SDK or tail sampling in a collector, the count reflects only the spans that were forwarded, and sampling rules applied at ingestion reduce it further. For request rates that do not depend on the sampling applied at ingestion, use dash0.spans.red, which is computed before that sampling decision is made.

Deprecated PromQL alias: dash0_spans_total.

For example: sum by (service_name) ({otel_metric_name="dash0.spans"}) yields one time series per value of service.name.

Note

This synthetic metric does not expose attributes by default. You can group by span attributes and resource attributes using PromQL aggregations.

It is computed from the telemetry that reached Dash0, so sampling applied before ingestion also reduces what it reports.

Note

Counters always start from zero regardless of query timeframe and represent only the increase over time, providing a clear view of trends without retaining absolute counts.

dash0.spans.duration

Distribution of span durations as a histogram.

View the dash0.spans.duration metric in Dash0

PropertyValue
InstrumentHistogram
Units
StabilityStable

dash0.spans.duration is a synthetic metric: it is not stored as a metric time series, but computed on-the-fly from the ingested span data. It can be filtered and grouped by any span or resource attribute.

dash0.spans.duration describes the spans that Dash0 received and stored, not every span a service produced. If spans are sampled before they reach Dash0, for example with head sampling in the SDK or tail sampling in a collector, the distribution describes only the spans that were forwarded, and sampling rules applied at ingestion narrow it further. Sampling that is biased toward particular spans, such as tail sampling that keeps errors and slow requests, skews the distribution accordingly. For latency distributions that do not depend on the sampling applied at ingestion, use dash0.spans.red, which is computed before that sampling decision is made.

Deprecated PromQL aliases: dash0_spans_duration_seconds_bucket, dash0_spans_duration_seconds_sum, dash0_spans_duration_seconds_count.

Note

This synthetic metric does not expose attributes by default. You can group by span attributes and resource attributes using PromQL aggregations.

It is computed from the telemetry that reached Dash0, so sampling applied before ingestion also reduces what it reports.

dash0.spans.red

Exponential histogram of span durations used for RED (Rate, Errors, Duration) metrics.

View the dash0.spans.red metric in Dash0

PropertyValue
InstrumentHistogram
Units
StabilityDevelopment

dash0.spans.red is generated on the basis of 100 percent of the spans that Dash0 receives, before any sampling rules are applied at ingestion. Unlike the synthetic dash0.spans.duration metric, dash0.spans.red is stored as a real metric time series with a fixed set of attributes.

Spans that never reach Dash0 are not part of the calculation. If you sample before sending to Dash0, for example with head sampling in the SDK or tail sampling in an upstream collector, dash0.spans.red is computed only on the spans that were forwarded.

Dash0 materializes dash0.spans.red at ingestion time for every service that sends spans. No metric definition, recording rule, or span-to-metrics conversion has to be set up or maintained.

The metric uses an exponential histogram instrument, which provides high accuracy across a wide range of durations without requiring predefined bucket boundaries. Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
dash0.operation.nameStableRequiredstringHuman-readable name for the logical operation a span belongs to. [1]GET /api/users; SELECT ... FROM orders; publish orders-topic
dash0.operation.typeStableRequiredstringThe type of the logical operation a span belongs to. [2]http; db; rpc; messaging; headless; rum; unknown
otel.span.kindStableRequiredstringThe span kind, as defined by the OpenTelemetry specification.SERVER; CLIENT; INTERNAL; PRODUCER; CONSUMER
otel.span.status.codeStableRequiredstringThe span status code, as defined by the OpenTelemetry specification.UNSET; OK; ERROR
service.nameStableRequiredstringLogical name of the service. [3]shoppingcart

[1] dash0.operation.name: Derived at ingestion time from span attributes using pattern templates defined by operation naming rules (e.g., GET /api/users for HTTP, SELECT ... FROM my-table for database). Cardinality reduction is applied automatically.

Can be overridden by setting the attribute before telemetry reaches Dash0.

[2] dash0.operation.type: Determined at ingestion time by evaluating span attributes against a prioritized set of operation naming rules. Cannot be overridden by users; Dash0 always computes it from the span data.

[3] service.name: MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to unknown_service: concatenated with process.executable.name, e.g. unknown_service:bash. If process.executable.name is not available, the value MUST be set to unknown_service.