grafana如何解决step动态变化时可能出现range duration小于step
1、grafana中的step和resolution
grafana中的 “step”
grafana本身是没有提供step参数的,因为仪表盘根据查询数据区间以及仪表盘线条宽度等,对于不同查询,相同的step并不能很好的发挥作用,所以step是动态计算的
所以在Grafana中并没有直接提供step参数,而是这两个参数:min step和resolution
min step: min step故名思义设定的是step的最小值,设置方式如下:
resolution: 老版本是resolution参数,8.5以后都版本去掉了,改为了一组可以限制数据点的数量从而实现分辨率:
参考:https://github.com/grafana/grafana/issues/48081
新老版本设置resolution的不同方法:
-
老版本Resolution选项:则可以控制Grafana自身渲染的数据量。例如,如果Resolution的值为1/10,Grafana会将Prometeus返回的10个样本数据合并成一个点。因此Resolution越小可视化的精确性越高,反之,可视化的精度越低。
-
新版本:Max data points选项来控制绝对最大获取点。如果我们将最大值设置为 500,它只会影响以大于 500 像素宽度渲染的面板(例如,面板大小 1,000 将获取 1/2 点,面板大小 2,000 将获取 1/4)
如何查看实际发起访问的step:
如何修改参数以改变step:
新老版本的差别:
grafana重要内置变量:$__interval
场景:
rate()的range duration不能小于step,但是grafana并没有可以指定step的,那么把range duration给固定值的化在编辑图标的时候就会有问题,因为step是根据图表属性动态算出来的,就可能出现range duration小于step,导致数据异常
解决方法:
你可以使用Grafana提供的内置变量$__interval,它代表的Grafana就是计算出来的step的值。比如这样就能够将range duration和step保持一致了
更多内置变量:
https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables