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

Grafana中query step与Interval参数的区别及关联关系解答

Grafana 中$__interval与query step的生效逻辑答疑

根据Grafana官方定义:Interval是可用于按时间维度聚合或分组数据点的时间跨度参数。自动计算的Interval值基于图表宽度生成:当用户缩小视图拉宽时间范围时,Interval值会增大,对应更粗粒度的聚合;当用户放大视图缩窄时间范围时,Interval值会减小,对应更细粒度的聚合。Grafana自动计算的Interval值可作为模板查询变量使用,包含秒级单位变量$__interval与毫秒级单位变量$__interval_ms。

宽度-点数对应逻辑说明

自动计算Interval的核心规则确实和面板绘图区的像素宽度绑定:

  • Grafana默认按「1个像素对应1个可展示数据点」做初算,公式为初始Interval = 当前选中的总时间范围 / 面板绘图区有效像素宽度
  • 算出初始值后,Grafana会自动向上对齐到规整的时间粒度(比如算出142秒会对齐到3分钟,算出47分钟会对齐到1小时),避免出现反常识的奇怪聚合粒度
  • 按这个逻辑算出的Interval,刚好能保证返回的数据点数量匹配面板像素承载能力,不会因为点过密导致渲染卡顿,也不会因为点过疏导致折线失真

查询生效规则

不存在Interval强制覆盖query step的固定规则,哪个参数进入最终拉取数据的SQL/查询请求,完全取决于查询写法:

  • 如果你写SQL/查询语句时,主动引用了$__interval或$__interval_ms作为分组时间窗口(比如时序库常用的GROUP BY time($__interval)、time_bucket('$__interval', time)这类写法),那Grafana自动计算的Interval值会直接替换变量,拼接到最终发给数据源的查询请求里,这时候你在数据源配置页填的query step参数不会生效。
  • 如果你写查询时完全没引用任何Interval相关内置变量,那配置项里的query step才会作为固定查询步长传给数据源,决定后端返回数据点的时间间隔。

之前大家默认「query step决定返回点数」的认知,只适用于「查询硬编码步长、不引用内置Interval变量」的场景,这也是很多人觉得实际表现和认知不符的核心原因。

可视化层关联逻辑

不管后端返回的数据点是按自动Interval生成的,还是按固定query step生成的,前端绘图时都会做一层适配,不会直接原样全量绘制:

  • 如果返回数据点的密度高于面板像素承载能力(即实际步长 < 自动计算的Interval),前端会自动做前端降采样,按像素粒度聚合后再绘图,避免页面卡顿
  • 如果返回数据点的密度低于面板像素承载能力(即实际步长 > 自动计算的Interval),前端会直接用返回的原始点连线,不会自动插值补点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:18:21