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
每月1,961次下载
在5个crate中使用(通过metriken)
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