Prometheus模板

應用類相關
1.監控應用是否可用

規則模板 :

up=${value} 

規則描述:

監測應用是否可用

參數說明:

value : 0表示宕機  1 表示可用
具體應用

groups:
- name: example   #報警規則組的名字
  rules:
  - alert: InstanceDown     #檢測job的狀態,持續1分鐘metrices不能訪問會發給altermanager進行報警
    expr: up == 0
    for: 1m    #持續時間 , 表示持續一分鐘獲取不到信息,則觸發報警
    labels:
      serverity: page   # 自定義標籤
    annotations:
      summary: "Instance {{ $labels.instance }} down"     # 自定義摘要 
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than                1 minutes."   # 自定義具體描述
本文理出的規則模板主要用於告警規則中的 “expr” 表達式使用。

labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名稱
job : 應用名

2.接口請求異常(job,method,uri)

規則模板 :

http_server_requests_seconds_count{exception!="None",job="${app}",method="${method}",uri="${uri}"}  > ${value} 

規則描述 :

請求接口的異常信息不爲空, 使用的時候需要動態傳入 app , method ,uri , value 這四個參數,然後設置規則。
參數詳解:
tex app : 應用名 method : POST 或 GET uri : 接口地址 value : 檢測指標 ,取值爲 int整數

labels參數說明
env : 數據源(通常用於區分環境)
exception : 異常信息
instance : 實例名
job : 應用名
method : POST 或GET
status :http請求狀態 200爲成功
uri : 接口地址

3.接口請求異常(job,method,uri),正則表達式(job,uri)

規則模板:

http_server_requests_seconds_count{exception!="None",job=~"${app}",method="${method}",uri=~"${uri}"}  > ${value} 

規則描述 :

請求接口的異常信息不爲空, 使用的時候需要動態傳入 app , method ,uri , value 這四個參數 ,這四個參數中Job和uri可以爲正則表達式,然後設置規則。

參數解釋:

app : 應用名 , 可使用正則表達式,例: .*MSG.* 
method : POST 或 GET ,需大寫
uri : 接口地址 , 可使用正則表達式
value : 檢測指標 ,取值爲 int整數
labels參數說明

env : 數據源(通常用於區分環境)
exception : 異常信息
instance : 實例名
job : 應用名
method : POST 或GET
status :http請求狀態 200爲成功
uri : 接口地址

4.應用CPU佔比

規則模板:

process_cpu_usage{job="${app}"} * 100 > ${value}

規則描述 :

監測應用使用的百分比 , 此處僅需傳入 app 名稱,就可以監測某個應用了

參數解釋 :

app : 應用名 
value : 檢測指標, 百分比
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名稱
job : 應用名

5.Hystrix接口調用熔斷次數監控

規則模板:

increase(hystrix_errors_total{job="${app}"}[${timeRange}]) > ${value}

規則描述 :

監測在指定的時間範圍內,應用調用其他接口被Hystrix熔斷的次數

參數解釋:

app : 應用名
timeRange : 指定時間範圍內的熔斷次數,取值單位可以爲  s (秒) , m(分鐘) , h(小時) ,d(天)
value : 熔斷次數,int整數
labels參數說明

env : 數據源(通常用於區分環境)
group : 我們通過fegin調用其他應用的應用名
instance : 實例名稱
job : 應用名
key : 具體的類名以及調用的方法 例: AcsClient#checkUserLogin(String)

6.Hystrix接口調用失敗次數監控

規則模板:

increase(hystrix_fallback_total{job="${app}"}[${timeRange}]) > ${value}

規則描述 :

監測在指定的時間範圍內,應用調用其他接口failback的次數

參數解釋:

app : 應用名
timeRange : 指定時間範圍內的熔斷次數,取值單位可以爲  s (秒) , m(分鐘) , h(小時) ,d(天)
value : failback次數,int整數
labels參數說明

env : 數據源(通常用於區分環境)
group : 我們通過fegin調用其他應用的應用名
instance : 實例名稱
job : 應用名
key : 具體的類名以及調用的方法 例: AcsClient#checkUserLogin(String)

7.JVM堆內存使用率監控

規則模板

sum(jvm_memory_used_bytes{job="${app}", instance="${instance}", area="heap"})*100/sum(jvm_memory_max_bytes{job="${app}",instance="${instance}", area="heap"}) >${value}

規則描述

監測JVM的堆內存的使用率, 前提是一定要指定應用名和實例名,否則prometheus不知道監控的那個JVM,這裏是以JVM爲單位的

參數解釋

app : 應用名
instance : 實例名,默認爲 IP:PORT
value : 監控指標,int整數,百分比

8.JVM非堆內存使用率監控

規則模板

sum(jvm_memory_used_bytes{job="${app}", instance="${instance}", area="nonheap"})*100/sum(jvm_memory_max_bytes{job="${app}",instance="${instance}", area="nonheap"})  > ${value}

