我有一个系列列表*.in.count
,表示进入队列的消息数。如果我按原样绘制列表,它将是一条永远上升的线:
我想知道的是有多少消息进入队列,按小时汇总和汇总,并按天重置。像这样的东西:
我尝试了 Graphite 功能,但找不到实现此目的的方法。
我有一个系列列表*.in.count
,表示进入队列的消息数。如果我按原样绘制列表,它将是一条永远上升的线:
我想知道的是有多少消息进入队列,按小时汇总和汇总,并按天重置。像这样的东西:
我尝试了 Graphite 功能,但找不到实现此目的的方法。
要在 Graphite 中随时间聚合事件,您可以结合使用group()
、sumSeries()
和summarize()
。group函数将指标提取到单个系列中,然后sumSeries将它们相加,然后汇总在一个间隔内聚合它们。
例如:
1小时总和:
summarize(sumSeries(group(*.in.count)),"1h")
或者
1天总和
summarize(sumSeries(group(*.in.count)),"1d")
然后,要使图形看起来像您想要的(即条形图),您应该将“线模式”设置为阶梯线,将“区域模式”设置为堆叠或全部。
老问题,但为了其他搜索者:
总结或计算每个间隔的计数(总计):
hitcount(perSecond(your.count), '1day')
Afaik 它在里面做了所有的黑魔法。包括但不限于summarize(scaleToSeconds(nonNegativeDerivative(your.count),1), '1day')
并且还应该根据落入所选聚合区间的碳保留期(一个或多个)进行缩放。