在Dropwizard中有类似米的东西:https://metrics.dropwizard.io/3.1.0/getting-started/#meters它让我通过在度量上调用mark()
方法来测量事件的速率。
我怎样才能在千分尺中做到这一点?
我可以使用计时器,但我不想将Timer.Sample
对象传递到我需要调用stop()
方法的地方。
与Dropwizard相比,Micrometer中另一个缺少的东西是一个可以包含文本消息的指标,如Dropwizard中的gauge。
Micrometer利用现代指标后端的优势。因此,您问题的具体答案取决于您使用的是什么。以普罗米修斯为例。后端可以为您计算费率。
如果您正在测量某事发生的频率,您可以使用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));