Как рассчитать использование ЦП контейнеров в kubernetes с prometheus в качестве мониторинга?

Я хочу рассчитать использование ЦП всех модулей в кластере kubernetes. Я нашел две метрики в prometheus может быть полезно:

container_cpu_usage_seconds_total: Cumulative cpu time consumed per cpu in seconds.
process_cpu_seconds_total: Total user and system CPU time spent in seconds.

Cpu Usage of all pods = increment per second of sum(container_cpu_usage_seconds_total{id="/"})/increment per second of sum(process_cpu_seconds_total)

тем не менее, я нашел каждую секунду приращение container_cpu_usage{id="/"} больше, чем приращение sum(process_cpu_seconds_total). Таким образом, использование может быть больше 1...

2 ответов


Это я использую, чтобы получить использование процессора на уровне кластера:

sum (rate (container_cpu_usage_seconds_total{id="/"}[1m])) / sum (machine_cpu_cores) * 100

Я также отслеживаю использование ЦП для каждого модуля.

sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)

у меня есть полное решение kubernetes-prometheus на GitHub, возможно, может помочь вам с большим количеством метрик:https://github.com/camilb/prometheus-kubernetes

enter image description here

enter image description here


ну вы можете использовать ниже запрос, а также

avg (rate (container_cpu_usage_seconds_total{id="/"}[1m]))