Разделите группы с помощью PromQL

Я хочу рассчитать фактическую загрузку ЦП контейнера, разделив количество используемых ядер на ограничение ЦП (количество назначаемых ядер). Соответственно, я получаю две разные метрики для 4 модулей:

  • Количество используемых ядер для каждой капсулы
  • Количество доступных ядер для каждого модуля

Моя проблема:

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

Что я пробовал:

Каждый из этих двух запросов возвращает именно то, что я хочу:

  1. Количество используемых в настоящее время ядер для каждого модуля:

(Я использую 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

  1. Количество доступных ядер для каждого модуля:

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)
Другие вопросы по тегам