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

Grafana热力图无法渲染:“no heatmap fields found”问题排查求助

Grafana热力图"no heatmap fields found"问题解决(游戏引擎性能数据场景)

核心原因

表格能正常显示是因为它直接读取原始行数据,但热力图需要聚合后的二维分桶数据(X轴分桶值、Y轴类别、对应统计数值),你的原始查询没有输出符合要求的数据格式。

解决步骤

1. 调整PostgreSQL查询语句

修改查询,生成热力图所需的x(分桶后的frame_time)、y(build_version)、value(百分比)字段:

WITH raw_buckets AS (
  SELECT
    build_version,
    -- 按10ms步长分桶,生成X轴的桶起始值
    FLOOR(frame_time / 10) * 10 AS frame_time_bucket
  FROM your_game_performance_table
  -- 关联版本变量,假设变量名为selected_builds
  WHERE build_version = ANY($selected_builds)
),
bucket_counts AS (
  SELECT
    build_version,
    frame_time_bucket,
    COUNT(*) AS bucket_total
  FROM raw_buckets
  GROUP BY build_version, frame_time_bucket
),
version_totals AS (
  SELECT
    build_version,
    SUM(bucket_total) AS version_total_samples
  FROM bucket_counts
  GROUP BY build_version
)
SELECT
  build_version AS "y",
  frame_time_bucket AS "x",
  -- 计算当前桶占版本总样本的百分比,保留两位小数
  ROUND((bucket_total::FLOAT / version_total_samples) * 100, 2) AS "value"
FROM bucket_counts
JOIN version_totals USING(build_version)
ORDER BY build_version, frame_time_bucket;

替换your_game_performance_table为你的实际表名,$selected_builds为你创建的版本变量名。

2. 配置Grafana字段映射

编辑热力图面板,切换到Fields标签页:

  • 找到x字段:设置类型为Number,在「Standard options」中标记为X轴
  • 找到y字段:设置类型为String,标记为Y轴
  • 找到value字段:设置类型为Number,标记为Value(作为颜色映射的依据)

3. 调整热力图面板设置

切换到Panel标签页:

  • X轴设置:模式选择「已分桶(Bucketed)」,字段选x,单位设为ms
  • Y轴设置:模式选择「类别(Categories)」,字段选y
  • 颜色设置:选择value作为数据字段,调整颜色渐变范围(比如0-100%),匹配百分比分布的视觉需求

常见排查点

  • 确保查询返回的每个(y, x)组合只有一行数据,避免重复聚合导致的异常
  • 如果版本变量是多选类型,用= ANY($selected_builds)替代IN,适配PostgreSQL的数组变量格式
  • 检查frame_time字段是否为数值类型(如float/int),如果是字符串需要先转成数值再分桶

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:05:32