我正在使用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
答案 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);
}