Distributed tracing follows a request as it moves through separately deployed services. A trace groups timed operations called spans; propagated context lets each service attach its work to the same trace. Engineers can then inspect the request’s path, timing, and relationships—useful evidence for debugging, but not an automatic diagnosis of root cause.
How does distributed tracing work across microservices?
A request in a microservices system may pass through a gateway, application services, and other components before it finishes. Each component can record an operation as a span. Together, related spans form a trace that shows which operations took part in the transaction and how they relate in time and parentage.
A trace is therefore more than a list of service names: its spans can show where time was spent and which operation called another. This provides causal and timing evidence for an engineer to interpret alongside logs, metrics, and knowledge of the system. A trace can point toward a slow or failing operation, but it does not prove why that operation behaved that way.
What are traces and spans?
In OpenTelemetry’s tracing model, a span represents one operation. A root span commonly represents the overall request, while child spans describe sub-operations within it. Spans can be nested into a trace tree.
#1 Best Overall
A span can contain its name, trace context, parent relationship, start and end timestamps, attributes, events, links, and status. These details let a tracing system present the request’s structure and timing rather than merely indicating that a service was involved. The exact detail available depends on what the application and its instrumentation record. OpenTelemetry’s tracing concepts describe the span model.
How does trace context get propagated between services?
For spans created in separate processes to appear in one trace, the downstream service needs context from the caller. The caller sends context that includes the trace ID and its span ID. The receiving service extracts that context and creates a span in the same trace, with the caller’s span as its parent. Without successful propagation, the downstream operation may be recorded without its relationship to the original request.
Rank #2
OpenTelemetry instrumentation typically handles propagation. Its default propagator follows the W3C Trace Context format for HTTP. The W3C traceparent header carries a version, trace ID, parent ID, and trace flags. A shared format helps tracing tools from different providers preserve correlation across vendor boundaries, provided participating services and intermediaries support and preserve the relevant headers. The W3C Trace Context Recommendation defines the standard HTTP headers and value format.
When work crosses a non-HTTP boundary
For messaging systems or protocols that do not use ordinary HTTP headers, the same principle applies: the sender injects context into an appropriate carrier or request metadata, and the receiver extracts it. The carrier and extraction behavior depend on the protocol and implementation; support is not automatic in every broker or language. Where existing instrumentation does not provide the needed behavior, OpenTelemetry’s Propagators API can be used to implement it. OpenTelemetry’s context-propagation guide explains the mechanism.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsRank #3
What is OpenTelemetry, and do you still need a tracing backend?
OpenTelemetry is an instrumentation and telemetry framework, not a storage or analysis backend. Instrumented processes can generate telemetry, and the OpenTelemetry Collector can receive it, process or enrich it, transform it, apply sampling, and export it to one or more monitoring or tracing backends. Processing can also include steps such as scrubbing personal information. The OpenTelemetry Collector documentation describes its role.
You still need a backend to store and analyze trace data. OpenTelemetry’s context-propagation guide uses Jaeger as one example for viewing connected spans; it is not the only possible backend. When evaluating a distributed tracing backend or hosted tracing platform, compare the factors that affect your system rather than assuming one product is best:
Rank #4
- Instrumentation and language compatibility: Check support for the languages, libraries, and services you need to observe.
- Propagation: Confirm that context can travel across the HTTP, messaging, and other boundaries in your architecture.
- Sampling controls: Understand where sampling can be configured and how it fits with your traffic and debugging needs.
- Query and analysis: Assess whether engineers can find traces and inspect the relationships and details they need.
- Retention, privacy, and data handling: Determine how long data is kept, how sensitive attributes are managed, and what processing is available.
- Cost: Evaluate the cost model against the amount of telemetry you intend to send and retain.
These are evaluation criteria, not a ranking of current providers. The available evidence does not establish current feature or price comparisons among named backends.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How should you think about sampling and tracing overhead?
Tracing can produce a large volume of data, especially when instrumentation covers many operations. Sampling reduces the amount retained or processed, but there is no universally correct rate: an appropriate approach depends on workload, instrumentation, SDK behavior, and deployment. Broad instrumentation may make more of a request visible, while increasing the data to manage.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Best Value
Google’s 2010 Dapper paper describes design goals of low overhead, transparency to applications, and broad deployment. It identifies sampling and instrumentation of common libraries as design choices that helped Dapper meet those goals in its environment. This is historical engineering evidence, not a current overhead benchmark or a recipe for every service. Measure overhead in the target system before making quantitative claims or setting production policy. Google Research’s Dapper publication page links to the paper.
What Trace Context status should teams know?
W3C Trace Context Recommendation 1 was dated 23 November 2021. A W3C Recommendation is endorsed following consensus-building, and W3C recommends wide deployment of the specification as a Web standard. Trace Context Level 2, as of 4 October 2026, is a Candidate Recommendation Draft rather than a finalized standard; its status notice says the draft may change, be replaced, or be obsoleted and that publication does not imply W3C endorsement. Treat Level 2 additions, including trace-ID and span-ID generation considerations and a random trace-ID flag, as work in progress. W3C Trace Context Level 2 states its current draft status.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




