【问题标题】:Split count metric by delta across time interval in Graphite在 Graphite 中按时间间隔按增量拆分计数指标
【发布时间】:2013-10-08 16:22:36
【问题描述】:

我有一个计数器指标,我称之为a.metric.count

正常绘制时,这将是一条不断增加的向上线,这不是那么有用。我想要的是显示每小时发生的事件数。

【问题讨论】:

    标签: graphite


    【解决方案1】:

    使用derivative 函数,如下所述:http://graphite.readthedocs.org/en/1.0/functions.html#graphite.render.functions.derivative

    这将在每个数据点显示值从之前的时间序列数据点增加了多少。

    如果您想按小时查看,可以使用summarize,如下所述:http://graphite.readthedocs.org/en/1.0/functions.html#graphite.render.functions.summarize

    因此,要查看 .count 每小时增加的情况,您可以这样做:

    summarize(derivative(a.metric.count), "1hour")

    【讨论】:

    • 当我的“不断增加”的计数器在某个时刻(环聊等)降至零时会发生什么情况,我应该使用nonNegativeDerivative 而不是derivative 出于同样的原因吗?跨度>
    【解决方案2】:

    也使用了 diffSeries,但会产生更好的图表:

    diffSeries(
        sumSeries(a.metric.count),
        sumSeries(timeShift(a.metric.count, "1h"))
    )
    

    如果你想避免结束尖峰,你可以使用双偏移:

    diffSeries(
        sumSeries(timeShift(a.metric.count, "1h")),
        sumSeries(timeShift(a.metric.count, "2h"))
    )
    

    请记住,使用这种方法,您将落后于较小的偏移量。

    【讨论】:

      【解决方案3】:

      首先我们需要两张不同的图表:

      • a.metric.count
      • timeShift(a.metric.count, "1h")

      接下来我们需要按小时总结这些,使用每个小时记录的最后一个值:

      • summarize(a.metric.count, "1h", "last")
      • summarize(timeShift(a.metric.count, "1h"), "1h", "last")

      现在我们只需要显示两个图表之间的差异:

      diffSeries(summarize(timeShift(a.metric.count, "1h"), "1h", "last"), summarize(a.metric.count, "1h", "last"))

      这种方法唯一的问题是最近一小时的数据是错误的,因为非时移图上没有“最后”值,这意味着该图会出现峰值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-28
        • 2018-06-18
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多