Разделите группы с помощью PromQL - PullRequest
0 голосов
/ 10 сентября 2018

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

Мой вопрос:

Как можно получить запрос, который возвращает использование ЦП (количество использованных ядер / количество доступных ядер) для каждого модуля?

1 Ответ

0 голосов
/ 18 февраля 2019

Вам также необходимо использовать функцию 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)
...