A single unit of work within a distributed trace, recording timing, name, and parent relationship.
A span represents a unit of work or operation within a distributed system. Spans are the building blocks of traces. In OpenTelemetry, each span includes a name, start and end timestamps, status, attributes, and a reference to its parent span — enabling a tree-like visualisation of cause and effect across services.
Every operation worth measuring gets its own span: an HTTP request, a database query, a cache lookup, a queue publish. Spans carry rich context through attributes — key-value pairs that describe the operation, such as `http.method`, `db.statement`, or `error.message`. The parent-child relationship between spans forms the causal chain of a request, showing how a single user action triggers operations across multiple services and infrastructure components. Span events and span links extend the model for async and fan-out patterns. obseria.io visualises spans in interactive flamegraphs with P50/P95/P99 latency breakdowns at every level of the call tree.
See Span in action
obseria.io gives you full-stack observability — logs, metrics, traces, and AI-powered root cause analysis.