Instrumentation frameworks are crucial for organizations delivering fast and reliable business services. These frameworks play a vital role in identifying issues within complex services, thereby averting any negative impact on users. When choosing the proper instrumentation framework or observability solution, the question of overhead is not just important; it's critical. 'What is the overhead of the instrumentation/observability platform?' is a query that demands immediate attention.
During the last 15 years, several instrumentation approaches appeared, such as
AspectJ
ByteBuddy
DiSL
Javassist
Manual source instrumentation
Monitoring Frameworks such as OpenTelemetry or Observability platforms such as Dynatrace use these techniques to inject additional code, which allows them to trace throughput, errors, and response times to gather more insights.
Instrumentation Overhead Benchmark
During the ICEP2024 conference in London, I attended a paper presentation by David Georg Reichelt, Assistant Professor from Lanchester University in Leipzig. David used the MooBench solution https://github.com/kieker-monitoring/moobench to benchmark the mentioned instrumentation frameworks and implemented propes in Kieker https://kieker-monitoring.net/performance-benchmarks/
Benchmark Summary
Source instrumentation has the lowest overhead.
OpenTelemetry has a significantly higher overhead.
All instrumentation technologies scale linearly.
Whether you opt for open-source or commercial APM or observability solutions, the monitoring overhead comparison should be a crucial part of your tool selection process. An average user might not notice a 10-ms or 60-ms monitoring overhead. However, the situation changes dramatically if your system under monitoring provides ultra-fast services in milliseconds. This comparison is not just a suggestion; it's a necessity.
Additional resources
Instrumentation overhead benchmark comparison
Keep up the great work! Happy Performance Engineering!
Comments