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

如何在Grafana时序图中按YYYY-MM正确分组?问题求助

解决Grafana时序图按月分组的异常问题

问题原因分析

  1. __timeGroup('1M')的分组逻辑缺陷:Grafana默认的__timeGroup函数是按固定天数间隔(而非自然月)分组,比如从epoch时间开始每30/31天划分一个区间,导致数据点时间不是每月第一天。
  2. 异常10月数据点的由来:由于固定间隔的分组起始点偏移,2022-11-01的记录被划入了以2022-10-19为起始的间隔组,因此出现了无对应数据的月份分组点。

修正后的查询语句

方案一:用DATE_TRUNC强制按自然月分组(推荐)

直接通过数据库日期截断函数,将DischargeDate对齐到当月第一天,再适配Grafana的时间格式:

SELECT
  $__time(DATE_TRUNC('month', DischargeDate)) as time,
  AVG(Los) AS Average_LOS
FROM
  $hospital_table.ca_prediction_stats AS stats
WHERE
  $__timeFilter(DischargeDate)
GROUP BY
  DATE_TRUNC('month', DischargeDate)
ORDER BY
  1;

方案二:用__timeGroupAlias的自然月对齐参数

利用Grafana函数的扩展参数,指定按自然月起始点对齐分组:

SELECT
  $__timeGroupAlias(DischargeDate, '1M', 0, 'start') as time,
  AVG(Los) AS Average_LOS
FROM
  $hospital_table.ca_prediction_stats AS stats
WHERE
  $__timeFilter(DischargeDate)
GROUP BY
  1
ORDER BY
  1;

关键说明

  • DATE_TRUNC('month', DischargeDate):将任意日期截断到当月第一天的0点,确保分组严格对应自然月范围。
  • $__time():将数据库日期格式转换为Grafana时序图兼容的时间戳,避免图表解析异常。
  • 时区一致性:检查Grafana偏好设置(Configuration > Preferences)与数据库时区是否一致,否则可能出现日期显示偏移。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:12:05