在Grafana中获取Prometheus的Pod内存指标表格视图
在Grafana中用Prometheus生成Pod内存指标表格视图的方法
所需PromQL语句
先补全适配全Pod场景的三个核心指标查询(移除固定Pod过滤条件):
- 已用内存(Consumed memory):按Pod聚合所有容器的工作集内存,转换为MB
sum(container_memory_working_set_bytes{container!="", image!=""} / 1000000) by (pod) - 内存请求值(Requested memory):按Pod聚合所有容器的内存请求值,转换为MB
sum(kube_pod_container_resource_requests{resource="memory"} / 1000000) by (pod) - 内存限制值(Memory limit):按Pod取容器内存限制的最大值(单容器Pod等同于总限制),转换为MB;如需统计Pod总限制,可将
max替换为summax(kube_pod_container_resource_limits{resource="memory"} / 1000000) by (pod)
Grafana面板配置步骤
- 新建Table面板:创建新面板时选择
Table作为可视化类型。 - 添加指标查询:进入
Metrics标签页,依次添加上述三个PromQL查询,分别设置别名:- 第一个查询别名设为
Consumed memory - 第二个设为
Requested memory - 第三个设为
Memory limit
- 第一个查询别名设为
- 合并查询结果:进入
Transform标签页,添加Join by field转换规则,选择pod作为关联字段,将三个查询的结果合并为单张表格。 - 调整列显示:
- 进入
Panel options标签页,在Column styles中将pod列的显示名称改为POD - 给数值列设置单位:选择对应列,将
Unit设为Custom并添加后缀MB;若需要自动转换为GB(如示例中的1GB),可将PromQL中的除数改为1073741824(1GB=1024³字节),或在Grafana单位选项中选择bytes让系统自动转换。
- 进入
- 优化样式:按需调整表格排序规则,隐藏多余字段(如已用内存查询若保留
by (pod, node),可在转换环节移除node列)。
注意事项
- 确保Prometheus已采集
kube-state-metrics(提供kube_pod_container_resource_*类指标)和cadvisor(提供container_memory_working_set_bytes指标)。 - 若部分Pod无请求/限制值,表格会显示空值,可通过在PromQL末尾追加
or vector(0)添加默认值处理。
内容的提问来源于stack exchange,提问作者Tjekkles
相关产品推荐
相关产品推荐

