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