Grafana 里的 "Instant" 复选框有什么作用?
Grafana 面板的 Instant 开关把 PromQL 查询从"区间查询"切换为"即时查询"——在单个评估时刻求值,通常取所选范围的结束时刻,可返回多条序列。适合数字面板/表格;展示随时间变化的趋势通常使用 Range。本文讲清原理与误用后果。
勾选 Instant 后,Grafana 只向 Prometheus 发"即时查询"(在单个评估时刻求值,通常是所选时间范围的结束时刻),时间范围仍决定该时刻及$__range等变量;不勾选则是区间查询,返回一段时间内的时间序列用于画曲线。
两种查询的本质区别
| 区间查询(Range) | 即时查询(Instant) | |
|---|---|---|
| 返回 | 时间范围内一串数据点 | 单个评估时刻的结果,可有多条序列 |
| 适用面板 | Time series 趋势图 | Stat 数字、Gauge、Table |
| 性能 | 随范围变大变重 | 开销依表达式、基数与回看窗口,不保证恒定 |
什么时候勾?
- Stat 数字面板(当前 QPS、当前在线数)→ 勾上,快且准;
- 表格展示最新状态 → 勾上;
- 趋势曲线图 → 通常选Range;Instant只提供一次求值,展示行为取决于面板/转换,不会必然自动复制成平线。
常见症状
图表缺少趋势时检查查询模式;Stat与曲线末端不一致还可能来自reducer、最后非空值选择、step对齐和评估时间,不能保证切换Instant就一致。
常见问题(FAQ)
Q:Instant 查询里的 rate(http_requests_total[5m]) 还有意义吗? 有——取的是选定评估时刻向前按5分钟窗口算出的速率值,Stat 面板常用这种写法。
Q:Legend 里的 {{instance}} 在 Instant 模式下还有效吗? 有效,标签插值与查询模式无关。