Crate opentelemetry_prometheus[−][src]
OpenTelemetry Prometheus Exporter
Prometheus Exporter Example
use opentelemetry::{global, KeyValue, sdk::Resource}; use opentelemetry_prometheus::PrometheusExporter; use prometheus::{TextEncoder, Encoder}; fn init_meter() -> PrometheusExporter { opentelemetry_prometheus::exporter() .with_resource(Resource::new(vec![KeyValue::new("R", "V")])) .init() } let exporter = init_meter(); let meter = global::meter("my-app"); // Use two instruments let counter = meter .u64_counter("a.counter") .with_description("Counts things") .init(); let recorder = meter .i64_value_recorder("a.value_recorder") .with_description("Records values") .init(); counter.add(100, &[KeyValue::new("key", "value")]); recorder.record(100, &[KeyValue::new("key", "value")]); // Encode data as text or protobuf let encoder = TextEncoder::new(); let metric_families = exporter.registry().gather(); let mut result = Vec::new(); encoder.encode(&metric_families, &mut result); // result now contains encoded metrics: // // # HELP a_counter Counts things // # TYPE a_counter counter // a_counter{R="V",key="value"} 100 // # HELP a_value_recorder Records values // # TYPE a_value_recorder histogram // a_value_recorder_bucket{R="V",key="value",le="0.5"} 0 // a_value_recorder_bucket{R="V",key="value",le="0.9"} 0 // a_value_recorder_bucket{R="V",key="value",le="0.99"} 0 // a_value_recorder_bucket{R="V",key="value",le="+Inf"} 1 // a_value_recorder_sum{R="V",key="value"} 100 // a_value_recorder_count{R="V",key="value"} 1
Structs
ExporterBuilder | Configuration for the prometheus exporter. |
PrometheusExporter | An implementation of |
Functions
exporter | Create a new prometheus exporter builder. |