Introduction
See also:
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.
About
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.
Features
- OpenTracing -inspired data model
- Uses consistent upfront sampling with individual per service/endpoint probabilities
- Multiple built-in storage backends: Cassandra, Elasticsearch, in-memory
- Community supported external storage backends via gRPC plugin: ClickHouse
- System topology graphs
- Adaptive sampling
- Post-collection data processing pipeline (coming soon)
- Service Performance Monitoring (SPM)
See Features page for more details.
Technical Specs
- Backend components implemented in Go
- React/Javascript UI
- Supported storage backends:
- Cassandra 3.4+
- Elasticsearch 5.x, 6.x, 7.x
- Kafka
- memory storage
- certified grpc-plugins:
Quick Start
See running a docker all in one image.
Screenshots
Traces View
Trace Detail View
Service Performance Monitoring View
Related links
- Evolving Distributed tracing At Uber Engineering (blog)
- Mastering Distributed Tracing (book)
- OpenTracing Tutorial (Java, Go, Python, Node.js, C#) (tutorials)
- Tracing HTTP request latency in Go with OpenTracing (blog)
- Distributed Tracing with Jaeger & Prometheus on Kubernetes (blog)
- Using Jaeger with Istio (docs)