Twitter 开源遥测工具 Rezolus,可用于检测瞬态异常

作者丨Hrishikesh Barua
译者丨刘雅梦
Twitter 工程团队开源了他们的遥测工具 Rezolus,该工具可以通过比常规工具更高的采样频率来检测系统性能指标中的异常。Rezolus 以很高的速率采集样本,且采样频率是可配置的。它根据采集到的数据生成直方图,并将百分位数据导出到后端的时序存储中。在“百分位数的尾部”可以检测到短暂的异常。
Rezolus 的需求来源于检测在遥测工具采样时间间隔内发生的异常。例如,大多数工具都配置成每隔 15 秒或 1 分钟才采样一次数据,因为更高的频率可能会导致过多的数据点,从而导致更高的存储成本。在 Twitter 上,一些高吞吐量的基准测试产生了现有工具无法检测到的异常。
Rezolus 可以使用名为“samplers”的插件从多个资源中收集数据。一些采样器会从 Linux 内核资源中读取数据。这些数据包括 CPU、网络及磁盘使用情况等指标,这些指标是从传统的资源(如 procfs 和 sysfs)中获得的。除了这些传统的资源外,Rezolus 还支持 perf_events ,它是一个嵌入在 Linux 内核中的工具。perf_events 可用于收集硬件和软件事件相关的数据,比如页错误、上下文切换及缓存命中 / 未命中等。Extended Berkeley Packet Filter(eBPF)也支持在内核组件上收集指标。eBPF 是一组低级别的 API,通过该 API 可以很方便地为 Linux 内核构建分析工具。此外,Rezolus 还可以通过将高频指标转换为基于直方图的指标,从而可以充当应用程序和其他指标收集器之间的桥梁。
根据文档中所写,Rezolus“通过在内核中收集遥测数据,可以以极低的性能开销收集到在极高速率下才会发生的事件数据,比如,任务调度。“ Rezolus 的作者之一、Twitter 工作后台网站的可靠性工程师 Brian Martin 说到,采用 10Hz(10 次 / 秒)的采样频率时,它通常会占用 15% 的 CPU 内核。禁用 eBPF 可以进一步降低资源消耗。
Rezolus 是用 Rust 编写的,并在 Apache 2.0 许可下发布。它重用了一个名为 rpc-perf 的 Twitter 度量库。Twitter 工程团队使用 Rezolus 已经有一年多了。
原文链接:
https://www.infoq.com/news/2019/08/telemetry-twitter-rezolus/
GitHub 地址:
https://github.com/twitter/rezolus

点个在看少个 bug ?
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中法友谊蕴山水 7904049
- 2 你以为的进口尖货 其实早已国产了 7809340
- 3 劲酒如何成了年轻女性的神仙水 7711915
- 4 盘点2025大国重器新突破 7618405
- 5 存100万存20万利率一样透露啥信号 7524097
- 6 中美合拍《我的哪吒与变形金刚》首播 7426739
- 7 美军承认:击落美军战机 7329661
- 8 尖叫之夜直播 7238865
- 9 美国称将调整与中国经济关系 7136930
- 10 周末去哪玩?雪场“不打烊” 7040310







InfoQ
