prometheus 0.4.2

Prometheus instrumentation library for Rust applications.

Prometheus Rust client library

Build Status

This is the Rust client library for Prometheus. The main Structures and APIs are ported from Go client.


  • Add this to your Cargo.toml:

    prometheus = "0.4"
  • Add this to your crate in

    extern crate prometheus;
  • Or enable nightly feature for better performance.

    git = ""
    default-features = false
    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.

git = ""
features = ["gen"]


use prometheus::{Opts, Registry, Counter, TextEncoder, Encoder};

// Create a Counter.
let counter_opts = Opts::new("test_counter", "test counter help");
let counter = Counter::with_opts(counter_opts).unwrap();

// Create a Registry and register Counter.
let r = Registry::new();

// Inc.;

// Gather the metrics.
let mut buffer = vec![];
let encoder = TextEncoder::new();
let metric_familys = r.gather();
encoder.encode(&metric_familys, &mut buffer).unwrap();

// Output to the standard output.
println!("{}", String::from_utf8(buffer).unwrap());

More Examples


Static Metric

Static metric helps you make metric vectors faster.

See static-metric directory for details.