6 个版本 (破坏性)
0.5.0 | 2022 年 5 月 10 日 |
---|---|
0.4.0 | 2021 年 10 月 6 日 |
0.3.0 | 2021 年 9 月 14 日 |
0.2.0 | 2021 年 9 月 8 日 |
0.1.1 | 2021 年 9 月 7 日 |
在 Rust 模式 中排名 1304
每月下载量 819
在 2 crates 中使用
28KB
216 行
Prometheus 度量值存储
当使用 Prometheus 度量值对代码进行仪表化时,需要编写相当多的样板代码。
此 crate 将为您生成大部分此类样板代码
#[derive(prometheus_metric_storage::MetricStorage)]
#[metric(subsystem = "transport", labels("endpoint"))]
struct Metrics {
/// Number of requests that are currently inflight.
inflight: prometheus::IntGauge,
/// Number of finished requests by response code.
#[metric(labels("status"))]
requests_finished: prometheus::IntCounterVec,
/// Number of finished requests by total processing duration.
#[metric(buckets(0.1, 0.2, 0.5, 1, 2, 4, 8))]
requests_duration_seconds: prometheus::Histogram,
}
fn main() {
let metrics = Metrics::new(
prometheus::default_registry(),
/* endpoint = */ "0.0.0.0:8080"
).unwrap();
metrics.inflight.inc();
metrics.requests_finished.with_label_values(&["200"]).inc();
metrics.requests_duration_seconds.observe(0.015);
}
依赖项
~3.5–9MB
~87K SLoC