如何仅针对计算(Worker)节点获取CPU使用率平均值
如何计算Kubernetes Worker节点的CPU使用率平均百分比
要仅获取Worker节点的CPU使用率平均百分比,核心是将CPU使用率的指标查询与Worker节点的角色标签关联起来,利用PromQL的group_left完成标签匹配与过滤,具体实现如下:
方法一(基于instance标签匹配)
如果你的node_cpu_seconds_total指标的instance标签值与kube_node_role的node标签值一致(这是node_exporter的默认配置),可以使用以下查询:
sum by (instance) (rate(node_cpu_seconds_total{mode!="idle"}[5m])) / count by (instance) (node_cpu_seconds_total{mode="idle"}) * 100 * on(instance) group_left(role) kube_node_role{role="worker"}
方法二(基于node标签匹配)
如果node_cpu_seconds_total带有node标签(部分环境中node_exporter会自动添加该标签),可以直接通过node标签关联:
sum by (node) (rate(node_cpu_seconds_total{mode!="idle"}[5m])) / count by (node) (node_cpu_seconds_total{mode="idle"}) * 100 * on(node) group_left(role) kube_node_role{role="worker"}
语句解释
sum by (instance/node) (rate(node_cpu_seconds_total{mode!="idle"}[5m])):按节点维度聚合,计算5分钟内非空闲CPU的总使用率count by (instance/node) (node_cpu_seconds_total{mode="idle"}):按节点维度统计CPU核心数(每个核心对应一条mode="idle"的时间序列)- 两者相除再乘以100,得到单节点的CPU使用率百分比
* on(instance/node) group_left(role) kube_node_role{role="worker"}:通过标签匹配只保留标记为worker角色的节点数据,过滤掉Master节点
内容的提问来源于stack exchange,提问作者jhutar
相关产品推荐
相关产品推荐

