Показатели ЦП в приложении Grafana для Spring Webflux с Actuator Micrometer и Prometheus

Небольшой вопрос о том, как построить визуальное представление и понимание показателей ЦП, пожалуйста.

У меня есть приложение Spring Boot Webflux, ничего особенного. Я добавляю зависимости Actuator, Micrometer и Prometheus.

В приложении есть готовые метрики для процессора, что, на мой взгляд, очень круто. Я также считаю, что эти показатели содержат огромную информацию. К сожалению, я считаю, что не понимаю Grafana или сами показатели, чтобы полностью раскрыть его потенциал.

Метрики:

system_cpu_usage
process_cpu_usage
system_cpu_count
system_load_average_1m

Не зная, как их правильно использовать, я использую самые простые нубские запросы:

system_cpu_usage{_ns_=“my_namespace",cluster=~”my_cluster"}
process_cpu_usage{_ns_=“my_namespace",cluster=~”my_cluster"}
system_cpu_count{_ns_=“my_namespace",cluster=~”my_cluster”}
system_load_average_1m{_ns_=“my_namespace",cluster=~”my_cluster"}

И с ними я получаю некоторые результаты. Дело в том, что я получаю лишь несколько плоских линий, по которым нельзя сделать никаких дальнейших выводов или действий.

Я вижу в Интернете несколько более сложных запросов, таких как

avg_over_time(process_cpu_usage{_ns_=“my_namespace",cluster=~”my_cluster"}[1h])

Или некоторые используют delta rate irate. Но непонятно, для чего они здесь.

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

Спасибо.


person PatPatPat    schedule 26.06.2021    source источник


Ответы (1)


Использование avg_over_time для последних 1h полезно, если вы хотите создать правило для менеджера предупреждений. Представьте себе вариант использования, в котором каждый всплеск производительности процессора вызывает срабатывание правила alertmanager. Это что-то нежелательное. Кстати, в этом конкретном случае я бы предпочел использовать histogram_quantile, потому что среднее может скрывать высокие значения (просто потому, что это среднее). Некоторые рекомендации по использованию процентилей приведены здесь: https://prometheus.io/docs/practices/histograms/#quantiles . Затем вы используете rate, чтобы определить временное окно для вашего квантиля.

histogram_quantile(0.9, rate(
  process_cpu_usage{_ns_=“my_namespace",cluster=~”my_cluster"}[1h]
))
person Felipe    schedule 26.06.2021