use prometheus_client::metrics::counter::Counter; use prometheus_client::metrics::family::Family; use prometheus_client::registry::Registry; #[derive(Clone)] pub struct ApacheMetrics { pub requests_total: Family<(&'static str, String), Counter> } impl ApacheMetrics { pub fn new() -> (Registry, ApacheMetrics) { let mut registry = <Registry>::default(); let requests_total = Family::<(&'static str, String), Counter>::default(); registry.register("apache_requests", "Number of received requests", Box::new(requests_total.clone())); let metrics = ApacheMetrics { requests_total }; return (registry, metrics); } }