测微计@Timed 注释

Din*_*dan 5 java spring-boot prometheus micrometer

谁能解释一下千分尺注释公开的度量_count_sum度量之间有什么区别@Timed

在这里,您有两个度量值示例,作为@Timed方法的注释帖子的结果。

GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_count{class="ro.orange.productsbff.infrastructure.adapter.cms.integration.CmsClient",method="getCardLimitsByType",} 9.0

GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_sum{class="ro.orange.productsbff.infrastructure.adapter.cms.integration.CmsClient",method="getCardLimitsByType",} 1.838999262
Run Code Online (Sandbox Code Playgroud)

谢谢!

che*_*tts 6

count是总测量定时器已经采取。该sum是累计时间所有的时间采取了测量。因此,通过将总和除以计数,您可以看到平均时间:

GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_sum / 
GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_count
Run Code Online (Sandbox Code Playgroud)

然而,随着时间的推移,这可能会变得不那么有用,因为随着值的增长,平均值可能会隐藏尖峰。

由于这两个数字只会增加(考虑到重新启动),Prometheus 可以利用这些知识,您可以看到该计时器的 1 分钟平均延迟,如下所示:

increase(GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_sum[1m]) /   
increase(GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_count[1m])
Run Code Online (Sandbox Code Playgroud)