prometheus函數介紹


一 函數介紹

gauge類型的數據  屬於隨機變化數值,並不像counter那樣 是 持續增長

1 increase()

increase 函數 在promethes中,是⽤來 針對Counter 這種持續增 長的數值,截取其中⼀段時間的增量 。 increase(node_cpu[1m])   =》 這樣 就獲取了 CPU總使⽤時間 在1分鍾內的增量,得到的是一個cpu在一分鍾內的增量,increase和rate很相似

rate(1m) 是取⼀段時間增量的平均每秒數量
increase(1m) 則是 取⼀段時間增量的總量 
舉例:


increase(node_network_receive_bytes[1m]) 取的是 1分鍾內的 增量總量 
rate(node_network_receive_bytes[1m]) 取的是 1分鍾內的增量  除以 60秒 每秒數量

2 sum()

sum( ) 就如其字⾯意思⼀樣 起到value 加合的作⽤,sum(   increase(node_cpu[1m])   ) 外⾯套⽤⼀個sum 即可把所有核數值加合,得到所有cpu在一分鍾之內的增量

用法:sum(rate(node_network_receive_bytes[1m]))

3 (instance)

這個函數 可以把 sum加合到⼀起的數值 按照指定的⼀個⽅式 進⾏⼀層的拆分 instance代表的是 機器名
例如:

sum(increase(node_cpu_seconds_total{mode="idle"}[1m]))by (instance)

4 利用上面的函數查看cpu使用率

idle代表是cpu空閑時間


(1-((sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance))/(sum(increase(node_cpu_seconds_total[1m])) by (instance)))) * 100 

sum(increase(node_cpu{mode="idle"}[1m])) by (instance)  =》 是空閑CPU時間 1分鍾的增量 

sum(increase(node_cpu_seconds_total[1m])) by (instance) 是全部CPU時間 1分 鍾增量 

5 rate 函數的使⽤

rate(.  ) 函數 是專門搭配counter類型數據使⽤的函數 它的功能 是按照設置⼀個時間段,取counter在這個時間段中 的 平均每秒的增量
例子:
rate(node_network_receive_bytes[1m])
就可以獲取到 在1分鍾時間內,平均每秒鍾的 增量

所以說 我們以后在使⽤任何counter數據類型的時候,永遠記 得 別的先不做 先給它加上⼀個 rate() 或者 increase()

6 topk()

定義:取前⼏位的最⾼值
用法:
Gauge類型的使⽤ topk(3,count_netstat_wait_connections)
Counter類型的使⽤ topk(3,rate(node_network_receive_bytes[20m]))

7 count()

定義: 把數值符合條件的 輸出數⽬進⾏加合
舉例:找出當前(或者歷史的)當TCP等待數⼤於200的 機器數量
count(count_netstat_wait_connections > 200)

二 prometheus命令⾏格式

1 精確匹配

命令⾏的查詢 在原始輸⼊的基礎上 先使⽤{} 進⾏第⼀步過濾 count_netstat_wait_connections{exported_instance="log"}

exported_instance  指明 是 那台被監控服務器  “log” 是⼀台 ⽇志服務器的機器名

2 模糊匹配

count_netstat_wait_connections{exported_instance=~"web.*"}

把所有 機器名中 帶有 web的 機器都顯⽰出來 
.* 屬於正則表達式
模糊匹配   =~
模糊不匹配  !~

3 數值過濾

標簽過濾之后  就是數值的過濾 ⽐如 我們只想找出 wait_connection數量 ⼤於200的  count_netstat_wait_connections{exported_instance=~"web.*"} > 200


免責聲明!

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



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