You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写PromQL查询统计K8s集群不同CPU内存配置的节点数量

统计Kubernetes节点CPU内存组合配置数量的PromQL解法

核心思路

  • 分别提取CPU、内存维度的节点可分配资源指标,将资源值转换为对应标签
  • 按节点名称关联两类指标,合并同一节点的CPU、内存标签
  • 按CPU、内存组合分组统计节点数量

可用查询语句

count by (cpu, memory) (
  # 提取CPU指标值为cpu标签
  label_replace(
    kube_node_status_allocatable{resource="cpu", unit="core"},
    "cpu", "$1", "value", "(.*)"
  )
  # 按node标签关联内存指标,合并memory标签
  * on (node) group_left(memory)
  # 提取内存指标值为memory标签
  label_replace(
    kube_node_status_allocatable{resource="memory", unit="gb"},
    "memory", "$1", "value", "(.*)"
  )
)

结果说明

针对你提供的样本数据,上述查询的输出和你期望的格式完全匹配:

{cpu="21", memory="64"} 2
{cpu="61", memory="128"} 3

注意事项

如果你的kube_node_status_allocatable内存指标默认返回单位为字节,需要先做单位转换再提取标签,修改内存侧的处理逻辑即可:

label_replace(
  kube_node_status_allocatable{resource="memory"} / 1073741824,
  "memory", "$1", "value", "(.*)"
)

内容的提问来源于stack exchange,提问作者goyalankit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:57:00