規則描述

監測JVM的非堆內存的使用率(也就是通常意義上的棧內存,JIT編譯代碼緩存,永久代(jdk1.8爲元空間)), 前提是一定要指定應用名和實例名,否則prometheus不知道監控的那個JVM,這裏是以JVM爲單位的

參數解釋

app : 應用名
instance : 實例名,默認爲 IP:PORT
value : 監控指標,int整數,百分比

9.接口某個時間段內平均響應時間監控

規則模板

increase(http_server_requests_seconds_sum{job="${app}",exception="None", uri="${uri}"}[${timeRange}])/
increase(http_server_requests_seconds_count{job="${app}",exception="None", uri="${uri}"}[${timeRange}]) >${value}

規則描述

監控某個接口在指定時間範圍內的相應時間

參數解釋

app : 應用名
instance : 實例名,默認爲 IP:PORT
uri : 接口地址
timeRange : 時間範圍
value :監控指標,long類型,毫秒級別。 
labels參數說明

env : 數據源(通常用於區分環境)
exception : 異常信息
instance : 實例名
job : 應用名
method : POST 或GET
status :http請求狀態 200爲成功
uri : 接口地址

10.接口某個時間段內平均響應時間監控(正則表達式)

規則模板

increase(http_server_requests_seconds_sum{job=~"${app}",exception="None", uri=~"${uri}"}[${timeRange}])/increase(http_server_requests_seconds_count{job="${app}",exception="None", uri=~"${uri}"}[${timeRange}]) >${value}

規則描述

監控某個接口在指定時間範圍內的響應時間,比如在某些場景下,有些接口的請求時間過於慢了, 這樣我們可以及時收到通知,以便後續優化。

參數解釋

app : 應用名, 正則表達式匹配
uri : 接口地址 , 正則表達式匹配
timeRange : 時間範圍
value :監控指標,long類型,毫秒級別。 
labels參數說明

env : 數據源(通常用於區分環境)
exception : 異常信息
instance : 實例名
job : 應用名
method : POST 或GET
status :http請求狀態 200爲成功
uri : 接口地址

服務器相關
11.全局CPU使用率監測

規則模板

100 - ((avg by (instance,job,env)(irate(node_cpu_seconds_total{mode="idle"}[30s]))) *100) > ${value}

規則描述

監測CPU的平均使用率

參數解釋

value :監控指標,百分比,int整數 
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名

12.監測指定服務器的CPU使用率

規則模板

100 - ((avg by (instance,job,env)(irate(node_cpu_seconds_total{mode="idle",job="${app}"}[30s]))) *100) > ${value}

規則描述

監測某個應用的CPU的平均使用率

參數解釋

app : 服務器IP 
value :監控指標,百分比,int整數 
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名

13.內存使用率

規則模板

((node_memory_MemTotal_bytes -(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes) )/node_memory_MemTotal_bytes ) * 100 > ${value}

規則描述

監測內存使用率

參數解釋

value :監控指標,百分比,int整數 
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名

14.磁盤使用率

規則模板

(node_filesystem_avail_bytes{fstype !~ "nfs|rpc_pipefs|rootfs|tmpfs",device!~"/etc/auto.misc|/dev/mapper/centos-home",mountpoint !~ "/boot|/net|/selinux"} /node_filesystem_size_bytes{fstype !~ "nfs|rpc_pipefs|rootfs|tmpfs",device!~"/etc/auto.misc|/dev/mapper/centos-home",mountpoint !~ "/boot|/net|/selinux"} ) * 100 > ${value}

規則描述

監測磁盤使用的比率,可以自定義當使用率大於多少的時候進行報警

參數解釋

value :監控指標,百分比,int整數 
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名
device : 系統路徑
fstype : 文件系統類型
mountpoint : /

15.網卡流出速率

規則模板

(irate(node_network_transmit_bytes_total{device!~"lo"}[1m]) / 1000) > ${value}

規則描述

監控網卡的流出速率

參數解釋

value :監控指標,單位爲 kb
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名
device : 網卡名稱 ,例: eth0 , eth1

16.系統負載率1分鐘

規則模板

node_load1 > ${value}

規則描述

監測系統一分鐘內的負載率。

參數解釋

value :監控指標,dubble小數
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名

17.系統負載率5分鐘

規則模板

node_load5 > ${value}

規則描述

監測系統5分鐘內的負載率。

參數解釋

value :監控指標,dubble小數
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名

18.系統負載率15分鐘

規則模板

node_load15 > ${value}

規則描述

監測系統15分鐘內的負載率。

參數解釋

value :監控指標,dubble小數
labels參數說明

env : 數據源(通常用於區分環境)
instance : 實例名
job : 應用名


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章