#metrics #tower #monitoring #observability

metriki-tower

Metriki 与 tower 的集成

8 个版本

0.2.5 2021 年 10 月 3 日
0.2.4 2021 年 8 月 7 日
0.1.1 2021 年 8 月 1 日
0.1.0 2021 年 7 月 7 日

#observability 中排名第 45

每月下载量 38

MIT/Apache

55KB
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()
  .registry(registry.clone())
  .build()
  .start();

组件

概念

指标

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

MetricsRegistry

所有指标的入口点和持有者。

MetricsSet

一个要实现的特性,以便将动态指标添加到注册表中。每当报告器和导出器从注册表中拉取值时,都会将集合中的指标拉入注册表。

报告器

一个周期性报告指标数据的组件。通常用于具有推送模型的数据库。

导出器

一个将指标数据暴露给外部查询器的组件。通常用于基于拉取的数据数据库。

许可

MIT/Apache-2.0

依赖关系

~4–11MB
~113K SLoC