Я хочу рассчитать фактическую загрузку ЦП контейнера, разделив количество используемых ядер на ограничение ЦП (количество назначаемых ядер). Соответственно я получаю две разные метрики для 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)
Мой вопрос:
Как можно получить запрос, который возвращает использование ЦП (количество использованных ядер / количество доступных ядер) для каждого модуля?