【问题标题】:Split continuous counter by time period按时间段拆分连续计数器
【发布时间】:2013-02-18 20:26:48
【问题描述】:

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

我想知道有多少消息进入队列,按小时汇总和汇总,并按天重置。像这样的:

我尝试了 Graphite 函数,但找不到实现此目的的方法。

【问题讨论】:

  • 我认为单独使用 Graphite 不太可能实现这一目标。您需要在 Graphite 之前使用另一个组件来每天重置指标。

标签: graphite


【解决方案1】:

要在 Graphite 中随时间聚合事件,您可以结合使用 group()sumSeries()summarize()group 函数将指标提取到单个系列中,然后 sumSeries 将它们相加,然后 summarize 将它们聚合一段时间。

例如:

1 小时总和:

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

1 天总和

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

然后,要使图表看起来像您想要的那样(即条形图),您应该将“线模式”设置为 阶梯线,将“区域模式”设置为 堆叠全部

【讨论】:

  • summarize 方法对我不起作用。 dropwizard(codehale)counter.incmeter.mark 都报告了测试指标。有了这两个指标,它一直在上升,直到应用程序重新启动。总结给出了相同的(不断增加的)图表,无论有没有分组和 sumSeries。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 2021-04-07
    • 2017-10-26
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    相关资源
    最近更新 更多