2 个版本

0.1.1 2024 年 1 月 18 日
0.1.0 2024 年 1 月 17 日

296值格式化

Download history 231/week @ 2024-03-14 348/week @ 2024-03-21 480/week @ 2024-03-28 282/week @ 2024-04-04 188/week @ 2024-04-11 243/week @ 2024-04-18 312/week @ 2024-04-25 257/week @ 2024-05-02 214/week @ 2024-05-09 158/week @ 2024-05-16 338/week @ 2024-05-23 402/week @ 2024-05-30 508/week @ 2024-06-06 448/week @ 2024-06-13 353/week @ 2024-06-20 371/week @ 2024-06-27

1,695 每月下载
5 个 Crates 中使用 (通过 metriken)

Apache-2.0

32KB
592

metriken

轻松注册分布式指标。

metriken 允许您轻松地在整个代码库中声明静态指标。然后,当您想要公开这些指标时,您可以在一个地方访问它们。

use metriken::{metric, Counter, Gauge, Value};

/// A counter metric named "<crate name>::COUNTER"
#[metric]
static COUNTER: Counter = Counter::new();

/// A gauge metric named "my.metric"
#[metric(name = "my.metric")]
static GAUGE: Gauge = Gauge::new();

fn main() {
    COUNTER.increment();

    for metric in &metriken::metrics() {
        let name = metric.name();

        match metric.value() {
            Some(Value::Counter(val)) => println!("{name}: {val}"),
            Some(Value::Gauge(val)) => println!("{name}: {val}"),
            _ => println!("{name}: <custom>")
        }
    }
}

更新指标的代码始终可以访问它们,而无需经过任何间接引用。(这仅仅意味着访问静态!)。使用 linkme,所有指标都被收集到一个全局数组中,然后可以使用它来读取所有指标并公开它们。

依赖关系

~1–7MB
~37K SLoC