22 个版本 (7 个重大更改)
0.7.0 | 2024年6月12日 |
---|---|
0.5.1 | 2024年1月18日 |
0.3.3 | 2023年10月25日 |
0.2.1 | 2023年7月26日 |
0.1.3 | 2023年3月24日 |
#40 in 值格式化
1,811 每月下载量
在 4 crate 中使用
110KB
2K SLoC
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
,所有指标都被收集到一个全局数组中,然后可以使用它来读取所有指标并公开它们。
依赖项
~2.2–8MB
~61K SLoC