Struct rocket_prometheus::PrometheusMetrics [−][src]
pub struct PrometheusMetrics { /* fields omitted */ }
Expand description
Fairing and Handler implementing request instrumentation.
By default this tracks two metrics:
rocket_http_requests_total
(labels: endpoint, method, status): the total number of HTTP requests handled by Rocket.rocket_http_requests_duration_seconds
(labels: endpoint, method, status): the request duration for all HTTP requests handled by Rocket.
The ‘rocket’ prefix of these metrics can be changed by setting the
ROCKET_PROMETHEUS_NAMESPACE
environment variable.
Usage
Simply attach and mount a PrometheusMetrics
instance to your Rocket
app as for a normal fairing / handler:
use rocket_prometheus::PrometheusMetrics; let prometheus = PrometheusMetrics::new(); rocket::ignite() .attach(prometheus.clone()) .mount("/metrics", prometheus) .launch();
Metrics will then be available on the “/metrics” endpoint:
$ curl localhost:8000/metrics rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.005"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.01"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.025"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.05"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.1"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.25"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="0.5"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="1"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="2.5"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="5"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="10"} 2 rocket_http_requests_duration_seconds_bucket{endpoint="/metrics",method="GET",status="200",le="+Inf"} 2 rocket_http_requests_duration_seconds_sum{endpoint="/metrics",method="GET",status="200"} 0.0011045669999999999 rocket_http_requests_duration_seconds_count{endpoint="/metrics",method="GET",status="200"} 2 rocket_http_requests_total{endpoint="/metrics",method="GET",status="200"} 2
Implementations
Get the registry used by this fairing to track additional metrics.
You can use this to register further metrics,
causing them to be exposed along with the default metrics
on the PrometheusMetrics
handler.
Note that the http_requests_total
and http_requests_duration_seconds
metrics
are not included in this registry.
use once_cell::sync::Lazy; use prometheus::{opts, IntCounter}; use rocket_prometheus::PrometheusMetrics; static MY_COUNTER: Lazy<IntCounter> = Lazy::new(|| { IntCounter::new("my_counter", "A counter I use a lot") .expect("Could not create counter") }); let prometheus = PrometheusMetrics::new(); prometheus.registry().register(Box::new(MY_COUNTER.clone()));
Create a new PrometheusMetrics
using the default Prometheus Registry
.
This will cause the fairing to include metrics created by the various
prometheus
macros, e.g. register_int_counter
.
Create a new PrometheusMetrics
with a custom Registry
.
Trait Implementations
Performs the conversion.
Auto Trait Implementations
impl !RefUnwindSafe for PrometheusMetrics
impl Send for PrometheusMetrics
impl Sync for PrometheusMetrics
impl Unpin for PrometheusMetrics
impl !UnwindSafe for PrometheusMetrics
Blanket Implementations
Mutably borrows from an owned value. Read more
Clones self
.
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.