2016-11-25 59 views
2

我们正在处理定期进入的消息。我们使用codahale dropwizard度量''Timer'来测量处理它们所花费的时间。如何重置dropwizard指标的计时器?

我发现有人有同样的问题here: “与指数衰减水库的问题是,如果没有新的数据进来,这将继续给予同样的号码所有的时间。例如,让我们说你更新计时器与5和7(然后不放任何东西),然后无论你什么时候看到(甚至在x小时后),定时器仍然会显示平均值为6,这不代表最后5分钟的任何方式 所以,它只有在数据始终到达时才有效。“

你可以用深蓝色线看: enter image description here

但是,没有任何建议,以解决这个问题。他们说它不会被执行:https://github.com/dropwizard/metrics/issues/399

如何正确地重置这些定时器,或者我应该如何可视化它,以免混淆?

回答

4
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

因此,有两个类似的库使用相同的数据结构和索赔来解决您遇到的问题。

+0

你的答案比我的要详细得多:) –

0

我刚刚用hdrhistogram-metrics-reservoir进行了一个快速测试,似乎工作正常。

现在我想知道为什么这不包括在Dopwizard的官方版本?有什么想法吗?