[][src]Struct rocket_prometheus::PrometheusMetrics

#[must_use = "must be attached and mounted to a Rocket instance"]
pub struct PrometheusMetrics { /* fields omitted */ }

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.


Simply attach and mount a PrometheusMetrics instance to your Rocket app as for a normal fairing / handler:

use rocket_prometheus::PrometheusMetrics;

fn main() {
    let prometheus = PrometheusMetrics::new();
            .mount("/metrics", prometheus)

Metrics will then be available on the "/metrics" endpoint:

$ curl localhost:8000/metrics
# HELP rocket_http_requests_duration_seconds HTTP request duration in seconds for all requests
# TYPE rocket_http_requests_duration_seconds histogram
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
# HELP rocket_http_requests_total Total number of HTTP requests
# TYPE rocket_http_requests_total counter
rocket_http_requests_total{endpoint="/metrics",method="GET",status="200"} 2


impl PrometheusMetrics[src]

pub fn registry(&self) -> &Registry[src]

Get the registry used by this fairing.

You can use this to register further metrics, causing them to be exposed along with the default metrics on the PrometheusMetrics handler.

use lazy_static::lazy_static;
use prometheus::{opts, IntCounter};
use rocket_prometheus::PrometheusMetrics;

lazy_static! {
    static ref MY_COUNTER: IntCounter = IntCounter::new("my_counter", "A counter I use a lot").unwrap();

fn main() {
    let prometheus = PrometheusMetrics::new();

impl PrometheusMetrics[src]

pub fn new() -> Self[src]

Create a new PrometheusMetrics.

Trait Implementations

impl Clone for PrometheusMetrics[src]

default fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

impl Default for PrometheusMetrics[src]

impl Into<Vec<Route>> for PrometheusMetrics[src]

impl Handler for PrometheusMetrics[src]

impl Fairing for PrometheusMetrics[src]

default fn on_attach(&self, rocket: Rocket) -> Result<Rocket, Rocket>[src]

The attach callback. Returns Ok if launch should proceed and Err if launch should be aborted. Read more

default fn on_launch(&self, rocket: &Rocket)[src]

The launch callback. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone

type Owned = T

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 

impl<T, U> TryFrom for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> BorrowMut for T where
    T: ?Sized

impl<T, U> TryInto for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any

default fn get_type(&self) -> TypeId

Get the TypeId of this object.

impl<F> Handler for F where
    F: 'static + Send + Sync + Clone + for<'r> Fn(&'r Request, Data) -> Outcome<Response<'r>, Status, Data>, 

impl<T> Cloneable for T where
    T: Handler + Clone

impl<T> IntoCollection for T

impl<T, I> AsResult for T where
    I: Input,