如何在Prometheus监控下在kubernetes中计算容器的cpu使用率? [英] How to calculate containers' cpu usage in kubernetes with prometheus as monitoring?
问题描述
我想计算kubernetes集群中所有Pod的CPU使用率.我发现普罗米修斯的两个指标可能有用:
I want to calculate the cpu usage of all pods in a kubernetes cluster. I found two metrics in prometheus may be useful:
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 ...
However, I found every second's increment of container_cpu_usage{id="/"}
larger than the increment of sum(process_cpu_seconds_total)
. So the usage may be larger than 1...
推荐答案
我用来获取集群级别的CPU使用率:
This I'm using to get CPU usage at cluster level:
sum (rate (container_cpu_usage_seconds_total{id="/"}[1m])) / sum (machine_cpu_cores) * 100
我还跟踪每个Pod的CPU使用率.
I also track the CPU usage for each pod.
sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)
我在GitHub上拥有完整的kubernetes-prometheus解决方案,也许可以为您提供更多指标: https://github.com/camilb/prometheus-kubernetes
I have a complete kubernetes-prometheus solution on GitHub, maybe can help you with more metrics: https://github.com/camilb/prometheus-kubernetes
这篇关于如何在Prometheus监控下在kubernetes中计算容器的cpu使用率?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!