千分尺和普罗米修斯计时器作为速率
Posted
技术标签:
【中文标题】千分尺和普罗米修斯计时器作为速率【英文标题】:Micrometer and Prometheus Timer as Rate 【发布时间】:2018-10-30 01:12:17 【问题描述】:根据 Micrometer 的文档 https://micrometer.io/docs/concepts#_server_side,框架 (Micrometer) 应处理将计时器指标从绝对量转换为速率
下面的代码模拟了一个虚拟计时器:
@Service
public class AppService
private Timer timer = Metrics.timer("foobar");
public String test()
timer.record(() ->
try
Thread.sleep((long) (Math.random() * 1000));
catch (InterruptedException e)
e.printStackTrace();
);
return "foo";
但在 Prometheus 中,我只看到指标 foobar_seconds_sum
和 foobar_seconds_count
单调递增,而不是将它们视为速率
也许我误解或忽略了文档中的某些内容?
【问题讨论】:
【参考方案1】:这是 Prometheus Summary 的工作方式,您可以使用以下方法计算平均事件大小:
rate(foobar_seconds_sum[5m])
/
rate(foobar_seconds_count[5m])
对于 Prometheus,客户端库是愚蠢的,应该将更复杂的数学运算留给 Prometheus。
【讨论】:
谢谢,这更有意义。这证明我对文档的理解以某种方式被颠倒了。答案已接受以上是关于千分尺和普罗米修斯计时器作为速率的主要内容,如果未能解决你的问题,请参考以下文章