在Dropwizard中,有一个类似meter的东西:
https://metrics.dropwizard.io/3.1.0/getting-started/#meters
它使我仅通过在指标上调用mark()
方法就可以测量事件的发生率。
如何在测微计中做到这一点?
我可以使用计时器,但是我不想将Timer.Sample
对象传递到需要调用stop()
方法的任何地方。
与Dropwizard相比,Micrometer中另一个缺少的东西是可以包含文本消息的指标,例如Dropwizard中的gauge。
答案 0 :(得分:0)
千分尺充分利用了现代指标后端的优势。因此,针对您问题的具体答案取决于您使用的是哪种。以普罗米修斯为例。后端可以为您计算汇率。
如果您要测量发生某事的频率,则可以使用Counter
来确定。以logback_events_total
计数器为例。它只是在计算所写日志消息的数量。
在发出警报或绘图时,您可以编写诸如rate(logback_events_total[1m])
之类的查询,然后您将能够以1m
的速率查看日志的写入速率。您可以在不更改代码的情况下从1m
切换到5m
或1h
窗口。
关于基于文本的指标,这些指标对警报没有用(但是在使用join
子句时很有用)。在这种情况下,典型的解决方案是创建一个值为1或0的量规,并使您的文本值成为标签。例如:
registry.gaugle('app.info', Tags.of("version","1.0.beta3", this, () -> 1.0));