按时间段拆分连续计数器

时间:2013-02-18 20:26:48

标签: graphite

我有一个系列列表*.in.count,表示进入队列的消息数。如果我按原样绘制列表,那将是一个永久的上升线:

enter image description here

我想知道的是,有多少邮件进入队列聚合并按小时求和,并按天重置。像这样:

enter image description here

我尝试使用Graphite函数但无法找到实现此目的的方法。

2 个答案:

答案 0 :(得分:2)

要在Graphite中随时间汇总事件,您可以合并使用group()sumSeries()summarize()功能将指标拉入单个系列,然后 sumSeries 将它们相加,然后汇总将它们聚合一段时间。

例如:

1小时总和:

summarize(sumSeries(group(*.in.count)),"1h")

1天总和

summarize(sumSeries(group(*.in.count)),"1d")

然后,为了使图形看起来像你想要的(例如条形图),你应该将“线条模式”设置为楼梯线和“区域模式”为堆叠全部

答案 1 :(得分:0)

老问题,但为了其他搜索者的目的:

总结或计算每个区间的计数(总计):

hitcount(perSecond(your.count), '1day')

Afaik它完成了所有的黑魔法。包括但不限于summarize(scaleToSeconds(nonNegativeDerivative(your.count),1), '1day') 并且还应该根据碳的保留期(一个或多个)进行缩放,这些保留期落入选定的聚合间隔。