**Jaeger** is an open source distributed tracing platform originally built by Uber, now a CNCF graduated project. It traces requests as they flow through a distributed system — recording timing, errors, and metadata at each service hop — so engineers can understand latency, identify bottlenecks, and debug failures that span multiple microservices.
---
### First Principle: A slow request in a microservice system has no single owner. Tracing gives it one.
When a user request touches 12 services before returning a response, a 500ms slowdown could originate anywhere in the chain. Distributed tracing attaches a trace ID to the request and records a span at each service boundary — so the full request journey is visible as a single waterfall chart with timing at every hop.
---
### Key Considerations
- **Spans & Traces**: A trace is a tree of spans. Each span represents a unit of work — an RPC call, a database query, a message queue operation. Spans carry start time, duration, tags, and logs.
- **Instrumentation**: Services are instrumented via [[OpenTelemetry]] SDKs — the modern approach. [[OpenTelemetry]] is now the preferred instrumentation layer; Jaeger accepts OTLP data from the OTel Collector.
- **Storage Backends**: Jaeger stores trace data in Cassandra, Elasticsearch, or Badger (single-node embedded). For hyperscaler scale, Cassandra or Elasticsearch backends are needed.
- **Sampling**: Full tracing of every request at hyperscaler traffic volumes is prohibitively expensive. Jaeger supports head-based sampling and adaptive sampling.
- **vs [[Tempo]]**: [[Tempo]] is cheaper to operate at scale (object storage only) and better integrated with [[Grafana]]. Jaeger has a richer standalone UI and more mature adaptive sampling.
---
### How It Fits
```
Services instrumented via [[OpenTelemetry]]
→ [[OpenTelemetry]] Collector (batches and routes)
→ Jaeger (stores traces)
→ Jaeger UI / [[Grafana]] (visualise trace waterfalls)
```
[[OpenTelemetry]] | [[Tempo]] | [[Loki]] | [[Prometheus]] | [[Grafana]] | [[Open Source Hyperscaler MoC]]