我有一个系列列表*.in.count
,表示进入队列的消息数。如果我按原样绘制列表,那将是一个永久的上升线:
我想知道的是,有多少邮件进入队列聚合并按小时求和,并按天重置。像这样:
我尝试使用Graphite函数但无法找到实现此目的的方法。
答案 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')
并且还应该根据碳的保留期(一个或多个)进行缩放,这些保留期落入选定的聚合间隔。