Skip to main content

Jaeger

A CNCF-graduated distributed tracing system originally built at Uber. Jaeger ingests trace data from OpenTelemetry-instrumented services, stores it in Elasticsearch or Cassandra, and provides a UI for searching traces, analyzing latency, and finding the root cause of slowdowns in distributed systems.

✓ OTLP-native ingestion ✓ CNCF graduated project ✓ Kubernetes Operator ✓ Adaptive sampling

What is Jaeger?

Jaeger was open-sourced by Uber in 2017 and became a CNCF graduated project in 2019. It solves the problem of diagnosing latency and errors in microservices architectures: when a user request touches 10 services, which one is slow? Jaeger answers that by collecting and correlating distributed traces — a complete record of every service call, database query, and cache hit that occurred during a single request.

Modern Jaeger accepts traces via OTLP (the OpenTelemetry Protocol), making it the natural storage backend when instrumenting with the OpenTelemetry SDK. The legacy Jaeger client libraries are deprecated — all new instrumentation should use OpenTelemetry SDKs pointing at an OTel Collector, which exports to Jaeger.

Architecture

Component Role Port
CollectorReceives spans, validates, and writes to storage4317 (OTLP gRPC), 14268 (HTTP)
QueryServes the UI and REST/gRPC API16686 (UI), 16685 (gRPC)
StorageElasticsearch, Cassandra, or Badger—
OperatorManages Jaeger lifecycle in Kubernetes—

Quick Start (All-in-One Docker)

# All-in-one Jaeger container (dev/testing)
docker run -d --name jaeger   -e COLLECTOR_OTLP_ENABLED=true   -p 6831:6831/udp    # Jaeger Thrift UDP (legacy)
  -p 6832:6832/udp    # Jaeger Thrift Binary UDP (legacy)
  -p 5778:5778         # Agent configs endpoint
  -p 16686:16686       # Jaeger UI
  -p 4317:4317         # OTLP gRPC
  -p 4318:4318         # OTLP HTTP
  -p 14250:14250       # Model.proto gRPC (used by OTel Collector)
  -p 14268:14268       # Jaeger Thrift HTTP (collector)
  jaegertracing/all-in-one:latest

# Open UI at http://localhost:16686

OTel Collector → Jaeger Export

# otel-collector-config.yaml — export to Jaeger
exporters:
  otlp/jaeger:
    endpoint: jaeger:4317
    tls:
      insecure: true

  jaeger:           # legacy gRPC (pre-Jaeger 1.35)
    endpoint: jaeger:14250
    tls:
      insecure: true

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp/jaeger]

Kubernetes (Jaeger Operator)

# Install Jaeger Operator via Helm
helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
helm install jaeger-operator jaegertracing/jaeger-operator   --namespace observability --create-namespace

# Minimal Jaeger CR (uses in-memory storage — dev only)
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger
  namespace: observability
spec:
  strategy: allInOne

# Production Jaeger with Elasticsearch storage
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: https://elasticsearch:9200
  collector:
    replicas: 3
  query:
    replicas: 2
Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →