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

如何基于带预定义分桶的SQL查询配置Grafana热力图?

解决Grafana热力图分桶计数可视化问题

调整SQL查询语句

你当前的SQL存在两个关键问题:一是SELECT里的updated是原始未对齐的时间,和GROUP BY的时间桶逻辑不匹配;二是COUNT(*)没有明确别名,可能导致Grafana无法正确识别数值字段。调整后的SQL如下:

SELECT
  -- 将时间对齐到15分钟桶的起始时间,确保和分组逻辑一致
  FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(updated)/(15 * 60)) * 15 * 60) AS time_bucket,
  CASE 
    WHEN score > 0 AND score < 10 THEN 0
    ELSE 1
  END as bucket,
  COUNT(*) AS count  -- 给计数结果起明确别名
FROM table
WHERE $__timeFilter(updated)
GROUP BY FLOOR(UNIX_TIMESTAMP(updated)/(15 * 60)), bucket

配置Grafana热力图面板

  1. 确认查询字段映射

    • 在Grafana查询编辑器中,将time_bucket字段标记为时间字段(点击字段旁的时钟图标)。
    • 确保bucket被识别为数值型字段,count被识别为数值型字段。
  2. 调整热力图显示设置

    • 进入面板「可视化」选项卡,选择「热力图」类型。
    • 在「轴」配置区域:
      • X轴选择time_bucket作为时间轴,设置时间间隔为15分钟。
      • Y轴选择bucket字段,让两个分桶(0和1)作为Y轴的两个刻度。
    • 在「数据」配置区域,将「值字段」设置为count,让热力图用这个计数填充单元格颜色深浅。
    • 关闭不需要的图例或额外显示项,只保留分桶与计数的对应关系。
  3. 验证数据模式

    • 检查面板的「数据模式」是否设置为「时间序列到热力图」,确保Grafana正确将每个(时间桶, 分桶)的组合映射为热力图单元格,用count值表示热度。

排查要点

  • 如果热力图仍显示异常,先查看「表格视图」确认返回数据是否符合预期:每个时间桶对应两个分桶的计数,无缺失或重复行。
  • 确保bucket字段的取值只有0和1,避免意外值干扰Y轴显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:10:05