What is Tracing?

Tracing records the full path of a request as it moves through a system, capturing each step as a timed, nested span, so you can see exactly what happened, in what order, and where time or errors went.

Tracing is the technique of following a single request end to end through a system and recording each unit of work it triggers. A trace is the whole journey of one request; it is made of spans, each a timed operation (a database query, an API call, a model invocation) that can nest inside a parent to show causality and order. Distributed tracing propagates a trace ID across service boundaries so a request that hops between components still stitches into one timeline. In LLM and agent applications tracing is especially valuable because one user prompt can explode into many steps, retrievals, several model calls, multiple tool invocations, retries, and only a trace makes that tree legible: you can see which tool the agent called, what it returned, how many tokens each step cost, and where a failure or slowdown originated. OpenTelemetry is the dominant open standard for producing traces, and backends like Honeycomb, SigNoz, and Langfuse store and visualize them; many ship MCP servers so an agent can query traces directly. Tracing is the data layer beneath observability, and a span is its fundamental building block.