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

配置UTC时区后Grafana仍出现时间偏移问题求助

解决Grafana可视化MySQL UTC时间时的时区偏移问题

以下是几个针对性的解决步骤:

  • 修正MySQL数据源的时区配置
    在Grafana的MySQL数据源设置中,找到「高级」选项,在连接字符串末尾添加&serverTimezone=UTC(如果是第一个参数则用?serverTimezone=UTC)。这会强制MySQL驱动以UTC时区读取时间戳,避免隐式转换为本地时区。

  • 在SQL查询中显式指定UTC时区
    如果你的updated_at字段是TIMESTAMP类型(MySQL会自动转换该类型的时区),可以通过SQL函数强制输出UTC时间。修改后的查询示例:

    SELECT
      -- 显式将时间转换为UTC格式,确保Grafana识别为UTC时间
      CONVERT_TZ(energy_consumption.updated_at, @@session.time_zone, '+00:00') AS "time",
      device.nome AS "metric",
      energy_consumption.sensorData AS "value"
    FROM
      energy_consumption
    JOIN device ON device.idDevice = energy_consumption.idDevice
    ORDER BY
      energy_consumption.updated_at
    

    也可以用CAST(energy_consumption.updated_at AS DATETIME) AT TIME ZONE 'UTC'替代CONVERT_TZ,效果一致。另外建议把隐式关联改成显式JOIN,代码可读性更强。

  • 确认Grafana的全局和仪表盘时区设置

    1. 全局时区:打开Grafana的grafana.ini配置文件,找到[timezone]段落,设置default_timezone = UTC,保存后重启Grafana服务。
    2. 仪表盘时区:进入仪表盘编辑模式,点击顶部「设置」图标,在「时区」选项中选择「UTC」,不要使用「浏览器时区」选项。
  • 解决最近5分钟无数据的问题
    这个问题是因为Grafana错误地把偏移后的本地时区时间当作UTC时间查询,相当于查询了未来1小时的区间,自然没有数据。完成上面的时区修正后,Grafana会使用正确的UTC时间范围查询,该问题会自动消失。你可以通过查询检查器查看Grafana生成的时间参数,确认是否为正确的UTC区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:53:24