我想通过将使用的内核数除以 CPU 限制(可分配的内核数)来计算实际的容器 CPU 使用率。因此,我得到了 4 个 pod 的两个不同指标:
- 每个 pod 使用的核心数
- 每个 pod 的可用核心数
我的问题:
我想获取每个容器的 CPU 使用率(已用内核数/可用内核数)。
我尝试了什么:
这两个查询中的每一个都返回我想要的内容:
- 每个 pod 当前使用的核心数:
(我使用 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
- 每个 pod 的可用核心数:
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)
我的问题:
如何实现一个查询,返回每个 pod 的 CPU 使用率(已用内核数/可用内核数)?