8个版本 (5个破坏性更新)

0.5.1 2024年1月18日
0.5.0 2024年1月17日
0.4.1 2024年1月18日
0.3.4 2024年1月18日
0.0.0 2023年1月17日

#19 in #declare

Download history 253/week @ 2024-03-14 577/week @ 2024-03-21 591/week @ 2024-03-28 501/week @ 2024-04-04 237/week @ 2024-04-11 275/week @ 2024-04-18 351/week @ 2024-04-25 283/week @ 2024-05-02 288/week @ 2024-05-09 276/week @ 2024-05-16 367/week @ 2024-05-23 480/week @ 2024-05-30 708/week @ 2024-06-06 527/week @ 2024-06-13 343/week @ 2024-06-20 365/week @ 2024-06-27

每月1,961次下载
5个crate中使用(通过metriken

Apache-2.0

15KB
300

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.4–2MB
~41K SLoC