Prometheus instrumentation library for Rust applications
Rust Other
Latest commit 321b907 Jan 15, 2017 @BusyJay BusyJay committed with siddontang histogram: expose LocalHistogram (#95)

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.2"
  • Add this to your crate in

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

    git = ""
    default-features = false
    features = ["nightly"]


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