prometrics

Crates.io: prometrics Documentation Build Status Code Coverage License: MIT

Rust client library for exposing prometheus metrics.

Documentation

Examples

```rust use prometrics::default_gatherer; use prometrics::metrics::{CounterBuilder, GaugeBuilder};

let counter = CounterBuilder::new("count") .defaultregistry() .finish() .unwrap(); let gauge = GaugeBuilder::new("gauge") .label("foo", "bar") .defaultregistry() .finish() .unwrap();

counter.increment(); gauge.set(12.3);

let metrics = defaultgatherer().lock().unwrap().gather(); asserteq!( metrics.to_text(), format!("{}\n{}\n{}\n{}\n", "# TYPE count counter", "count 1", "# TYPE gauge gauge", "gauge{foo=\"bar\"} 12.3")); ```

Benchmark

```console $ uname -a Linux DESKTOP 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x8664 x8664 x86_64 GNU/Linux

$ lscpu | grep 'Model name:' Model name: Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz

$ cargo +nightly bench test counteraddfloat ... bench: 10 ns/iter (+/- 0) test counteraddroundfloat ... bench: 4 ns/iter (+/- 0) test counteraddu64 ... bench: 4 ns/iter (+/- 0) test counterincrement ... bench: 4 ns/iter (+/- 0) test gaugeset ... bench: 4 ns/iter (+/- 0) test histogramobserve ... bench: 18 ns/iter (+/- 0) test summary_observe ... bench: 481 ns/iter (+/- 21)

test result: ok. 0 passed; 0 failed; 0 ignored; 7 measured; 0 filtered out ```

References