Микрометр с временной аннотацией

#java #spring-boot #prometheus #micrometer

#java #весенняя загрузка #prometheus #микрометр

Вопрос:

Кто-нибудь может объяснить мне, в чем различия между _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
  

Спасибо!

Ответ №1:

count — это общее количество измерений, выполненных таймером. sum Это совокупная продолжительность всех измерений, которые были проведены за это время. Таким образом, разделив сумму на количество, вы можете увидеть, что среднее время:

 GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_sum / 
GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_count
  

Однако со временем это может стать менее полезным, поскольку это среднее значение может скрывать всплески по мере роста значений.

Поскольку оба эти числа будут только увеличиваться (с учетом перезапусков), Prometheus может использовать эти знания, и вы можете увидеть среднюю задержку в 1 минуту для этого таймера следующим образом:

 increase(GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_sum[1m]) /   
increase(GET_CARD_LIMITS_BY_LIMIT_TYPE_seconds_count[1m])