我正在使用Graphite和Codahale来记录我的java服务器的指标。我有一个看起来像这样的块代码:
public void foo() {
try (Timer.Context ignored = myTimer.start()) {
// Some code
}
}
当我看今天的事件计数(每个计时器也是一个计数器)时,我发现我们每分钟大约有一百个命中计数,这意味着每小时几千个。当我将日期范围扩大到包括昨天时,我看到结果是在数百万范围内,我无法弄清楚原因。
结果显示在对指标的非负面衍生操作之后
今天的结果:
昨天的结果:
答案 0 :(得分:2)
如果使用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
中描述的计数器设置正确的聚合(总和)答案 1 :(得分:2)
你不想在dropwizard计数器上使用sum。你想使用“最后”它们递增递减量规。你还需要perSecond()和hitcount(10s)而不是衍生物。
http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.perSecond