The Desi Architect
Notes / Docker Sandboxes / Distributed Tracing with OpenTelemetry, W3C Trace Context & Jaeger
Docker Sandboxes · Tier 3: Reliability & Messaging · Lab 47

Distributed Tracing with OpenTelemetry, W3C Trace Context & Jaeger

Follow one request through three services by one header. See the trace as a tree, find the slow span and the failing span from the trace alone, and then break the chain by forgetting to pass the header. Spans are written by hand with the standard library, so you see exactly what a tracing SDK does.

Time40 minutes
StackJaeger v2Ports 18686, 18101
MemoryAbout 160 MB
Before thisLab 46Logs, Metrics and Traces
Verified runWindows, Mac, LinuxBash and PowerShell
  1. 1PrepareWhat you will learn
  2. 2PredictGuess before you run
  3. 3RunStep by step
  4. 4ObserveWhat you should see
  5. 5Break itChange one thing
  6. 6Clean upLeave nothing running
On this page
  1. 00 / What You Will Learn
  2. 01 / Why It Matters
  3. 02 / What We Are Building
  4. 03 / Words You Need
  5. 04 / Predict First
  6. 05 / Step by Step
  7. 06 / What You Should See
  8. 07 / Look Inside
  9. 08 / Break It, Fix It
  10. 09 / In Real Projects
  11. 10 / Interview Corner
  12. 11 / Clean Up

00 /What You Will Learn

By the end you will be able to
  • Explain a trace and a span, and how spans form a tree.
  • Explain context propagation and the W3C traceparent header.
  • Find the slow span and the failing span from a trace.
  • Say what happens to a trace when one service does not pass the header.
  • Join logs and traces with the trace id.

Before you start

Finish Lab 46 (Logs, Metrics and Traces) first. You should know what a log line and a metric are. Docker Desktop and Python 3 are needed.