dipstick
A fast and modular metrics library decoupling app instrumentation from reporting backend. Similar to popular logging frameworks, but with counters and timers. Can be configured for combined outputs (log + statsd), random sampling, local aggregation of metrics, recurrent background publication, etc.
// Send any metrics values directly to the "app_metrics" logger
let mut app_metrics = new;
// define a timer named "timer_b"
let timer = app_metrics.new_timer;
// record time spent in compute_value() using closure or macro syntax
let value1 = timer.time;
let value2 = time!;
##TODO
- generic publisher / sources
- dispatch scopes
- microsecond-precision intervals
- log templates
- more outputs adapters
- configurable aggregation
- queued dispatch
- non-aggregating buffers
- tagged / ad-hoc metrics
- framework glue (rocket, iron, etc.)
- tests & benchmarks
- complete doc
- examples