Jaeger
Jaeger is an open-source, end-to-end distributed tracing system used to monitor and troubleshoot transactions as they flow through microservices-based applications.
Definition
Jaeger is an open-source, end-to-end distributed tracing system used to monitor and troubleshoot transactions as they flow through microservices-based applications.
Overview
In a microservices architecture, a single user request might touch dozens of services before a response is returned, which makes it hard to pinpoint where latency or errors originate using logs alone. Jaeger was originally built at Uber to solve this problem, drawing on ideas from Google's Dapper tracing paper and the earlier Zipkin project, and was later donated to the Cloud Native Computing Foundation. Jaeger works by having each service emit "spans", timed records of work done for a given request, tagged with a shared trace ID so all spans belonging to the same request can be reassembled into a single trace. Developers can then visualize this trace as a timeline showing exactly how long each service took and where a request slowed down or failed, making it far easier to debug latency issues across service boundaries. Jaeger is commonly deployed in Kubernetes environments and increasingly integrates with OpenTelemetry, which has become the standard way applications instrument and export tracing data, with Jaeger acting as one of several possible backends for storing and visualizing that data alongside metrics tools like Prometheus.
Key Features
- Distributed trace collection across microservices boundaries
- Visual timeline view of request latency across services
- Root cause analysis for identifying slow or failing service calls
- Sampling strategies to control tracing overhead at scale
- Integration with OpenTelemetry for standardized instrumentation
- Service dependency graphs generated from trace data
- Pluggable storage backends for trace data retention