我想通过将使用的内核数除以CPU限制(可分配的内核数)来计算容器的实际CPU使用率。因此,对于4个吊舱,我得到了两个不同的指标:
我的问题:
我想获取每个容器的CPU使用率(已使用核心数/可用核心数)。
我尝试过的事情:
这两个查询中的每一个都完全返回我想要的内容:
(我之所以使用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
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使用率(已使用内核数/可用内核数)?
答案 0 :(得分:0)
您还需要使用on()
函数。就是这样。
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", "(.*)") / on(pod) sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)