#metrics #tokio #observability #monitoring #aggregate

metriki-tokio

tokio 指标的 Metriki 集成

2 个不稳定版本

0.2.0 2023年12月27日
0.1.0 2022年3月24日

#12 in #aggregate

MIT/Apache

56KB
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 Tokio 仪器

本库为metriki提供tokio-metrics集成。

设置

默认情况下,此库提供RuntimeMetrics。根据tokio-metrics的要求,需要tokio_unstable才能使用此功能。有关设置cargo配置的步骤,请参阅文档

要禁用不稳定的功能,您可以通过包含以下内容来使用此库:default-features = false

用法

代码库中提供了一个示例

有关指标的含义,请查看tokio-metrics文档

依赖关系

约6–13MB
约138K SLoC