#metrics #open-telemetry #atomic #observable #sync #obs #updated

influxive-otel-atomic-obs

基于 std::sync::atomic 类型实现的 Opentelemetry 可观测指标

7 个版本

0.0.3-alpha.12024年6月5日
0.0.2-alpha.12023年10月16日
0.0.1-alpha.112023年8月4日
0.0.1-alpha.92023年7月31日

#507 in 开发工具

Download history 764/week @ 2024-04-21 825/week @ 2024-04-28 593/week @ 2024-05-05 574/week @ 2024-05-12 778/week @ 2024-05-19 791/week @ 2024-05-26 1048/week @ 2024-06-02 692/week @ 2024-06-09 694/week @ 2024-06-16 712/week @ 2024-06-23 457/week @ 2024-06-30 623/week @ 2024-07-07 913/week @ 2024-07-14 389/week @ 2024-07-21 770/week @ 2024-07-28 739/week @ 2024-08-04

2,832 每月下载量
用于 18 个 crate(2 直接使用)

MIT/Apache

26KB
594 代码行

基于 std::sync::atomic 类型实现的 Opentelemetry 可观测指标。Opentelemetry 有一个“可观测”指标的概念,这些指标不是在更新时报告,而是在更新发生时进行轮询。为了在代码中使用方便,通常希望这些指标由 std::sync::atomic 类型支持,这样它们可以在代码中轻松更新,并在指标报告轮询时进行检索。这个 crate 提供了 [MeterExt] 特性和相关类型,以便轻松使用 opentelemetry 的 std::sync::atomic 支持的指标。

示例

use influxive_otel_atomic_obs::MeterExt;

let (my_metric, _) = opentelemetry_api::global::meter("my_meter")
    .u64_observable_gauge_atomic("my_metric", 0)
    .init();

my_metric.set(66); // probably will not be reported
my_metric.set(99); // probably will not be reported
my_metric.set(42); // will be reported next time reporting runs

依赖项

~2–3MB
~55K SLoC