1. 程式人生 > >常用prometheus告警規則模板(三).md

常用prometheus告警規則模板(三).md

應用類相關

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 : 應用名

sharedCode原始碼交流群,歡迎喜歡閱讀原始碼的朋友加群,新增下面的微信, 備註”加群“ 。