常用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原始碼交流群,歡迎喜歡閱讀原始碼的朋友加群,新增下面的微信, 備註”加群“ 。