Welcome to Jaeger’s documentation portal! Below, you’ll find information for beginners and experienced Jaeger users.
If you can’t find what you are looking for, or have an issue not covered here, we’d love to hear from you.
If you are new to distributed tracing, please take a look at the Related Links section below.
Jaeger, inspired by Dapper and OpenZipkin, is a distributed tracing system released as open source by Uber Technologies. It is used for monitoring and troubleshooting microservices-based distributed systems, including:
- Distributed context propagation
- Distributed transaction monitoring
- Root cause analysis
- Service dependency analysis
- Performance / latency optimization
Uber published a blog post, Evolving Distributed Tracing at Uber, where they explain the history and reasons for the architectural choices made in Jaeger. Yuri Shkuro, creator of Jaeger, also published a book Mastering Distributed Tracing that covers in-depth many aspects of Jaeger design and operation, as well as distributed tracing in general.
- OpenTracing-inspired data model
- Uses consistent upfront sampling with individual per service/endpoint probabilities
- Multiple storage backends: Cassandra, Elasticsearch, memory.
- System topology graphs
- Adaptive sampling
- Post-collection data processing pipeline (coming soon)
- Service Performance Monitoring (SPM)
See Features page for more details.
- Backend components implemented in Go
- Supported storage backends:
- Cassandra 3.4+
- Elasticsearch 5.x, 6.x, 7.x
- memory storage
See running a docker all in one image.
Trace Detail View
Service Performance Monitoring View
- Evolving Distributed tracing At Uber Engineering (blog)
- Mastering Distributed Tracing (book)
- OpenTracing Tutorial (Java, Go, Python, Node.js, C#) (tutorials)
- Learning Distributed Tracing 101 (tutorials)
- Tracing HTTP request latency in Go with OpenTracing (blog)
- Distributed Tracing with Jaeger & Prometheus on Kubernetes (blog)
- Using Jaeger with Istio (docs)
- Using Jaeger with Envoy (docs)