#prometheus #metrics

prometrics

Client library for exposing prometheus metrics

14 releases

0.1.13 Apr 18, 2020
0.1.12 Aug 18, 2019
0.1.11 Apr 30, 2018
0.1.10 Mar 23, 2018
0.1.2 Oct 22, 2017

#34 in Debugging

Download history 118/week @ 2020-01-25 116/week @ 2020-02-01 189/week @ 2020-02-08 141/week @ 2020-02-15 268/week @ 2020-02-22 122/week @ 2020-02-29 139/week @ 2020-03-07 84/week @ 2020-03-14 111/week @ 2020-03-21 147/week @ 2020-03-28 103/week @ 2020-04-04 222/week @ 2020-04-11 187/week @ 2020-04-18 102/week @ 2020-04-25 52/week @ 2020-05-02 109/week @ 2020-05-09

633 downloads per month
Used in 23 crates (13 directly)

MIT license

99KB
2.5K SLoC

prometrics

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

Rust client library for exposing prometheus metrics.

Documentation

Examples

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

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

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

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

Benchmark

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

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

$ cargo +nightly bench
test counter_add_float       ... bench:          10 ns/iter (+/- 0)
test counter_add_round_float ... bench:           4 ns/iter (+/- 0)
test counter_add_u64         ... bench:           4 ns/iter (+/- 0)
test counter_increment       ... bench:           4 ns/iter (+/- 0)
test gauge_set               ... bench:           4 ns/iter (+/- 0)
test histogram_observe       ... 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

Dependencies

~0.5–1MB
~21K SLoC