metrics Crate
use metrics::{counter, gauge, histogram};
use metrics_exporter_prometheus::PrometheusBuilder;
PrometheusBuilder::new()
.with_http_listener(([0, 0, 0, 0], 9090))
.install()
.expect("failed to install Prometheus recorder");
counter!("http_requests_total", "method" => "GET", "status" => "200").increment(1);
histogram!("request_duration_seconds").record(elapsed.as_secs_f64());
gauge!("queue_depth", "queue" => "task-events").set(depth as f64);
Labels ("key" => "value") create separate time series per label combination.