【问题标题】:Graphite metrics shows wrong results石墨指标显示错误的结果
【发布时间】:2017-03-07 13:42:51
【问题描述】:

我正在使用 Graphite 和 Codahale 来记录我的 java 服务器的指标。我有一个看起来像这样的块代码:

public void foo() {
  try (Timer.Context ignored = myTimer.start()) {
    // Some code
  }
}

当我查看今天的事件计数(每个计时器也是一个计数器)时,我发现我们每分钟大约有数百次点击计数,这意味着每小时有几千次。当我将日期范围扩大到昨天也包括在内时,我看到结果在数百万范围内,我不知道为什么。

对指标进行nonNegativeDerivative运算后显示结果

今天的结果:

根据昨天的结果:

【问题讨论】:

  • 上面的图表看起来不像计数器图表。计数器通常是单调递增的,您需要在 Graphite 中应用 nonNegativeDerivative() 函数来获得每分钟的准确调用次数(根据您的度量间隔)。
  • 你是对的,那是在应用 nonNegatvieDerivative() 之后。编辑。
  • 那我怀疑你的问题是什么。您应该应用导数的总和 (sumSeries(nonNegativeDerivative(...))) 而不是总和的导数 - jilles.net/perma/2013/08/22/…

标签: dropwizard graphite codahale-metrics


【解决方案1】:

如果使用 nonNegativeDerivative() - 请先应用导数,然后 sumSeries() - 反之亦然。请查看http://www.jilles.net/perma/2013/08/22/how-to-do-graphite-derivatives-correctly/

此外,您需要为 http://obfuscurity.com/2012/05/A-Precautionary-Tale-for-Graphite-Users 中所述的计数器设置正确的聚合(总和)

【讨论】:

    【解决方案2】:

    您不想在 dropwizard 计数器上使用 sum。您想使用“最后一个”,它们正在递增递减量规。您还需要 perSecond() 和 hitcount(10s) 而不是导数。

    http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.perSecond

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 2020-01-08
      • 2017-03-18
      • 2015-02-18
      • 1970-01-01
      相关资源
      最近更新 更多