在 Graphite 中绘制事件值
Plot event values in Graphite
我们想使用 Graphite 绘制与 "a packet of N messages has been published" 等事件相关的值。当没有数据包发布时,根本就没有代码 运行,所以我们不能向 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 聚合是否适合这里的要求?
事实证明,我们已经将指标发送到 statsd
,它支持通过 c
指标类型进行聚合,以及其他一些漂亮的东西:https://github.com/etsy/statsd/blob/master/docs/metric_types.md
我们想使用 Graphite 绘制与 "a packet of N messages has been published" 等事件相关的值。当没有数据包发布时,根本就没有代码 运行,所以我们不能向 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 聚合是否适合这里的要求?
事实证明,我们已经将指标发送到 statsd
,它支持通过 c
指标类型进行聚合,以及其他一些漂亮的东西:https://github.com/etsy/statsd/blob/master/docs/metric_types.md