Grafana v8.2.7
数据源:InfluxDB 1.x
| 单位 | 含义 | 示例 |
|---|---|---|
| s | 秒 | 10s 最近 10 秒 |
| m | 分钟 | 15m 最近 15 分钟 |
| h | 小时 | 6h 最近 6 小时 |
| d | 天 | 7d 最近 7 天 |
| w | 周 | 2w 最近 2 周 |
| M | 月(大写) | 1M 最近 1 个月 |
| y | 年 | 1y 最近 1 年 |
常用示例:
- now-5m # 最近5分钟
- now-1h # 最近1小时
- now-7d # 最近7天
- now-2w # 最近两周
- now-3M # 最近3个月
- now-1y # 最近1年
一、时间范围(对齐时间边界)
Grafana 支持用 /单位 把时间对齐到周期整点,常用做按天、按小时聚合统计。
语法
now-[时间]/[单位]
示例:
- now-24h/h # 往前24小时,对齐到最近小时整点
- now-7d/d # 最近7天,时间对齐到自然日零点
- now-1M/M # 最近1个月,对齐到当月1号零点
- now/w # 本周一零点开始 now/d # 今天0点开始
- now/h # 当前小时整点开始
今日全天(0 点到现在)
from: now/d to: now
昨天一整天
from: now-1d/d to: now/d
本周(周一 0 点至今)
from: now/w to: now
上周整周
from: now-1w/w to: now/w
本月 1 号至今
from: now/M to: now
二、时间偏移
适合查上周、上月、去年同期数据,格式: 时间点 +/- 偏移量
三、InfluxDB数据源时间的操作
InfluxQL:类 SQL 语法(你说的写 SQL 场景),内置模板变量 $timeFilter
$timeFilter本质:Grafana 根据面板时间范围自动生成的WHERE 时间条件字符串
示例:
time >= '2026-07-01T00:00:00Z' AND time <= '2026-07-01T08:00:00Z'
$timeFilter 是一段拼接好的完整 WHERE time >= xxx AND time <= xxx 字符串,没办法单独截取起始、结束时间做偏移。 想要分别控制开始、结束各自加减小时,必须用这两个内置变量:
$_from:面板选中时间范围的开始时间戳(毫秒)$_to:面板选中时间范围的结束时间戳(毫秒)
示例 3:起始 - 5h,结束 + 1h
WHERE time >= $_from - 5h AND time <= $_to + 1h
注意:
$_from/$_to是 UTC 毫秒时间戳,加减小时基于 UTC 运算输出13位毫秒;- 但 InfluxDB 1.x 内部
time默认是19 位纳秒时间戳。 - Grafana 面板时区是
browser本地时区,数据展示会自动转回浏览器时区(UTC+8);
| 变量 | 适用数据源 | 格式 | 能否时间加减 |
|---|---|---|---|
$__from / $__to |
InfluxDB1.x、2.x 通用 | 毫秒时间戳 | ✅ 支持直接 ±h |
$__timeFrom() / $__timeTo() |
仅 InfluxDB2.x 数据源 | 带括号宏 | ❌ 1.x 报错 |
$timeFrom / $timeTo |
需要开启全局插值(新版已移除配置) | 全局变量 | ❌ 容易参数缺失报错 |
因为 InfluxDB 1.x 内部 time 默认是 纳秒 :正确写法(必须加 ms 单位后缀)
示例:
sql
SELECT max("valueInt") FROM "prod_process_values"
WHERE "topic" = 'CT/OESL/AS/CHN/QDA/HCS/AutoClave/ERS202_Line/JobGoodsPartsCounter'
AND time >= ${__from}ms - 16h
AND time <= ${__to}ms
ORDER BY time DESC