你给出的公式应该是正确的。
CPU使用率的计算公式为:
rate(container_cpu_usage_seconds_total[10m]) / (container_spec_cpu_quota / container_spec_cpu_period)
定义:
container_cpu_usage_seconds_total
:容器的CPU使用时间(以秒为单位)container_spec_cpu_period
:容器CPU的追踪周期,一般为 100000 微妙container_spec_cpu_quota
:每个CPU周期内,容器可以拥有多少CPU时间(以微秒为单位)
举例:
1.假设为容器指定 cpu_qouta
为 7 CPUs/周期,即 700000 microseconds / 100000 microseconds,则可以做如下换算:
- 700 milliseconds CPU时间 每 100 milliseconds
- 0.7 seconds CPU时间 每100 milliseconds
- 7 seconds CPU时间 每 second
2.假设rate(container_cpu_usage_seconds_total[10m]) 为 1.34s,统一单位为秒,则CPU使用率计算的结果为 1.34 / 7 * 100 ≈ 19.1
3.kube_pod_container_resource_limits_cpu_cores 应该可以等价于 container_spec_cpu_quota / container_spec_cpu_period
可参考下面两个连接:
Prometheus metrics
Average CPU % usage per container