2 unstable releases
new 0.2.0 | Nov 17, 2024 |
---|---|
0.1.0 | Nov 16, 2024 |
#2 in #analyzing
61 downloads per month
7KB
82 lines
tokio_eld provides a histogram-based sampler for recording and analyzing
event loop delays in a current_thread Tokio runtime. The API is similar to
Node.js's perf_hooks.monitorEventLoopDelay()
.
use tokio_eld::EldHistogram;
let mut histogram = EldHistogram::<u64>::new(20)?; // 20 ms resolution
h.start();
// do some work
h.stop();
println!("min: {}", h.min());
println!("max: {}", h.max());
println!("mean: {}", h.mean());
println!("stddev: {}", h.stdev());
println!("p50: {}", h.value_at_percentile(50.0));
println!("p90: {}", h.value_at_percentile(90.0));
lib.rs
:
tokio_eld provides a histogram-based sampler for recording and analyzing
event loop delays in a current_thread Tokio runtime. The API is similar to
Node.js's perf_hooks.monitorEventLoopDelay()
.
EldHistogram
EldHistogram supports recording and analyzing event loop delay using a High Dynamic Range (HDR) Histogram. The recorded delays are in nanoseconds.
Refer to documentation for hdrhistogram::Histogram
for more information
on how to use the core data structure.
Usage
use tokio_eld::EldHistogram;
let mut h = EldHistogram::<u64>::new(20).unwrap();
h.start();
// do some work
h.stop();
println!("min: {}", h.min());
println!("max: {}", h.max());
println!("mean: {}", h.mean());
println!("stddev: {}", h.stdev());
println!("p50: {}", h.value_at_percentile(50.0));
println!("p90: {}", h.value_at_percentile(90.0));
Dependencies
~2.5–8MB
~56K SLoC