Overhead is so minimal that it is difficult to measure on most applications where the overhead gets lost in the run-to-run variance.
We have to use super fast microservices with response times in the microseconds in order to reliably detect and measure Glowroot's overhead.
The benchmark below is run against a very fast dropwizard-based microservice (benchmarking is performed using the excellent JMH).
|Average||80.0 μs||82.9 μs||2.9 μs|
|95th percentile||86.9 μs||89.5 μs||2.6 μs|
|99th percentile||97.0 μs||102.4 μs||5.4 μs|
|Allocated memory per request||46.6 KB||48.6 KB||2.0 KB|
For comparison, here is the same test run with a leading commercial Java APM:
|Average||80.0 μs||133.6 μs||53.6 μs|
|95th percentile||86.9 μs||143.9 μs||57.0 μs|
|99th percentile||97.0 μs||157.2 μs||60.2 μs|
|Allocated memory per request||46.6 KB||81.2 KB||34.6 KB|
Benchmark details can be found at https://github.com/glowroot/glowroot-benchmark.