2 个版本
0.1.1 | 2024 年 1 月 18 日 |
---|---|
0.1.0 | 2024 年 1 月 17 日 |
296 在 值格式化
1,695 每月下载
在 5 个 Crates 中使用 (通过 metriken)
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