axum-otel-metrics

Build status Crates.io Documentation

axum OpenTelemetry metrics middleware with prometheus exporter

axum is an ergonomic and modular web framework built with Tokio, Tower, and Hyper

Usage

```rust use axumotelmetrics::HttpMetricsLayerBuilder;

let metrics = HttpMetricsLayerBuilder::new() .build();

let app = Router::new() // export metrics at /metrics endpoint .merge(metrics.routes()) .route("/", get(handler)) .route("/hello", get(handler)) .route("/world", get(handler)) // add the metrics middleware .layer(metrics); ```

OpenTelemetry Rust Instrumentation Status and Releases

https://opentelemetry.io/docs/instrumentation/rust/#status-and-releases

| Traces | Metrics | Logs | |--------------------------------------------------------------------------------------------------|---------|---------------------| | Stable | Alpha | Not yet implemented |

OpenTelemetry Metrics Exporter

Push Metric Exporter https://opentelemetry.io/docs/reference/specification/metrics/sdk/#push-metric-exporter

Pull Metric Exporter https://opentelemetry.io/docs/reference/specification/metrics/sdk/#pull-metric-exporter

exporters

https://opentelemetry.io/docs/reference/specification/metrics/sdk_exporters/

In-memory https://opentelemetry.io/docs/reference/specification/metrics/sdk_exporters/in-memory/

Prometheus https://opentelemetry.io/docs/reference/specification/metrics/sdk_exporters/prometheus/

OTLP https://opentelemetry.io/docs/reference/specification/metrics/sdk_exporters/otlp/

Standard output https://opentelemetry.io/docs/reference/specification/metrics/sdk_exporters/stdout/

Metrics Data Model

https://opentelemetry.io/docs/reference/specification/metrics/data-model/