成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PromQL 查詢之 Rate 函數(shù)的使用

運維 系統(tǒng)運維
Rate用于計算變化率的最常見函數(shù)是 rate(),rate() 函數(shù)用于計算在指定時間范圍內(nèi)計數(shù)器每秒增加量的平均值。

[[428457]]

通常來說直接繪制一個原始的 Counter 類型的指標(biāo)數(shù)據(jù)用處不大,因為它們會一直增加,一般來說是不會去直接關(guān)心這個數(shù)值的,因為 Counter 一旦重置,總計數(shù)就沒有意義了,比如我們直接執(zhí)行下面的查詢語句:

  1. demo_api_request_duration_seconds_count{job="demo"

可以得到下圖所示的圖形:

可以看到所有的都是不斷增長的,一般來說我們更想要知道的是 Counter 指標(biāo)的變化率,PromQL 提供了不同的函數(shù)來計算變化率。

rate

用于計算變化率的最常見函數(shù)是 rate(),rate() 函數(shù)用于計算在指定時間范圍內(nèi)計數(shù)器每秒增加量的平均值。因為是計算一個時間范圍內(nèi)的平均值,所以我們需要在序列選擇器之后添加一個范圍選擇器。

例如我們要計算 demo_api_request_duration_seconds_count 在最近五分鐘內(nèi)的每秒平均變化率,則可以使用下面的查詢語句:

  1. rate(demo_api_request_duration_seconds_count[5m]) 

可以得到如下所示的圖形:

現(xiàn)在繪制的圖形看起來顯然更加有意義了,進行 rate 計算的時候是選擇指定時間范圍下的第一和最后一個樣本進行計算,下圖是表示瞬時計算的計算方式:

往往我們需要的是繪制一個圖形,那么就需要進行區(qū)間查詢,指定一個時間范圍內(nèi)進行多次計算,將結(jié)果串聯(lián)起來形成一個圖形: 

對于 rate() 和相關(guān)函數(shù)有幾個需要說明的:

  • 當(dāng)被抓取指標(biāo)進的程重啟時,Counter 指標(biāo)可能會重置為 0,但 rate() 函數(shù)會自動處理這個問題,它會假設(shè) Counter 指標(biāo)的值只要是減少了就認為是被重置了,然后它可以調(diào)整后續(xù)的樣本,例如,如果時間序列的值為[5,10,4,6],則將其視為[5,10,14,16]。
  • 變化率是從指定的時間范圍下包含的樣本進行計算的,需要注意的是這個時間窗口的邊界并不一定就是一個樣本數(shù)據(jù),可能會不完全對齊,所以,即使對于每次都是增加整數(shù)的 Counter,也可能計算結(jié)果是非整數(shù)。

另外我們需要注意當(dāng)把 rate() 與一個聚合運算符(例如 sum())或一個隨時間聚合的函數(shù)(任何以 _over_time 結(jié)尾的函數(shù))結(jié)合起來使用時,總是先取用 rate() 函數(shù),然后再進行聚合,否則,當(dāng)你的目標(biāo)重新啟動時,rate() 函數(shù)無法檢測到 Counter 的重置。

注意:rate() 函數(shù)需要在指定窗口下至少有兩個樣本才能計算輸出。一般來說,比較好的做法是選擇范圍窗口大小至少是抓取間隔的4倍,這樣即使在遇到窗口對齊或抓取故障時也有可以使用的樣本進行計算,例如,對于 1 分鐘的抓取間隔,你可以使用 4 分鐘的 Rate 計算,但是通常將其四舍五入為 5 分鐘。所以如果使用 query_range 區(qū)間查詢,例如在繪圖中,那么范圍應(yīng)該至少是步長的大小,否則會丟失一些數(shù)據(jù)。

irate

由于使用 rate 或者 increase 函數(shù)去計算樣本的平均增長速率,容易陷入長尾問題當(dāng)中,其無法反應(yīng)在時間窗口內(nèi)樣本數(shù)據(jù)的突發(fā)變化。

例如,對于主機而言在 2 分鐘的時間窗口內(nèi),可能在某一個由于訪問量或者其它問題導(dǎo)致 CPU 占用 100%的情況,但是通過計算在時間窗口內(nèi)的平均增長率卻無法反應(yīng)出該問題。

為了解決該問題,PromQL 提供了另外一個靈敏度更高的函數(shù)irate(v range-vector)。irate 同樣用于計算區(qū)間向量的計算率,但是其反應(yīng)出的是瞬時增長率。

irate 函數(shù)是通過區(qū)間向量中最后兩個樣本數(shù)據(jù)來計算區(qū)間向量的增長速率。這種方式可以避免在時間窗口范圍內(nèi)的長尾問題,并且體現(xiàn)出更好的靈敏度,通過 irate 函數(shù)繪制的圖標(biāo)能夠更好的反應(yīng)樣本數(shù)據(jù)的瞬時變化狀態(tài)。那既然是使用最后兩個點計算,那為什么還要指定類似于 [1m] 的時間范圍呢?這個 [1m] 不是用來計算的,irate 在計算的時候會最多向前在 [1m] 范圍內(nèi)找點,如果超過 [1m] 沒有找到數(shù)據(jù)點,這個點的計算就放棄了。

由于 rate() 提供了更平滑的結(jié)果,因此在長期趨勢分析或者告警中更推薦使用 rate 函數(shù),因為當(dāng)速率只出現(xiàn)一個短暫的峰值時,不應(yīng)該觸發(fā)該報警。

使用 irate() 函數(shù)上面的表達式會出現(xiàn)一些短暫下降的圖形:

除了計算每秒速率,你還可以使用 increase() 函數(shù)查詢指定時間范圍內(nèi)的總增量,它基本上相當(dāng)于速率乘以時間范圍選擇器中的秒數(shù):

  1. increase(demo_api_request_duration_seconds_count{job="demo"}[1h]) 

比如上面表達式的結(jié)果和使用 rate() 函數(shù)計算的結(jié)果整體圖形趨勢都是一樣的,只是 Y 軸的數(shù)據(jù)不一樣而已,一個表示數(shù)量,一個表示百分比。rate()、irate() 和 increase() 函數(shù)只能輸出非負值的結(jié)果,對于跟蹤一個可以上升或下降的值的指標(biāo)(如溫度、內(nèi)存或磁盤空間),可以使用 delta() 和 deriv() 函數(shù)來代替。

deriv() 函數(shù)可以計算一個區(qū)間向量中各個時間序列二階導(dǎo)數(shù),使用簡單線性回歸,deriv(v range-vector) 的參數(shù)是一個區(qū)間向量,返回一個瞬時向量,這個函數(shù)一般只用在 Gauge 類型的時間序列上。例如,要計算在 15 分鐘的窗口下,每秒鐘磁盤使用量上升或下降了多少:

還有另外一個 predict_linear() 函數(shù)可以預(yù)測一個 Gauge 類型的指標(biāo)在未來指定一段時間內(nèi)的值,例如我們可以根據(jù)過去 15 分鐘的變化情況,來預(yù)測一個小時后的磁盤使用量是多少,可以用如下所示的表達式來查詢:

  1. predict_linear(demo_disk_usage_bytes{job="demo"}[15m], 3600) 

這個函數(shù)可以用于報警,告訴我們磁盤是否會在幾個小時候內(nèi)用完。

 

責(zé)任編輯:姜華 來源: k8s技術(shù)圈
相關(guān)推薦

2023-11-26 23:59:16

PromQL算術(shù)運算符

2025-01-08 15:44:04

2010-11-25 11:57:42

MySQL查詢行號

2010-10-25 10:55:11

Oracle函數(shù)索引

2011-03-03 10:45:34

PureftpdMYSQL

2020-04-22 09:00:00

REST API參數(shù)化前端

2021-07-15 16:41:21

Swift查詢函數(shù)

2009-05-19 14:34:52

Oraclehash優(yōu)化

2010-09-16 09:35:17

SQL函數(shù)

2015-10-28 17:11:50

2010-04-28 16:45:27

Oracle Inst

2024-04-08 11:52:08

PromQL技術(shù)監(jiān)控

2010-09-10 14:05:12

SQL聚合函數(shù)

2010-10-25 17:08:34

oracle聚合函數(shù)

2010-09-24 19:28:12

SQL CHARIND

2010-10-09 16:18:43

MYSQL IFNUL

2010-10-11 15:08:44

MySQL conca

2010-10-11 16:23:35

MYSQL BENCH

2022-03-24 08:04:50

Kubernetes資源限制

2010-10-25 10:20:33

ORACLE函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 夜夜骑av | 国产一区二区三区四区五区加勒比 | 一区二区福利视频 | 亚洲三级av | 久久久成人免费一区二区 | 欧美不卡一区二区 | 久久国产精品精品 | 成年免费大片黄在线观看一级 | 天天操 夜夜操 | 亚洲九色 | 成人免费一区二区三区视频网站 | 久久亚洲精品久久国产一区二区 | 日韩在线免费视频 | 日本国产一区二区 | 中文字幕日韩欧美一区二区三区 | 毛片网站在线观看 | 欧美日韩精品中文字幕 | 在线伊人网 | 国产精品国产三级国产aⅴ浪潮 | 中午字幕在线观看 | 日韩av在线播| 国产女人叫床高潮大片免费 | 亚洲黄色av| 亚洲www| 国产一区二区久久 | 精品国产一区二区三区久久影院 | 国产一区二区在线视频 | 青青久久 | 日韩色图视频 | av一区二区三区四区 | 久久国产一区二区三区 | 国产成人综合在线 | 精品国产一区久久 | 激情一区 | 日本一区二区视频 | 日本a∨精品中文字幕在线 亚洲91视频 | 午夜电影日韩 | 欧美精品一区二区三区在线播放 | 日批av| 久久综合久 | 玖玖爱365|