Как рассчитать использование ЦП контейнеров в 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
ну вы можете использовать ниже запрос, а также
avg (rate (container_cpu_usage_seconds_total{id="/"}[1m]))