[Системное администрирование, Серверное администрирование, DevOps, Kubernetes] Tоп 10 PromQL запросов для мониторинга Kubernetes (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
12-Июн-2021 13:31

В этой статье приведены примеры популярных запросов Prometheus для мониторинга Kubernetes.Если вы только начинаете работать с Prometheus и у вас возникают сложности при создании запросов PromQL, советуем обратиться к руководству по началу работы с PromQL. Здесь мы пропустим теорию и сразу перейдём к практике.Рейтинг основан на опыте компании Sysdig, ежедневно оказывающей сотням клиентов помощь в настройке мониторинга их кластеров:1. Количество pods в каждом namespaceИнформация о количестве pod в каждом namespace может быть полезна для обнаружения аномалий в кластере, например, слишком большого количества pods в отдельном namespace:
sum by (namespace) (kube_pod_info)
2. Количество контейнеров без CPU limits в каждом namespaceВажно правильно задавать лимиты для оптимизации производительности приложений и кластера. Этот запрос находит контейнеры без CPU limits:
count by (namespace)(sum by (namespace,pod,container)(kube_pod_container_info{container!=""}) unless sum by (namespace,pod,container)(kube_pod_container_resource_limits{resource="cpu"}))
3. Количество перезагрузок pods в каждом namespaceС помощью этого запроса вы получите список pods, которые перезапускались. Это важный показатель, поскольку большое количество перезагрузок pod обычно означает CrashLoopBackOff:
sum by (namespace)(changes(kube_pod_status_ready{condition="true"}[5m]))
4. Pods в статусе Not Ready в каждом namespaceЗапрос выводит все pods, при работе которых возникла проблема. Это может быть первым шагом к её локализации и устранению:
sum by (namespace)(kube_pod_status_ready{condition="false"})
5. Превышение ресурсов кластера — ЦПНеобходимо избегать ситуации, когда CPU limits превышают ресурсы кластера. В противном случае вы можете столкнуться с проблемой троттлинга процессора. Обнаружить превышение лимитами ресурсов кластера можно с помощью запроса:
sum(kube_pod_container_resource_limits{resource="cpu"}) - sum(kube_node_status_capacity_cpu_cores)
6. Превышение ресурсов кластера — ПамятьЕсли все Memory limits суммарно превышают ёмкость кластера, то это может привести к PodEviction, если на узле не будет хватать памяти. Для проверки используйте запрос PromQL:
sum(kube_pod_container_resource_limits{resource="memory"}) - sum(kube_node_status_capacity_memory_bytes)
7. Количество исправных узлов кластераЗапрос выведет количество исправных узлов кластера:
sum(kube_node_status_condition{condition="Ready", status="true"}==1)
8. Количество узлов кластера, которые могут работать некорректноНайти узлы кластера, которые периодически меняют состояние с Ready на Not Ready:
sum(changes(kube_node_status_condition{status="true",condition="Ready"}[15m])) by (node) > 2
9. Обнаружение простаивающих ядер ЦП Планировании ресурсов кластера Kubernetes — не самая простая задача. Этот запрос поможет вам определить, сколько ядер ЦП простаивают:
sum((rate(container_cpu_usage_seconds_total{container!="POD",container!=""}[30m]) - on (namespace,pod,container) group_left avg by (namespace,pod,container)(kube_pod_container_resource_requests{resource="cpu"})) * -1 >0)
10. Обнаружение неиспользуемой памятиЭтот запрос поможет снизить ваши затраты, предоставив информацию о неиспользуемой памяти:
sum((container_memory_usage_bytes{container!="POD",container!=""} - on (namespace,pod,container) avg by (namespace,pod,container)(kube_pod_container_resource_requests{resource="memory"})) * -1 >0 ) / (1024*1024*1024)
Хотите узнать больше?Рекомендуем изучить нашу шпаргалку по PromQL, чтобы узнать, как писать более сложные запросы PromQL.Также воспользуйтесь отличной коллекцией Awesome Prometheus alerts collection. Она включает несколько сотен Prometheus alert rules, вы можете изучить их, чтобы узнать больше о PromQL и Prometheus.
===========
Источник:
habr.com
===========

===========
Автор оригинала: Jesus Ángel Samitier
===========
Похожие новости: Теги для поиска: #_sistemnoe_administrirovanie (Системное администрирование), #_servernoe_administrirovanie (Серверное администрирование), #_devops, #_kubernetes, #_prometheus, #_promql, #_kubernetes, #_monitoring (мониторинг), #_devops, #_sre, #_blog_kompanii_timeweb (
Блог компании Timeweb
)
, #_sistemnoe_administrirovanie (
Системное администрирование
)
, #_servernoe_administrirovanie (
Серверное администрирование
)
, #_devops, #_kubernetes
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 02-Май 21:39
Часовой пояс: UTC + 5