如何重置dropwizard指标的计时器?

时间:2016-11-25 14:22:06

标签: timer dropwizard metrics codahale-metrics

我们正在定期处理消息。我们使用codahale dropwizard指标' "定时器"用于测量处理它们所需的时间。

我发现有人遇到同样的问题here: "指数衰减储层的问题是,如果没有新数据进入,它将一直保持给出相同的数字。例如,假设您用5和7更新计时器(然后根本不放任何东西),那么无论何时看到(即使在x小时后),计时器仍将显示平均值为6,这是不代表最后5分钟的任何方式。 所以,它只有在数据一直到达时才有效。"

正如您所看到的深蓝色线条: enter image description here

但是没有任何建议可以解决它。他们说它不会被实施:https://github.com/dropwizard/metrics/issues/399

如何正确地重置这些计时器,或者我应该如何对其进行可视化,以免造成混淆?

1 个答案:

答案 0 :(得分:8)

Note: It is too long for comment.

使用SlidingTimeWindowReservoir将涵盖大多数用例。 但正如this comment中指出的那样,根据事件的数量可能存在问题: 它将窗口中的所有测量值保留在内存中,这在大量事件中变得不可接受

我们可以做得更好吗?我们继续搜索。如果幸运的话,我们会找到this blog post。它描述了你的问题。有一个简单的脏解决方案的链接。还建议使用HdrHistogram

同样在metrics mailing list上有几条关于此问题的消息。 对于example并指向Marshall Pierce/hdrhistogram-metrics-reservoir。什么是HdrHistogram以及为什么用它来衡量延迟来检查项目描述。

最后经过一些挖掘后你还可以找到vladimir-bukhtoyarov/metrics-core-hdr 项目。它也在使用HdrHistogram

因此,有两个类似的库使用相同的数据结构并声称可以解决您遇到的问题。