Skip to content

Что такое Jaeger

Коротко:

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.

Подробности

  • Spans: work unit with duration, tags, logs
  • Trace: collection of spans для одного request
  • Service map: auto-generated из spans — видно как services connect
  • Storage backends: Cassandra, Elasticsearch, Kafka, memory
  • Sampling: default 1% чтобы не перегрузить storage

Пример

// 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 vs Zipkin?

Похожие. Jaeger более active development (Uber/CNCF), Zipkin — старее + simpler UI. Оба поддерживают 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 с Grafana. Used by DoorDash, Reddit. New stack: Tempo instead of Jaeger.