Grafana--Step与Resolution
在 Grafana 中,Resolution(分辨率) 和 Step(步长) 是时间序列数据可视化中的两个关键概念,尤其在处理时间范围较大的数据时,它们的配置直接影响图表精度和性能。
本文案例中,grafana版本为v8.1.8。
1、Step
step 是指在查询中,从数据源查询数据的时间间隔粒度,它决定了数据采样的频率,直接影响原始数据的精度。
较小的step会返回更多数据点(精度高),但可能增加查询时间和资源消耗;较大的step则会提高查询速度,但会丢失一些精度,数据点变的稀疏。
如下,设置 step=30s ,此时,只会取两次原始数据
设置成变量
2、Resolution
Resolution 是指在数据渲染阶段,控制图表中实际显示的数据点数量,即是决定图表渲染时的数据密度的参数,目的是平衡显示精度与性能。
默认情况下,Grafana 根据图表宽度(像素)和时间范围动态计算分辨率: 分辨率 ≈ 时间范围 / 图表宽度(像素)
例:
若时间范围为 24 小时(86400 秒),图表宽度为 1200 像素,则分辨率为 86400 / 1200 = 72 秒/像素
渲染策略:Grafana 会将原始数据点按分辨率间隔合并(如每 72 秒合并为一个点),以减少渲染的数据量。
注意:Grafana 会根据图表的像素宽度,动态调整数据点密度。若原始数据点数量超过像素数,Grafana 会自动降采样,使数据点数量与像素数一致。无论是否手动设置 Resolution
,只要 原始数据点数量 > 像素数,Grafana 就会强制降采样。
例:查询时间范围:1 年(原始数据点:每分钟一个,共约 525,600 个),图表宽度:1000 像素,Grafana 将数据点降采样至约 1000 个(每个像素显示一个点)。
对原始数据的处理方式:
-
降采样(Downsampling):
-
Grafana 在渲染时会对查询返回的原始数据进行聚合(如平均值、最大值、最小值),合并到每个分辨率间隔内。
-
例如,若查询返回的原始数据步长(Step)为
10s
,而分辨率为60s
,则每 6 个原始点会被合并为 1 个显示点。
-
-
不修改原始数据:
-
Resolution 仅影响前端渲染,不会修改数据源中存储的原始数据,也不会影响查询时从数据源获取的原始数据粒度(由
Step
控制)。
-
3、Step与Resolution
维度 | Step | Resolution |
---|---|---|
作用阶段 | 数据查询阶段(后端) | 数据渲染阶段(前端) |
核心目标 | 控制原始数据查询精度 | 优化图表渲染性能 |
调整影响 | 影响查询结果的数据粒度 | 影响显示的数据点密度 |
自动行为 | 可能依赖数据源默认值 | 根据时间范围和图表宽度动态调整 |
关联使用
-
当
Step < Resolution
:
查询返回的数据点比图表显示需要的更密集,Grafana 会进一步降采样,可能导致细节丢失。 -
当
Step > Resolution
:
查询返回的数据点比图表需要的更稀疏,图表可能通过插值填充,但精度下降。
-
理想情况:
Step
(查询步长)应略小于或等于Resolution
(渲染间隔),以确保原始数据密度足够支撑显示精度。
Step 与 Resolution 的间接关联
-
step
:控制从数据源查询的时间间隔(如step=1m
表示每分钟返回一个数据点)。-
数据点密度 = 时间范围 / step。例如:
-
时间范围 1 小时(3600 秒) +
step=1m
→ 60 个数据点。
-
-
-
Resolution
:控制图表显示时的降采样比例(如1/10
表示每 10 个原始点聚合为 1 个显示点)。-
显示密度 = 原始数据点数量 × Resolution。例如:
-
原始 60 个数据点 +
Resolution=1/10
→ 6 个显示点。
-
-
两者通过 数据点数量 关联:step
决定原始数据密度,Resolution
决定最终显示的聚合程度。
例:
-
时间范围:1 小时(3600 秒)。
-
step=1m
→ 原始数据点数量 = 60 个。 -
Resolution=1/10
→ 预期显示点数量 = 60 × 1/10 = 6 个。
但实际行为还受 图表像素数 影响:
-
若图表宽度为 1000 像素:
-
Grafana 会自动降采样到 1000 点,但由于
Resolution=1/10
已限制显示点为 6 个,最终显示 6 个点(优先遵循Resolution
)。
-
-
若图表宽度为 5 像素:
-
即使
Resolution=1/10
允许显示 6 个点,Grafana 会强制降采样到 5 个点(遵循像素限制)。
-
此时:
-
原始数据点密度(由
step
决定) 高于显示需求(由Resolution
或像素数决定)。 -
Grafana 的降采样过程:
-
从数据源获取高密度数据(因
step
较小)。 -
根据
Resolution
或像素数进一步聚合,可能导致细节丢失(如短期波动被平滑)。
-
如何避免过度降采样
-
匹配
step
与显示需求:-
长期趋势分析:增大
step
(如1h
),减少原始数据量。 -
短期精细分析:减小
step
(如5s
)并设置Resolution=1/1
。
-
-
优先保证数据源精度:
-
若需保留关键细节(如告警阈值),
step
应小于波动周期。
-
-
动态调整
Resolution
:-
时间范围变化时,手动或通过变量调整
Resolution
,避免固定值导致不合理降采样。
-
4、查找/设置图表宽度
查找
- 鼠标右键点击图表,选择“检查”
- 找到图表对应的 <div> 或 <canvas> 元素,找到
width
属性的值
设置
- 坐标轴(Axis)配置
- Width选项可以选择设置坐标轴(Label)的占比宽度