Tempo vs Jaeger for Tracing: Storage Cost and Query Speed
Tempo bets on cheap storage + smart sampling. Jaeger bets on indexes that make any-query fast. Different tradeoffs.
What each optimizes for
Tempo: trace ID lookup is the primary query path. Other queries route through metrics-generated trace links.
Jaeger: full indexing on tags, services, durations. Any-query fast.
Cost ratio
- Tempo on S3-equivalent: $0.023/GB/month. At 1 TB/month of traces, that is $23/month for storage.
- Jaeger needs Cassandra/Elasticsearch behind it. Same volume: $200-500/month for the backend.
- 10x cheaper for Tempo. Real money at scale.
Query speed comparison
Tempo: trace ID lookup in <1 second. Service-level queries via metrics generators.
Jaeger: any-tag query in <5 seconds. More flexible.
For incident response (you have the trace ID from a log), Tempo is fine. For exploration, Jaeger wins.
Migration paths
Both speak OpenTelemetry. Migration is configuration on the Collector side; no app changes.
Most teams pick one and stick. Running both is rare.
Antipatterns
- Jaeger with default storage in production. The default is in-memory; you will lose traces.
- Tempo without metrics generators. The service-level queries depend on them.
- Switching tracing tool quarterly. Lost institutional knowledge.
What to do this week
Three moves. (1) Trial the candidate tool against one workload for two weeks. (2) Compare against your current using the four criteria above. (3) Plan the migration only if the trial shows real wins, not theoretical ones.