用千分尺测量事件的发生率

时间:2019-04-01 14:27:53

标签: dropwizard micrometer spring-micrometer

在Dropwizard中,有一个类似meter的东西: https://metrics.dropwizard.io/3.1.0/getting-started/#meters 它使我仅通过在指标上调用mark()方法就可以测量事件的发生率。

如何在测微计中做到这一点?

我可以使用计时器,但是我不想将Timer.Sample对象传递到需要调用stop()方法的任何地方。

与Dropwizard相比,Micrometer中另一个缺少的东西是可以包含文本消息的指标,例如Dropwizard中的gauge。

1 个答案:

答案 0 :(得分:0)

千分尺充分利用了现代指标后端的优势。因此,针对您问题的具体答案取决于您使用的是哪种。以普罗米修斯为例。后端可以为您计算汇率。

如果您要测量发生某事的频率,则可以使用Counter来确定。以logback_events_total计数器为例。它只是在计算所写日志消息的数量。

在发出警报或绘图时,您可以编写诸如rate(logback_events_total[1m])之类的查询,然后您将能够以1m的速率查看日志的写入速率。您可以在不更改代码的情况下从1m切换到5m1h窗口。

关于基于文本的指标,这些指标对警报没有用(但是在使用join子句时很有用)。在这种情况下,典型的解决方案是创建一个值为1或0的量规,并使您的文本值成为标签。例如:

registry.gaugle('app.info', Tags.of("version","1.0.beta3", this, () -> 1.0));