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
维度StepResolution
作用阶段 数据查询阶段(后端) 数据渲染阶段(前端)
核心目标 控制原始数据查询精度 优化图表渲染性能
调整影响 影响查询结果的数据粒度 影响显示的数据点密度
自动行为 可能依赖数据源默认值 根据时间范围和图表宽度动态调整

 

关联使用

  • 当 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 的降采样过程

    1. 从数据源获取高密度数据(因 step 较小)。

    2. 根据 Resolution 或像素数进一步聚合,可能导致细节丢失(如短期波动被平滑)。

 

如何避免过度降采样

  1. 匹配 step 与显示需求

    • 长期趋势分析:增大 step(如 1h),减少原始数据量。

    • 短期精细分析:减小 step(如 5s)并设置 Resolution=1/1

  2. 优先保证数据源精度

    • 若需保留关键细节(如告警阈值),step 应小于波动周期。

  3. 动态调整 Resolution

    • 时间范围变化时,手动或通过变量调整 Resolution,避免固定值导致不合理降采样。

 

4、查找/设置图表宽度

查找

  • 鼠标右键点击图表,选择“检查”
  • 找到图表对应的 <div> 或 <canvas> 元素,找到 width 属性的值

 

设置

  • 坐标轴(Axis)配置
  • Width选项可以选择设置坐标轴(Label)的占比宽度

 

posted @ 2023-04-04 14:21  心恩惠动  阅读(1737)  评论(0)    收藏  举报