What's the Performance Overhead? Answering the Biggest Question in Tracing
summary
Benchmarks use the OpenTracing Java API with JMH and JMH visualizer, testing tracers like Jaeger, Haystack and MockTracer across scenarios: a synthetic string-concat shows a ~4400% increase in single-call time and ~90% throughput drop, a Spring Boot billing flow shows ~200% slower single time and ~67% throughput loss, Spring Cloud ~4% time and ~1% throughput hit, JDBC ~13% time and ~8% throughput hit, while HTTP cases (Servlet filter, JAX‑RS) show no measurable overhead; tests use H2, OpenTracing JDBC and JSON outputs.
AI-written summary · about
chapters (11)
- 0:00Introduction and background
- 1:26Concepts and objectives
- 2:06Tracing overview
- 5:06Testing methodology
- 10:34Scenarios and test cases
- 14:27Simple Java scenario results
- 17:18Real-world scenario results
- 20:01HTTP-based test results
- 22:31Conclusion and takeaways
- 24:17Future work and resources
- 25:19Q&A session
related talks
34mWould You Like Some Tracing With Your Monitoring?
47mTracing Java's Hidden Performance Traps
30mTracing, Fast and Slow: Digging into and Improving Your Web Service's
49mDistributed Tracing in Java? OpenTelemetry for the Rescue!
42mHow Much Is Tracing? Measuring the Overhead Caused by the Tracing Infrastructure
40mCracking Microservices Performance Issues with Distributed Tracing
48mFantastic Performance and Where to Find It
05mPerformance analysis using Systrace
