3 个不稳定版本
0.2.0 | 2023年10月21日 |
---|---|
0.1.1 | 2021年10月16日 |
0.1.0 | 2021年5月5日 |
#9 in #statsd
57KB
1K SLoC
Metriki
Metriki 是从 Dropwizard Metrics 拷贝过来的 Rust 库。
与 Dropwizard Metrics 类似,Metriki 在客户端聚合指标,并输出有限的数据。
快速入门
// create a timer to track the execution rate and latency of this function
// to use macros you will need to turn on `macros` feature of metriki_core
#[timed]
fn your_function() {
// a function metered by a timer for its rate and latency
}
use metriki_core::global::global_registry;
use metriki_influxdb_reporter::InfluxDbReporterBuilder;
// by default, the timer is registered in this global_registry()
let registry = global_registry();
// start a reporter to send data into influxdb
InfluxDbReporterBuilder::default()
.url("localhost:8086")
.username(String::from("influxdbuser"))
.password(String::from("yourpassword"))
.database("db")
.registry(registry.clone())
.build()
.unwrap()
.start();
组件
概念
指标
- Counter: 可增可减的值。
- Meter: 测量事件速率。
- Histogram: 记录数据随时间分布。
- Timer: 计数器和直方图的组合。
- Gauge: 当查询时提供值的函数。
MetricsRegistry
所有指标的入口和持有者。
MetricsSet
一个要实现的 trait,以便动态指标可以添加到注册表中。每当报告器和导出器从注册表中提取值时,都会将集合中的指标拉入注册表。
报告器
一个定期报告指标数据的组件。通常用于具有推送模型的存储数据。
导出器
一个将指标数据暴露给外部查询器的组件。通常用于基于拉取的数据存储。
许可证
MIT/Apache-2.0
依赖项
~3.5–9.5MB
~84K SLoC