Observability · Cluster

Tracing

Spans, context propagation, and sampling.

  1. 01 Span Anatomy: Trace IDs, Span IDs, and Parent Links How a trace is assembled from spans, why two identifiers with different scopes are needed, and what a span record must carry for the tree to be reconstructible offline. foundational · Nov 22, 2021
  2. 02 The traceparent Header: Field Widths and Version Negotiation The exact byte layout of the W3C traceparent header, why its fields are fixed width, what the flags byte means, and how a version-00 parser must treat unknown versions. foundational · Jun 17, 2026
  3. 03 Propagating Context Across Queues, Threads, and Proxies Why an implicit current-span variable fails the moment work moves to another thread or another process, and how context has to be carried explicitly through each boundary type. foundational · Mar 24, 2026
  4. 04 Clock Skew and the Arithmetic of Span Durations Why span durations stay trustworthy while span start times do not, how skew makes a child appear to outlive its parent, and what correction can and cannot recover. intermediate · Jul 23, 2025
  5. 05 Head-Based Sampling: Where the Decision Belongs and What It Costs How probabilistic and rate-limiting samplers make the keep-or-drop call at trace start, why the decision must be consistent across the trace, and how the sampled flag makes it authoritative downstream. intermediate · May 27, 2026
  6. 06 Tail-Based Sampling: Buffering Traces Until the Outcome Is Known Why deciding after the trace completes requires holding spans in memory, how the buffering window and the trace-ID routing rule interact, and where the pipeline loses traces it intended to keep. intermediate · Jun 15, 2022
  7. 07 The baggage Header: Limits, Trust Boundaries, and Misuse How W3C Baggage carries arbitrary key-value pairs alongside a trace, the member and byte limits that force dropping, and why every entry crossing a trust boundary is untrusted input. intermediate · Sep 11, 2024
  8. 08 Adaptive Sampling: Feedback Control over Span Volume How a sampler adjusts its rate from observed traffic instead of a fixed configuration, why per-operation rates are needed, and the statistical damage caused by a rate that keeps changing. advanced · Jul 11, 2023
  9. 09 Routing Traces Through a Collector Pipeline by Trace ID Why a stateful tracing stage cannot sit behind a round-robin load balancer, how consistent hashing keeps one trace on one worker, and what happens when the worker set changes. advanced · Feb 17, 2024
  10. 10 Storing Traces: Two Access Patterns That Cannot Share One Index Why a trace store must support both point lookup by trace identifier and time-range search by service, how indexes serve each, and where retention and cost force the two apart. advanced · Jul 6, 2026