#metrics #observability #monitoring #aggregate

metriki-core

从 dropwizard metrics 端口迁移的指标库

22 个版本 (稳定)

1.8.0 2023 年 10 月 21 日
1.7.4 2022 年 3 月 24 日
1.7.1 2021 年 11 月 9 日
1.6.0 2021 年 7 月 6 日
0.1.4 2021 年 3 月 19 日

#85 in 调试

Download history 29/week @ 2024-03-11 25/week @ 2024-03-18 38/week @ 2024-03-25 87/week @ 2024-04-01 20/week @ 2024-04-08 19/week @ 2024-04-15 38/week @ 2024-04-22 24/week @ 2024-04-29 30/week @ 2024-05-06 23/week @ 2024-05-13 32/week @ 2024-05-20 23/week @ 2024-05-27 26/week @ 2024-06-03 28/week @ 2024-06-10 26/week @ 2024-06-17 23/week @ 2024-06-24

每月 103 次下载
用于 12 crates

MIT/Apache

46KB
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

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

Reporter

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

Exporter

一个组件,用于将指标数据公开给外部查询者。通常用于基于拉取的数据接收器。

许可证

MIT/Apache-2.0

依赖关系

~1.5–7MB
~37K SLoC