Разделите группы с помощью PromQL
Я хочу рассчитать фактическую загрузку ЦП контейнера, разделив количество используемых ядер на ограничение ЦП (количество назначаемых ядер). Соответственно, я получаю две разные метрики для 4 модулей:
- Количество используемых ядер для каждой капсулы
- Количество доступных ядер для каждого модуля
Моя проблема:
Я хотел бы получить загрузку процессора для каждого контейнера (количество используемых ядер / количество доступных ядер).
Что я пробовал:
Каждый из этих двух запросов возвращает именно то, что я хочу:
- Количество используемых в настоящее время ядер для каждого модуля:
(Я использую label_replace, потому что одна метрика использует pod_name
в качестве метрического имени и другого использования pod
)
label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)")
Ответ: https://monosnap.com/direct/6EPuLF59HBJaYsAmKG6CM0fRPyUXDk
- Количество доступных ядер для каждого модуля:
sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)
Ответ: https://monosnap.com/direct/dRBfitwcxHIrTRYDmYHwV5YkomYJjH
Этот запрос не работал (не вернул никаких точек данных):
label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)") / sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)
Мой вопрос:
Как я могу получить запрос, который возвращает использование ЦП (количество используемых ядер / количество доступных ядер) для каждого модуля?
0 ответов
Вам нужно использовать on()
функция также. Так было бы так.
label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)") / on(pod) sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)