【发布时间】:2016-11-28 15:17:47
【问题描述】:
我们想使用 Graphite 绘制与事件相关的值,例如“一包 N 消息已发布”。当没有发布数据包时,根本不会运行任何代码,因此我们无法向 Graphite 发送零。
本质上,我们想计算某种每秒的发布率。
以下是我们发送到 Graphite 的一些示例数据(添加了时间戳):
2016-11-28 14:46:33.6338Z api.message.publication.count:100
2016-11-28 15:01:36.0780Z api.message.publication.count:12
2016-11-28 15:01:36.9911Z api.message.publication.count:1
2016-11-28 15:01:37.0679Z api.message.publication.count:100
在 14:46:33 和 15:01:36 之间,没有发送任何消息。但是,在 15:01:36 和 15:01:37 之间,发送了 13 条消息(报告为两个值,12 和 1)。
我尝试了summarize() 函数,但它没有给出对我有意义的结果,即我无法将我发送给 Graphite 的内容与 Graphite 显示的内容关联起来。此外,summarize() 似乎不支持 1 秒的间隔(我尝试过 "1second" 和 "1s" 作为间隔参数)。
perSecond() 函数计算变化率(即导数),但我们发送的已经是一种导数(也许它更接近狄拉克三角洲?)所以它在我们的上下文中没有意义.
我们是完全关闭了,还是有办法使用 Graphite 来完成这项工作?
编辑:我想我们需要为我们的数据添加一个聚合阶段。 Carbon 聚合是否适合这里的账单?
【问题讨论】:
标签: monitoring graphite