Jaeger Tracing API
Jaeger is an open-source distributed tracing backend with a query HTTP API and gRPC API for retrieving traces, spans, service dependency graphs, and latency data from instrumented microservices.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
No built-in auth on the query API — exposure requires a proxy layer. gRPC endpoints in v2 support mTLS. Trace data can contain sensitive request parameters and headers; access control is entirely the operator's responsibility.
⚡ Reliability
Best When
Best when you need to programmatically query distributed traces across microservices to power automated debugging, performance regression detection, or dependency mapping agents.
Avoid When
Avoid when your primary need is log aggregation or metrics — Jaeger stores only traces and has no log or metric query capabilities.
Use Cases
- • Query the Jaeger API to fetch traces for a specific service within a time window to identify latency regressions after a deployment
- • Retrieve service dependency graphs via the /api/dependencies endpoint to automatically generate architecture documentation or detect unexpected inter-service coupling
- • Search for traces containing error spans across a set of operations to build automated incident triage workflows that surface root-cause traces
- • Use the trace detail API to extract span tags and process metadata for automated SLO compliance checking against latency budgets
- • Poll the /api/services endpoint to maintain an always-current inventory of instrumented services for agent-driven service discovery pipelines
Not For
- • Ingesting trace data — Jaeger's query API is read-only; trace ingestion uses OpenTelemetry Collector or the Jaeger agent/collector endpoints (OTLP, Thrift)
- • Metric aggregation and alerting — use Prometheus and Grafana for metrics; Jaeger is trace-centric with no native alerting
- • Long-term trace retention beyond days/weeks without a scalable backend like Cassandra, Elasticsearch, or ClickHouse
Interface
Authentication
Jaeger query service has no built-in authentication. Auth is typically handled by a reverse proxy (Traefik, Nginx, OAuth2-proxy) placed in front of the UI and API. Jaeger v2 with OpenTelemetry-native config supports TLS for gRPC endpoints.
Pricing
Fully open source. Storage backend costs (Cassandra, Elasticsearch, ClickHouse) are separate operational concerns.
Agent Metadata
Known Gotchas
- ⚠ Trace search (/api/traces) has a maximum result limit (default 20, max configurable) — agents must paginate by adjusting the `limit` and `offset` parameters or risk missing traces
- ⚠ Time parameters use microseconds since epoch (not milliseconds or seconds) — a common source of empty result sets when agents pass wrong time units
- ⚠ The /api/services endpoint only returns services that have submitted at least one span recently — services that stopped reporting will disappear from the list after TTL expiry
- ⚠ Large traces (thousands of spans) can cause the query API to time out or return truncated results — agents should set explicit span count limits and handle partial responses
- ⚠ Jaeger v1 and v2 have different configuration models; v2 adopts the OpenTelemetry Collector config schema — agents targeting both versions must handle API compatibility differences
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Jaeger Tracing API.
Scores are editorial opinions as of 2026-03-06.