如何仅获取计算节点的节点指标平均值

问题描述 投票:0回答:1

我想获得 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
),但我太迟钝了,无法真正做到这一点:-/

kubernetes openshift prometheus monitoring promql
1个回答
0
投票

呃,看来问这个问题真的很有帮助!这可以是答案吗?

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

也欢迎对此查询格式化的任何改进。

© www.soinside.com 2019 - 2024. All rights reserved.