Skip to content

What is Jaeger

Key idea:

Jaeger — open-source distributed tracing system from Uber (2015), CNCF graduated since 2019. Shows the path of one request across many microservices as a tree of spans with timings. Used for: debugging slow requests, finding bottlenecks, understanding service dependencies. Alternatives: Zipkin (Twitter, similar), Tempo (Grafana, cheaper storage).

Below: details, example, related terms, FAQ.

Try it now — free →

Details

  • Spans: unit of work with duration, tags, logs
  • Trace: collection of spans for one request
  • Service map: auto-generated from spans — see how services connect
  • Storage backends: Cassandra, Elasticsearch, Kafka, memory
  • Sampling: default 1% to avoid overloading storage

Example

// Python example (OpenTelemetry)
from opentelemetry import trace
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span('payment.charge') as span:
    span.set_attribute('user.id', user_id)
    result = stripe.charge(amount)
    span.set_status(Status(StatusCode.OK))

Related Terms

Learn more

Frequently Asked Questions

Jaeger vs Zipkin?

Similar. Jaeger has more active development (Uber/CNCF), Zipkin older + simpler UI. Both support OpenTelemetry.

Storage overhead?

With 1% sampling: 500 req/s app → ~5 traces/s → few GB/day. At higher samples — TB/week.

Jaeger alternative?

Grafana Tempo — cheaper (block storage, not DB), integrates with Grafana. Used by DoorDash, Reddit. New stack: Tempo instead of Jaeger.