Jaeger
Jaeger is a distributed tracing system for following a request as it moves through a set of services.
What Tracing Shows
- Request latency across service boundaries.
- Where time is spent in a distributed call chain.
- Which downstream dependency is slowing the system down.
- How a single request behaved end to end.
Core Concepts
- A trace is the full request path.
- A span is one timed operation inside the trace.
- Context propagation carries trace information between services.
- Sampling controls how many traces are collected.
Typical Architecture
- Instrumented services create spans.
- A collector or agent receives trace data.
- Storage keeps traces for search and analysis.
- The Jaeger UI is used to inspect traces and dependencies.
When to Use It
- Debugging latency in microservices.
- Understanding request fan-out and dependency chains.
- Correlating errors with specific service interactions.
Practical Notes
- Trace IDs need to flow across every hop.
- Do not sample so aggressively that important failures disappear.
- Add useful tags such as service name, route, tenant, and status code.