Как запросить ограничение памяти контейнера в Prometheus - PullRequest
0 голосов
/ 01 октября 2018

Я использую инструмент Prometheus для мониторинга моего кластера Kubernetes.

Я установил лимит ресурсов (ограничение памяти) в моих развертываниях и мне нужно настроить панель для отображения общего объема доступной памяти.Пожалуйста, дайте мне знать запрос, необходимый для запуска в Prometheus, чтобы получить общий лимит памяти, доступный для моего развертывания.

1 Ответ

0 голосов
/ 01 октября 2018

Это возможно с помощью показателей kube_pod_container_resource_limits_memory_bytes (предоставляемых kube-state-metrics ) и container_memory_usage_bytes (предоставляемых kubelet / cAdvisor)

label_replace(
  label_replace(
    kube_pod_container_resource_limits_memory_bytes{},
    "pod_name", 
    "$1", 
    "pod", 
    "(.+)"
  ),
  "container_name", 
  "$1", 
  "container", 
  "(.+)"
) 
-
on(pod_name,namespace,container_name) 
avg(
      container_memory_usage_bytes{pod_name=~".+"}
)
by (pod_name,namespace,container_name)

Небольшое объяснение запроса: Itвычитание предела памяти и фактического использования.label_replace функции необходимы для соответствия имен меток обеих метрик, так как они получены из разных целей.avg используется для получения среднего значения между перезапусками модуля, так как каждый перезапуск модуля создает новую метрику.{pod_name=~".+"} используется для фильтрации метрик из container_memory_usage_bytes, которые не подходят для этого случая

...