Jaeger — open-source distributed tracing system от Uber (2015), CNCF graduated с 2019. Показывает path одного request через множество microservices как tree spans с timings. Used for: debugging slow request, finding bottleneck, understanding service dependencies. Alternatives: Zipkin (Twitter, похожий), Tempo (Grafana, cheaper storage).
Ниже: подробности, пример, смежные термины, FAQ.
// 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))Похожие. Jaeger более active development (Uber/CNCF), Zipkin — старее + simpler UI. Оба поддерживают OpenTelemetry.
With 1% sampling: 500 req/s app → ~5 traces/s → few GB/day. At higher samples — TB/week.
Grafana Tempo — cheaper (block storage, not DB), integrates с Grafana. Used by DoorDash, Reddit. New stack: Tempo instead of Jaeger.