1 个不稳定版本
0.1.0 | 2021 年 8 月 27 日 |
---|
#60 在 #observability
52KB
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
一个要实现的特质,以便动态地将度量添加到注册表中。当报告器和导出器从注册表中拉取值时,集合中的度量会被拉入注册表。
报告器
一个定期报告度量数据的组件。通常用于具有推送模型的 数据接收器。
导出器
一个将度量数据暴露给外部查询器的组件。通常用于基于拉取的数据接收器。
许可
MIT/Apache-2.0
lib.rs
:
Metriki Jemalloc 仪器库
此库提供 jemalloc 内存分配器的指标。数据来自名为 jemalloc-ctl
的库,我们使用的是 tikv 维护的版本。建议也使用该版本的 jemallocator。
该仪器以 MetricsSet
的形式提供。使用 MetricsRegistry::register_metrics_set
将其添加到您的 metriki 注册表中。
在 GitHub 仓库中可以找到一个示例。
依赖项
~3.5–9MB
~86K SLoC