1 个不稳定版本
0.1.0 | 2023年8月4日 |
---|
#3 in #declaring
506 每月下载量
15KB
267 行
Prometheus 宏
prometheus-macros
提供了用于定义 prometheus
指标的宏。
动机
这个包通过引入声明式宏扩展了 prometheus
,以最小化指标声明和初始化期间的样板代码。通常需要多个指标,例如在 HTTP 请求的上下文中,需要声明不同的指标来表示请求数和请求延迟。
尽管 prometheus
已经提供了用于初始化单个指标的声明式宏,但在声明多个指标时仍然会产生大量的样板代码。
示例
use prometheus::{IntGauge, HistogramVec};
use prometheus_macros::composite_metric;
composite_metric! {
struct CompositeMetric {
#[name = "custom_gauge"]
#[desc = "Example gauge metric"]
custom_gauge: IntGauge,
#[name = "custom_hist_vec"]
#[desc = "Example histogram vec"]
#[labels = ["foo", "bar"]]
#[buckets = [0.01, 0.1, 0.2]]
custom_hist_vec: HistogramVec,
}
}
fn main() {
let metric = CompositeMetric::register(prometheus::default_registry())
.expect("failed to register metrics to default registry");
// access the metrics
metric.custom_gauge().set(420);
metric.custom_hist_vec().with_label_values(&["a", "b"]).observe(0.5);
}
依赖关系
~2.5–8.5MB
~69K SLoC