Overhead
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).
Baseline | with Glowroot |
Overhead | |
---|---|---|---|
Response times | |||
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 |
Benchmark environment
Intel Xeon E3-1230 v3
Linux (ubuntu) 4.4.0-31
Java 1.8.0_101-b13
For comparison, here is the same test run with a leading commercial Java APM:
Baseline | with a leading commercial Java APM |
Overhead | |
---|---|---|---|
Response times | |||
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.