#prometheus #metrics #open-telemetry

scuffle-metrics

Helper crate to instrument your code with metrics

14 releases (4 breaking)

Uses new Rust 2024

0.4.2 Aug 6, 2025
0.4.1 Jul 12, 2025
0.4.0 Jun 11, 2025
0.3.2 May 30, 2025
0.0.0 Nov 28, 2024

#1063 in Debugging

Download history

1,008 downloads per month
Used in scuffle-image-processor

MIT/Apache

86KB
2K SLoC

scuffle-metrics

[!WARNING]
This crate is under active development and may not be stable.

License: MIT OR Apache-2.0 docs.rs crates.io GitHub Actions: ci Codecov


A wrapper around opentelemetry to provide a more ergonomic interface for creating metrics.

This crate can be used together with the scuffle-bootstrap-telemetry crate which provides a service that integrates with the scuffle-bootstrap ecosystem.

See the changelog for a full release history.

Feature flags

  • prometheus (enabled by default) — Enables prometheus support
  • tracing — Enables tracing support
  • docs — Enables changelog and documentation of feature flags

Example

#[scuffle_metrics::metrics]
mod example {
    use scuffle_metrics::{MetricEnum, collector::CounterU64};

    #[derive(MetricEnum)]
    pub enum Kind {
        Http,
        Grpc,
    }

    #[metrics(unit = "requests")]
    pub fn request(kind: Kind) -> CounterU64;
}

// Increment the counter
example::request(example::Kind::Http).incr();

For details see metrics!.

License

This project is licensed under the MIT or Apache-2.0 license. You can choose between one of them if you use this work.

SPDX-License-Identifier: MIT OR Apache-2.0

Dependencies

~2.7–6MB
~92K SLoC