2个不稳定版本

0.2.0 2022年6月14日
0.1.0 2021年10月3日

#34 in #tracing-subscriber

MIT/Apache

54KB
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();

组件

概念

度量

  • 计数器:可以增加和减少的值。
  • 仪表:测量事件的速率。
  • 直方图:记录随时间变化的数据分布。
  • 计时器:仪表和直方图的组合。
  • 量表:当查询时提供值的函数。

MetricsRegistry

所有度量的入口和持有者。

MetricsSet

一个需要实现的特质,以便将动态度量添加到注册表中。当报告器和导出器从注册表中提取值时,集合中的度量会自动拉入注册表。

报告器

一个定期报告度量数据的组件。通常用于具有推送模型的存储。

导出器

一个将度量数据暴露给外部查询器的组件。通常用于基于拉取的数据存储。

许可证

MIT/Apache-2.0

依赖项

~2.8–8.5MB
~53K SLoC