This is the Rust client library for Prometheus. The main Structures and APIs are ported from Go client.
Add dependency to your Cargo.toml
:
toml
prometheus = "0.8"
Optional: Better performance for Rust nightly.
toml
prometheus = { version = "0.8", features = ["nightly"] }
The crate has a pre-generated protobuf binding file for protobuf
v2.0, if you need use the latest version of protobuf
, you can generate the binding file on building with the gen
feature.
toml
prometheus = { version = "0.8", features = ["gen"] }
```rust use prometheus::{Opts, Registry, Counter, TextEncoder, Encoder};
// Create a Counter. let counteropts = Opts::new("testcounter", "test counter help"); let counter = Counter::withopts(counteropts).unwrap();
// Create a Registry and register Counter. let r = Registry::new(); r.register(Box::new(counter.clone())).unwrap();
// Inc. counter.inc();
// Gather the metrics. let mut buffer = vec![]; let encoder = TextEncoder::new(); let metricfamilies = r.gather(); encoder.encode(&metricfamilies, &mut buffer).unwrap();
// Output to the standard output. println!("{}", String::from_utf8(buffer).unwrap()); ```
Static metric helps you make metric vectors faster.
See static-metric directory for details.