prometheus_exporter

crates.io docs.rs

Helper libary to export prometheus metrics using hyper.

It uses rust-prometheus for collecting and rendering the prometheus metrics and hyper for exposing the metrics through http.

Add this to your Cargo.toml:

toml [dependencies] prometheus_exporter = "0.1"

The usage is pretty simple. First you register all your metrics with the provided macros:

rust let connection_state = register_int_gauge_vec!( vec![namespace, "tcp", "connection_state_total"].join("_"), "what state current tcp connections are in".to_string(), &["state"] ) .expect("can not create tcp_connection_state_closed metric");

That is also where the metric values get updated:

rust connection_state .with_label_values(&["closed"]) .set(1234);

After all the metrics are registerd and the updating is setup the exporter can be started: ```rust use std::net::SocketAddr;

let addr: SocketAddr = "0.0.0.0:19899".parse().expect("can not parse listen addr"); PrometheusExporter::run(&addr); ```

This will block the thread it is executed in.

In the future the exporter will also provide a way to update the metrics when a new request comes in but that still needs to be implemented.