簡體   English   中英

PromQL的rate()function的理解

[英]Understanding of rate() function of PromQL

我瀏覽了 PromQL 文檔,發現 rate 有點令人困惑。 然后我嘗試了來自 Prometheus 查詢儀表板的一個查詢,發現下面給出的結果

Time Count increase  rate(count[1m])
15s  4381  0          0
30s  4381  0          0
45s  4381  0          0
1m   4381  0          0

15s  4381  0          0
30s  4402  21         0.700023
45s  4402  0          0.700023
2m   4423  21         0.7

15s  4423  0          0.7
30s  4440  17         0.56666666
45s  4440  0          0.56666666
3m   4456  16         0.53333333

我從儀表板獲得的最后一列值,但我無法理解這是如何計算的。

分辨率 - 15s

scrape_interval:30s

Prometheus 通過以下方式計算時間戳t處的rate(count[d])

  1. 它獲取每個時間序列的原始樣本, count名稱在時間范圍內(td... t] 。請注意, td時間戳不包含在范圍內,而t時間戳包含在范圍內。例如,在計算rate(count[1m])rate(count[1m])在時間戳t=2m時選擇了以下原始樣本: 4423 @ 2m, 4402 @ 1m45s, 4402 @ 1m30s, 4381 @ 1m15s 。請注意, 4381 @ 1m樣本不包括在計算中。
  2. 然后它計算每個時間序列在選定時間范圍內的最后一個樣本和第一個樣本之間的差異,名稱為count Prometheus 可以檢測並刪除選定時間范圍內的時間序列重置為零,但為了清楚起見,我們暫時跳過這一點。 在上面的例子中,它計算4423 @ 2m - 4381 @ 1m15s = 42
  3. 然后它將步驟 2 的結果除以每個時間序列的持續時間d (以秒為單位),名稱為count 在上面的例子中,它計算42 / 1m = 42 / 60s = 0.7

rate(count[1m]) @ 2m - 0.700023的實際結果與計算結果不同 - 0.7 - 因為外推,如果第一個和/或最后一個原始樣本的時間戳,則可以將其應用於在步驟 2 計算的結果距離選定的時間范圍邊界太遠。 在本期中查看有關外推的更多詳細信息。

另請注意,在計算rate()increase()時,Prometheus 錯過了時間范圍[1m... 1m15s]上可能的計數器增加。 在此處此處查看有關此問題的更多詳細信息。

“增加” function 計算一些計數器增長了多少,“速率” function 計算每秒度量增長的數量。

分析您的數據我認為您使用 [30s] 表示“增加”,使用 [1m] 表示“速率”(正確使用的值對結果很重要)。

基本上,例如,在時間 2m 我們有:

increase[30s] = count at 2m - count at 1.5m = 4423 - 4402 = 21
rate[1m]      = (count at 2m - count at 1m) / 60 = (4423 - 4381) / 60 = 0.7

Prometheus 文檔: 增加速率

我找到了這個:

rate = Count_{now} - Count_{now-30s} / 30s

Time Count increase  rate(count[1m])

15s  4381  0          0
30s  4381  0          0
45s  4381  0          0
1m   4381  0          0

15s  4381  0          0
30s  4402  21         = [4402-4381]/30s = 0.7
45s  4402  0          = [4402-4381]/30s = 0.7
2m   4423  21         = [4423-4402]/30s = 0.700023

15s  4423  0          = [4423-4402]/30s = 0.7
30s  4440  17         = [4440-4423]/30s = 0.56666666
45s  4440  0          = [4440-4423]/30s = 0.56666666
3m   4456  16         = [4456-4440]/30s = 0.53333333

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM