Distributed tracing
Traces
Head sampling throws away the interesting requests before it knows they were interesting. Northwind decides after the trace completes.
How traces works
Tail-based by default
The sampling decision happens once the whole trace is assembled, so every error and every request over your latency objective is kept, whatever the rate.
Spans join metrics automatically
Service, endpoint and status labels are shared across signals, so a latency spike on a metric chart links straight to the traces underneath it.
OpenTelemetry native
OTLP in, no proprietary agent required. The collector config is eleven lines and is in the docs.
Specification
The numbers that matter.
Published rather than discovered during a proof of concept.
| Sampling | Tail-based, policy-driven |
|---|---|
| Ingest protocols | OTLP gRPC and HTTP, Jaeger, Zipkin |
| Max span size | 2 MB |
| Trace assembly window | 60 seconds |