Dropwizard指标 - 如何在报告间隔后重置计数器

时间:2016-06-30 20:20:54

标签: metrics codahale-metrics

我正在使用codahale指标(现在是dropwizard指标)来监控一些事件'发生在我的系统中。我正在使用counters指标来跟踪“事件”的时间长度。发生了。

我检查了记者为我的计数器指标打印的值,看起来价值一直在增加(并且永远不会下降)。这似乎是合乎逻辑的,因为每当我的事件发生时,我总是使用metrics.inc()函数。发生。

What I really want is to get count of my 'event' happening between two reporting times,为此我需要在每次报告指标时重置计数器,但我无法在计数器指标中找到任何选项来执行此操作。 codahale用户是否有一种方法或一般做法来制作此类指标?

当前行为(报告时间10秒):

00:00:00 0
00:00:10 2 // event happened twice
00:00:20 2 // event did not occur
00:00:30 5 // event occured three times`

预期指标:

00:00:00 0
00:00:10 2
00:00:20 0
00:00:30 3

2 个答案:

答案 0 :(得分:1)

总结或计算每个任意间隔的计数(总计):

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

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

答案 1 :(得分:0)

我认为counter不是您案例的正确指标。考虑使用meter,它将为您提供每个时间间隔的费率:

while(...) {
    int stuffProcesssed = doStuff();
    meter.mark(stuffProcesssed);
}