PromQL 函數 rate()
和 irate()
都是用于計算時間序列的變化率的函數,但有一些區別。
rate()
函數計算的是在指定時間范圍內的平均變化速率。它將時間范圍內的樣本值相減,然后除以時間范圍的持續時間。這意味著它會考慮時間范圍內的所有樣本值,并計算它們的平均變化率。例如,如果一個時間序列在過去 5 分鐘內的樣本值分別為 10、20、30,則 rate()
函數將計算 (30 - 10) / 5 = 4 的變化率。
irate()
函數計算的是最近兩個樣本值之間的瞬時變化率。它不考慮時間范圍內的其他樣本值,只計算最近兩個樣本值之間的變化率。這意味著它對于較短時間窗口內的變化更加敏感。例如,如果一個時間序列在過去 5 分鐘內的樣本值分別為 10、20、30,則 irate()
函數將計算 (30 - 20) / (時間差) 的變化率。
因此,rate()
函數適用于計算長時間范圍內的平均變化率,而 irate()
函數適用于計算短時間窗口內的瞬時變化率。在實際應用中,可以根據需求選擇適合的函數來計算時間序列的變化率。