Grafana--Min step与Resolution

发布时间 2023-04-04 14:26:54作者: 心恩惠动

问题:

今天在统计机房请求量的时候,发现时间选择12 hours时还是正常的,但是选择24 hours时就有一些线条出不来,数据也有缺失,如下:

12 hours

 

24 hours

 

问了同事,说是数据量太多,导致线条失真,可以改大步长(step),然后去百度了下step,没看懂... 

先记录下现象,后面再研究吧

 

原因:

百度到的:

当查询到的样本数据量非常大时可以导致Grafana渲染图标时出现一些性能问题,通过Min Step可以控制Prometheus查询数据时的最小步长(Step),从而减少从Prometheus返回的数据量。
Resolution选项,则可以控制Grafana自身渲染的数据量。例如,如果Resolution的值为1/10,Grafana会将Prometeus返回的10个样本数据合并成一个点。因此Resolution越小可视化的精确性越高,反之,可视化的精度越低。

 

解析:

简单来说,这个step就是采样原始数据的间隔,也是展示图形两点之间的间隔时长,比如我的原始数据是15秒一个点,所以默认的min step=15,此时图形展示里的每一点就是我的原始数据值

 

 

 

当选择的时间跨度大时,数据点就会非常多,容易出现查询超时或者图形失真现象

此时就得加大步长,这样采集的数据就会减少,如下图,同样是展示60s内的数据,step=30时,只需要取两次原始数据,虽然会失去精度,但获得了性能的提升

 

此时点与点之间的间隔为30s

 

 

 

Resolution:

Resolution选项,则可以控制Grafana自身渲染的数据量。例如,如果Resolution的值为1/10,Grafana会将Prometeus返回的10个样本数据合并成一个点。因此Resolution越小可视化的精确性越高,反之,可视化的精度越低。

 
其实跟step差不多的用途,只不过step是查询原始数据的间隔,而Resolution是将查询返回的结果进行合并,具体如何合并,还不清楚,看线条无太大的变化,不过这也会影响展示图形的点间隔
如下,因为我的原数据是15s一个点,一个点就相当于一个样本,1/2即两个点合并,故图形点间隔是30s,以此类推

 

 

同时使用Min step 与 Resolution

当 Min step 时间 < Resolution 时间时,Resolution生效,step也会随着改变

 

 

当Min step 时间 > Resolution 时间时,step生效

 

 

综述

查询时间跨度大,数据量多,图形就较容易出现问题,如果优化集群性能很难的话,可以加大步长时间,丢失一些查询精度,来保证查询性能