我想获得 CPU 使用率的平均百分比,但仅限于计算(又名工作)节点。这意味着我需要在这里结合两个指标。个别问题很容易解决。
为了获得平均CPU使用率,我可以使用(集群节点在这里用
instance
标签表示):
sum(rate(node_cpu_seconds_total{mode!="idle"}[5m])) / count(node_cpu_seconds_total{mode="idle"}) * 100
获取计算节点列表(集群节点名称由
node
标签表示):
kube_node_role{role="worker"}
但是如何将这两者放在一起呢?
前一段时间,我创建了一个查询,显示每个计算节点正在运行的 Pod 数量:
count(kube_pod_info * on(node) group_left(role) kube_node_role{role="worker"} and on(pod, namespace) (kube_pod_status_phase{job="kube-state-metrics", phase="Running"} > 0))
所以我认为我必须做类似的事情(再次使用
group_left
),但我太迟钝了,无法真正做到这一点:-/
呃,看来问这个问题真的很有帮助!这可以是答案吗?
sum(
rate(
node_cpu_seconds_total{mode!="idle"}[5m]
)
*
on(instance) group_left(role) label_replace(
kube_node_role{role="worker"}, "instance", "$1", "node", "(.+)"
)
) by (instance)
/
count(
node_cpu_seconds_total{mode="idle"}
*
on(instance) group_left(role) label_replace(
kube_node_role{role="worker"}, "instance", "$1", "node", "(.+)"
)
) by (instance)
*
100
也欢迎对此查询格式化的任何改进。