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

Grafana表格可视化问题:无法将所有容器合并至同一列

解决Grafana容器资源表格合并列问题

问题场景

期望创建如下格式的容器资源统计表格:

Container   CPU Usage (%)   Memory Usage (GB)    Disk Reads (MB)  Network In (KB/s)
cadvisor          15.5                 1.2                  10            200
nginx-container   20.3                 0.8                  15            500

但当前配置生成的表格会将不同容器拆分为独立列,使用的PromQL查询如下:

label_replace(rate(container_cpu_usage_seconds_total{name=~"$container"}[$__range]), "resource", "cpu", "", "")
or
#Current memory usage in GB
label_replace(
    container_memory_usage_bytes{name=~"$container"} / (1024 * 1024 * 1024), "resource", "memory", "", "")
or
label_replace(
    container_fs_usage_bytes{name=~"$container"} / (1024 * 1024 * 1024), "resource", "disk", "", "")
or
label_replace(
  (
    rate(container_network_receive_bytes_total{name=~"$container"}[$__range]) * (1024 / 1024 / 1024)
    + rate(container_network_transmit_bytes_total{name=~"$container"}[$__range]) * (1024 / 1024 / 1024)
  ), "resource", "network", "", ""
)

已配置「按字段连接」「标签转字段」「正则重命名字段」转换,但未得到预期格式。

解决方案

步骤1:修正PromQL查询(对齐指标含义与单位)

调整查询,确保每个指标的含义、单位与预期表格匹配,同时保留name(容器名)和resource(资源类型)标签:

# CPU使用率(百分比)
label_replace(rate(container_cpu_usage_seconds_total{name=~"$container"}[$__range]) * 100, "resource", "cpu_usage", "", "")
or
# 内存使用量(GB)
label_replace(
    container_memory_usage_bytes{name=~"$container"} / (1024 * 1024 * 1024), 
    "resource", "memory_usage", "", ""
)
or
# 磁盘读取量(MB,基于最近时间段的速率)
label_replace(
    rate(container_fs_reads_bytes_total{name=~"$container"}[$__range]) / (1024 * 1024), 
    "resource", "disk_reads", "", ""
)
or
# 网络入流量(KB/s)
label_replace(
    rate(container_network_receive_bytes_total{name=~"$container"}[$__range]) / 1024, 
    "resource", "network_in", "", ""
)

说明:

  • CPU部分乘以100,将核心占比转为百分比数值
  • 磁盘指标替换为container_fs_reads_bytes_total的速率,匹配「磁盘读取量」需求
  • 网络指标仅保留入流量,并转换为KB/s单位

步骤2:调整Grafana转换规则

删除原有的「按字段连接」转换,按以下顺序添加转换:

  1. 标签转字段(Labels to Fields)

    • 配置:将name标签映射为字段Container,将resource标签映射为字段Resource,保留默认的Value字段
    • 作用:把每个时间序列的容器名、资源类型从标签提取为表格字段
  2. 透视(Pivot)

    • 配置:
      • 行字段:选择Container
      • 列字段:选择Resource
      • 值字段:选择Value
      • 聚合函数:选择Last(或根据需求选Avg)
    • 作用:将同一容器的不同资源指标从行转换为列,实现预期的表格结构
  3. 正则重命名字段(Rename by regex)

    • 配置:
      • 匹配模式:(cpu_usage|memory_usage|disk_reads|network_in)
      • 替换模式:对应中文名称,比如:
        • cpu_usage → CPU Usage (%)
        • memory_usage → Memory Usage (GB)
        • disk_reads → Disk Reads (MB)
        • network_in → Network In (KB/s)
    • 作用:将字段名改为更易读的格式,匹配期望表格的表头

步骤3:验证结果

完成配置后,表格将自动按容器名合并行,每个容器的CPU、内存、磁盘、网络指标作为列展示,与预期格式一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:23:20