#metrics #performance #tuning #lock-free #telemetry

kant

一个高性能的零配置指标实现

1 个不稳定版本

0.0.3 2021年2月9日

#235 in 分析

Apache-2.0

9KB
156

历史学家

Build Status crates.io documentation

一个零配置的简单直方图收集器。随机输入时收集大约 160 纳秒,现有指标时大约 65 纳秒。使用对数桶而不是采样,具有有界(通常小于 0.5%)的错误百分位数。


lib.rs:

一个用于分析优化的零配置简单直方图收集器。使用对数桶而不是采样,并且在百分位数上有有界(通常小于 0.5%)的错误。初始创建后不进行任何分配。在收集过程中使用 Relaxed 原子操作。

创建时,它会分配 65k 个 AtomicUsize,用于递增。在运行工作负载后对数十个 Histo 进行报告生成不会产生明显的延迟,但可能不适合用于低延迟报告路径。

在这个中做出的权衡是在收集期间最小化延迟,同时初始分配和后处理延迟是可以接受的。

为了进一步减少收集延迟的未来工作可能包括使用线程本地缓存,直到它们被丢弃,这时它们可以原子地将测量值聚合到用于报告的共享收集器中。

无运行时依赖

功能