StatsD 与 Riemann 之间有什么区别?哪个在大规模分布式系统上表现更好?我们有一个基于 Java 构建的分布式平台,我们想要监控应用程序指标和一些警报。我们知道检测不是免费的,所以理想情况下,我们正在寻找一个高度可扩展的应用程序监控框架,它可以为我们的平台/应用程序增加最少的检测成本,并能够进行各种聚合等。我也明白我们可以构建两者结合的东西,但我想不出原因?因为两者似乎都进行聚合等等,但我无法确定哪一个更合适,或者为什么一个比另一个表现更好。如果有人可以分享他们在行业中使用这些工具的经验,那将是一个很大的帮助。

最佳答案

我没有关于 statsd 的确切数字,但 Github 的 Brubeck 帖子表明,他们在 statsd 事件中丢失了大约 40% - 我猜这些图表以秒为单位 - 25,000 个事件/秒。他们用 C 语言替代 statsd,每秒可处理 430 万个事件。 http://githubengineering.com/brubeck/

Riemann 不会在每个数据包的基础上与它竞争,但是在批处理中,比如 10-100 个指标/消息,我听说多个生产用户报告 1000 万个事件/秒。与 statsd 不同,Riemann 将扩展到所有可用的内核——我在测试中已经饱和了我的机器上的网络接口(interface)和所有 48 个内核——但实际性能会因争用和你对流的处理而有所不同。可能会慢很多。一切都取决于。

与 statsd 相比,Riemann 拥有更丰富的事件模型并执行任意计算。一个小的 Riemann 配置可以复制 statsd 的功能——但是当您需要多维汇总、状态转换检测、与各种其他存储和警报服务的集成、抖动抑制、流量控制等时,Riemann 真的很出色。

这样做的代价是使用一种编程语言——Clojure——你的团队可能不熟悉它,并且必须更仔细地推理范围、状态,如果你正在编写自己的流,并发性。 Riemann 的部署也没有那么广泛,这在图书馆支持和招聘人员方面可能是一个缺点。

关于statsd - StatsD 与 Riemann 之间有什么区别?哪个在大型分布式系统上表现更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37158530/

10-10 08:59