tonic-otel-layer

Crates.iotonic-otel-layer
lib.rstonic-otel-layer
version0.1.0
created_at2025-06-17 12:26:55.28283+00
updated_at2025-06-17 12:26:55.28283+00
descriptionLayer for a Tonic gRPC server that adds an OpenTelemetry metrics support.
homepage
repositoryhttps://github.com/evilbluebeaver/tonic-otel-layer
max_upload_size
id1715666
size34,848
Kirill Kindiuk (evilbluebeaver)

documentation

README

tonic-otel-layer

Layer for a Tonic gRPC server that adds an OpenTelemetry metrics support.

Usage

let exporter = MetricExporter::builder()
        .with_tonic()
        .build()?;

let meter_provider = SdkMeterProvider::builder()
        .with_resource(Resource::builder().with_service_name("my_service").build())
        .with_periodic_exporter(exporter)
        .build();

let metrics_layer = tonic_otel_layer::MetricsLayerBuilder::new()
        .with_provider(meter_provider)
        .build();

Server::builder()
    .layer(metrics_layer)
    .add_service(health_service)
    .serve(addr)
    .await?;

Thanks to

tonic-prometheus-layer - layer for a tonic GRPC server (and client) which provides metrics in prometheus format.

axum-otel-metrics - opentelemetry layer for an axum web-server.

Commit count: 2

cargo fmt