prometheus告警函數


PromQL基礎

 

   
http_request_total{} 瞬時向量表達式,選擇當前最新的數據
http_request_total{}[5m] 區間向量表達式,選擇以當前時間為基准,5分鍾內的數據

http_request_total{} offset 5m

http_request_total{}[1d] offset 1d

分鍾前的瞬時樣本數據

昨天一天的區間內的樣本數據

PromQL聚合操作 

 

   
sum () by (cluster_name)  每個結果里的value值的求和,單位沒限制,例如請求總時間
topk(3,count_netstat_wait_connections)

 前n條時序   進行瞬時報警,不是為了觀察曲線圖

bottomk() 后n條時序
quantile(0.5, http_requests_total) 當φ為0.5時,即表示找到當前樣本數據中的中位數
min max avg  最小 最大 平均
count() 每條結果計數,單位次數
count_values() 對value進行計數
   

PromQL 內置函數

 
rate(5m)

取一段時間增量的平均每秒數量,  5m內總增量/5m

適合緩慢變化的計數器(counter)

irate(5m)

指定時間范圍內的最近兩個數據點來算速率

適合快速變化的計數器(counter)

increase(5m)

取一段時間增量的總量,   5m內總增量

predict_linear(node_filesystem_free{job= "node"}[1h], 4 * 3600)  適合 gauges,對數據的變化趨勢進行預測

 by 與without(標簽名)

 

avg without(cpu)  ( rate  (node_cpu_seconds_total{mode="idle"}[5m]) )

 without用於從計算結果中移除列舉的標簽,而保留其它標簽。by則正好相反,結果向量中只保留列出的標簽,其余標簽

則移除。通過without和by可以按照樣本的問題對數據進行聚合。

without不按cpu標簽分組,然后計算平均值。

 ceil(node_load5{instance="192.168.1.75:9100"})  四舍五入
 day_of_month()  返回被給定 UTC 時間所在月的第幾天
 clamp_max(node_load5{instance="192.168.1.75:9100"}, 2  輸入一個瞬時向量和最大值,樣本數據值若大於 max,則改為 max,否則不變
 changes(node_load5{instance="192.168.1.75:9100"}[1m])

 輸入一個區間向量, 返回這個區間向量內每個樣本數據值變化的次數(瞬時向量)

如果樣本數據值沒有發生變化,則返回結果為 1
 delta(cpu_temp_celsius{host="zeus"}[2h])

 它計算一個區間向量 v 的第一個元素和最后一個元素之間的差值

用在 Gauge 類型的時間序列上

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM