Crate prometheus_exporter_base

Source
Expand description

This crate simplifies the generation of valid Prometheus metrics. You should start by building a PrometheusMetric and then adding as many PrometheusInstance as needed.

PrometheusMetric specifies the counter name, type and help. Each PrometheusInstance specifies the value and the optional labels and timestamp.

This crate aslo gives you a zero boilerplate hyper server behind the hyper_server feature gate, check render_prometheus and the example folder for this feature.

§Examples

Basic usage:

use prometheus_exporter_base::prelude::*;

let rendered_string = PrometheusMetric::build()
    .with_name("folder_size")
    .with_metric_type(MetricType::Counter)
    .with_help("Size of the folder")
    .build()
    .render_and_append_instance(
        &PrometheusInstance::new()
            .with_label("folder", "/var/log")
            .with_value(100)
            .with_current_timestamp()
            .expect("error getting the UNIX epoch"),
    )
    .render();

Modules§

prelude
prometheus_metric_builder

Structs§

MissingValue
No
PrometheusInstance
PrometheusMetric
Yes

Enums§

MetricType

Traits§

RenderToPrometheus
This trait should be implemented by any instance able to render itself according to Prometheus specifications.
ToAssign