Grafana单面板双指标表格问题:CPU、内存平均值展示格式不符
解决Grafana表格面板展示服务器CPU/内存平均值的问题
我来帮你搞定这个Grafana表格展示的需求!要实现每个服务器一行、清晰显示Host、CPU_Avg、Mem_Avg的效果,咱们按以下步骤来操作:
1. 确保查询返回正确的结构化数据
首先得让你的数据源(比如Prometheus、InfluxDB)返回每个服务器对应一组CPU和内存平均值的结果,这里给你两个常见数据源的示例:
示例1:Prometheus数据源
如果用的是Node Exporter采集服务器指标,你可以用两个聚合查询,合并结果即可:
# CPU使用率平均值(按服务器分组) avg by (instance) (irate(node_cpu_seconds_total{mode!="idle"}[5m])) * 100 # 内存使用率平均值(按服务器分组) avg by (instance) (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
注意:如果你的服务器标识标签不是
instance,而是hostname或自定义标签,把avg by (instance)改成对应的标签名即可。
示例2:InfluxDB数据源
如果用InfluxDB,查询语句可以这样写:
SELECT mean("usage_idle") * 100 AS "CPU_Avg", mean("used_percent") AS "Mem_Avg" FROM "cpu"."usage_idle", "mem"."used_percent" WHERE $timeFilter GROUP BY "host"
不管用哪种数据源,核心是要让查询结果里每个服务器(Host)对应唯一一行,包含CPU和内存的平均值字段。
2. 配置表格面板的字段映射
这是你之前可能没做好的关键步骤:
- 新建或打开你的表格面板,切换到「Fields」选项卡
- 找到代表服务器名称的字段(比如Prometheus里的
instance),点击字段名旁的编辑图标,把「Name」改成Host - 找到CPU平均值的字段,重命名为
CPU_Avg,然后在「Format」里选择「Percent」或「Number」,设置合适的小数位数(比如1位) - 同样处理内存平均值的字段,重命名为
Mem_Avg,调整对应的数据格式
3. 调整表格显示选项
切换到「Options」选项卡,做以下设置:
- 确保「Show header」开启,表头会显示你设置的
Host、CPU_Avg、Mem_Avg - 关闭「Group by」相关设置(如果有的话),避免服务器被分组显示
- 可以把「Column width」设为「Auto」或手动调整宽度,让排版更美观
常见问题排查
- 如果同一个服务器出现多行:检查查询是否返回了多个时间点的数据,确保用
avg/mean这类聚合函数只保留每个服务器的一个平均值;或者在面板的「Query」选项卡,把「Format as」设置为Table而非Time series - 如果字段不匹配:确认查询返回的标签/字段名和你在「Fields」里映射的一致,比如不要把
hostname当成instance来处理
这样配置完成后,你的表格面板就会完美显示成你想要的格式啦!
内容的提问来源于stack exchange,提问作者Madhanika
相关产品推荐
相关产品推荐

