成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

只需半分鐘,ARMS 幫你配置出“高質量”告警

運維
傳統的告警規則是靜態閾值告警,工程師們會對每個指標設定一個固定的閾值來定義指標的“正常水位”,當指標的實際值超出閾值時,對應的工程師就會收到告警。

背景

某位資深運維工程師A:“一天不收個幾十條告警,我都覺得心里不踏實” 。運維工程師B:“我那幾個告警天天告,我的應用一點問題都沒有,但是我又不敢關”。運維工程師C:“我每天都要花大量的時間,整理已經發生的告警:查它們是什么原因導致的,是故障還是誤報,要不要解決,要不要屏蔽。”運維工程師D:“要不我們給告警數配置一個告警吧,一天收100條告警是正常的,哪天告出來200條估計就是有問題了”。會出現這樣的對話不是因為這幾位運維工程師不專業,實際上,誤告警泛濫,真告警被淹沒,就是大多數團隊,甚至頂尖的互聯網企業的運維團隊的現狀。想要配置出“系統無異常時不誤告,有異常時及時告”的“高質量”的告警規則是非常具有挑戰性的。

所以這些告警都是些什么?為了保證系統和應用的穩定性,工程師們會搭建監控系統以實時地采集比如RT(響應時間)、QPS(調用次數)、Error Rate(錯誤率)、HTTP狀態碼、Full GC次數等關鍵指標,并對核心應用的關鍵指標進行實時地巡檢,當檢測到指標當前值超出“正常水位”時,相關的工程師就會收到對應的告警。

那這些誤告警又是怎么產生的呢?傳統的告警規則主要是靜態閾值告警,當某指標的實際值超出用戶設定的閾值,就認為是系統出現了異常。但是,想要快速選定合適的閾值,配出“高質量”告警,是很難的。阿里云應用實時監控服務ARMS通過對近百位用戶的訪談與調研,發現平均每個用戶每天收到1275條告警。而且,我們對 6 萬條關于響應時間和錯誤率突增的告警進行了分析,發現其中只有 3.05%的告警是“真”告警,剩下的96.95%都是由于閾值設置不當引發的誤告警。

為什么配出”高質量“告警很難?

傳統的告警規則是靜態閾值告警,工程師們會對每個指標設定一個固定的閾值來定義指標的“正常水位”,當指標的實際值超出閾值時,對應的工程師就會收到告警。比如當應用的RT超出1s,就算是異常。但是合適的靜態閾值,是很難定義的。因為:

1. 同一指標,不同應用,不同接口的“正常水位”不同。

現實生活中,SRE(運維工程師)需要對很多應用、很多接口配置告警。即使是同一個指標,不同應用,不同接口的“正常水位”都是是不一樣的。下圖是同一家公司,不同應用的錯誤率指標。

圖片

下圖是同一應用,不同接口的平均響應時間指標:

圖片

SRE需要為每一個應用、每一個接口的每一個指標來設定“正常水位”。 這對于有幾百個應用、幾十條關鍵指標的公司來說,僅靠人力來不斷地設定和維護指標的“正常水位”需要花費大量的時間。

更可怕的是,隨著業務的發展,代碼不斷變更,各項指標的“正常水位”會不斷地變化。這意味著SRE要不斷地調整告警閾值。

2. 有的指標,不同時段的“正常水位”不一樣

比如某工作網站的訪問量,在10:00-18:00時段內,訪問量低于1000是異常的;但是在夜間,比如22:00-6:00,訪問量超過1000可能是收到了攻擊。在這種場景下,指標的“正常水位”會隨著時間變化而不斷變化。如果我們硬配置一個閾值,比如低于1000就告警,那整個晚上都會受到告警的打擾。

有的SRE可能會表示,那我晚上自動吧告警關掉就好了,但是現實生活中,這種起伏不定的指標,很難有像“1000”這么規整的閾值,現實生活中的調用量指標是下面的樣子,就是會有一些令人意想不到的“大毛刺”。

圖片

3. 告警閾值的合理性難以及時驗證

SRE們配好一個告警閾值之后,也很難驗證這個閾值是不是合理的。運維工程師們往往會不斷地被打擾,他們要不斷地調整閾值,才能得到一個較高質量的告警。當指標的正常水位隨著業務變化而變化之后,周而復始,重新調整閾值。

業界是怎么協助用戶配置出”高質量“告警的?

如何有效地幫助客戶配制出“高質量”的告警規則,是每一個APM(應用性能監控)廠商關注的問題。為了解決這個問題,主流的APM廠商都提供了智能告警服務。主要思路就是用統計學算法或者機器學習算法,提取指標的特征,下面介紹業界如何解決上面提到的問題:

問題 1:同一指標,不同應用,不同接口的“正常水位”不同

為了解決閾值難配的問題,一些APM廠商給出了靜態閾值推薦的功能。一般地,他們用算法為各個接口、各個應用,根據對于指標的歷史數據學習指標特征,結合指標歷史平均水位以及波動情況給出一個建議閾值。

但是,廠商給的是通用算法,SRE很難評估算法推薦的閾值是不是符合他的業務,是不是真的“高質量”的閾值。

問題 2:有的指標,不同時段的“正常水位”不一樣

對于波動型指標,一些廠商推出了動態閾值(也稱區間檢測)功能。在這個場景下,指標的實際值不再和單一的靜態閾值比較,而是和一個時間序列做對比。具體地,算法會根據指標歷史數據學習其波動特征,并對未來一段時間指標正常變化范圍進行預測。比如每天00:00對未來一天的指標“正常水位”的上下邊界進行預測,等采集到實際值時,比如10:00時,將實際值與之前的預測值進行比較,實際值超過了邊界就被判定為異常。下面是一個動態閾值功能的示意圖,綠線是指標的實際值,藍色陰影是算法計算出來的,指標在正常情況下的上下邊界。

圖片

這里的缺點在于:算法對用戶來說是黑盒,SRE們不敢把關鍵的業務指標放心地交給算法。另外,這些算法是通用的,不一定符合SRE的實際業務需求。而且,很多APM廠商沒有關注到這一點,沒有給用戶調節動態閾值的功能。

問題 3:告警閾值的合理性難以及時驗證

一些APM廠商給出了閾值和指標過去一段時間實際值的對比圖。但是,SRE們往往沒有時間對每個應用、每條指標、每個接口都瀏覽一遍來設置合理的閾值。

另外,對于動態閾值的功能,很少有廠商給出對比圖。SRE沒有足夠的信息來對告警閾值進行調整,只能不斷地受到告警打擾再調節閾值。這樣,有了幾次誤告警之后,SRE們就會把這些“華而不實”的AI功能關掉。

ARMS 是怎么幫用戶實現半分鐘配出”高質量“告警的?

為了解決這些問題,為了給用戶提供“透明的”、“易用的”、“所見即所得”的智能化告警體驗,ARMS對應用性能監控告警功能進行了全面升級。 下面我們介紹ARMS如何解決“高質量”告警難配的問題。

問題 1:同一指標,不同應用,不同接口的“正常水位”不同

實際上,對每一條指標配置一個合適的閾值其實都不算難,難的地方在于每個應用、每個接口、每種指標類型適合的閾值都不一樣。SRE要遍歷所有的指標,為他們設置合適的閾值,這是需要耗費大量時間的地方。

對于配靜態閾值這種重復的工作,ARMS決定交給代碼來做。用戶只需要選擇要配告警的應用、接口和指標類型。

圖片圖片

然后點擊“填入P4建議閾值”,ARMS就會自動拉取每個應用、每個接口對應指標的歷史3天數據,然后用N-sigma算法,計算每個指標歷史3天的均值和方差。當業務沒有發生變化,我們默認指標服從一個正態分布,它偏離它的期望N倍標準差的概率很小。根據這個原理,我們給出一個推薦閾值。這里的"P4"是表示的是最不嚴重的告警,這個建議閾值僅僅表示指標有些許異常。

圖片圖片

當用戶的業務發生了變化,應用正常水位也發生了變化,那么用戶也只需要編輯一下告警規則,再點一次“填入P4建議閾值”即可。真正做到了一次配置,隨處生效。

問題 2:有的指標,不同時段的“正常水位”不一樣

由于靜態閾值告警難以滿足如RT、QPS等波動型指標的監控功能,我們推薦動態閾值,也叫區間檢測功能。這里我們會自動根據指標7天歷史數據,預測指標未來上下邊界。用戶可以根據上下邊界配置告警,當指標實際值超出上邊界或下邊界,觸發告警。

ARMS主要使用了Meta(Facebook)公司2018年公布的Prophet算法[1]。算法會先根據指標歷史7天數據,用時間序列分解算法,將指標分解成季節項、趨勢項和殘差項。舉個例子[2],對于下面圖 1 中的時間序列,Prophet算法會將它分解成有規律的趨勢項(圖2)季節項(圖3)和沒有規律的殘差項。

圖片

圖 1

圖片

圖 2

圖片

圖 3

既然趨勢項和季節項是有規律的,我們就可以對未來一段時間指標的值進行預測。但是還有殘差項的存在,所以如果我們對指標的變化趨勢預測得到的是一個區間,可以看圖 1 中藍色陰影部分。Prophet是一個無領域的,時序預測通用算法。我們對該算法做了一些實驗之后,發現把它應用到APM領域,還需要大量的改造。

當用戶配置區間檢測任務之后,ARMS會在后臺以每24h一次的頻率,學習指標歷史7天數據的特征,提取指標趨勢性、季節性等特征,得到指標未來24h的預測曲線。再根據指標自身的波動情況,也就是誤差方差的大小,為未來一天指標的數據做出一個估計區間。用戶在配置區間檢測告警中,可以對算法計算出來的上下邊界進行預覽。下圖中,藍線是指標的實際值,綠色的陰影是上下邊界。

圖片圖片

與靜態閾值推薦功能不同的地方在于,當用戶業務變化導致指標正常水位發生變化,用戶不需要通過手動編輯告警規則的方式來更新閾值。這是因為ARMS持續地在以每天一次的頻率學習指標的特征,并只預測未來一天的上下邊界。SRE們不需要再一遍一遍來回地調整閾值。ARMS區間檢測告警,一次配置,自適應學習指標特征,持久有效。

問題 3:告警閾值的合理性難以及時驗證

為了幫助用戶及時地驗證告警的合理性,使得用戶能夠根據自身業務調整算法推薦的閾值,ARMS推出了如下的功能:

1. 為了方便用戶根據自己的實際數據對閾值進行調整,我們給出了指標實際值和閾值的對比圖

這里的P1、P2、P3、P4的閾值代表著不同的嚴重程度,當用戶配置好各個閾值之后,ARMS會用不同的顏色標識出4個不同等級的閾值。

圖片

2.提供了告警數預測功能

我們會根據指標歷史24h數據,計算指標會超出每個閾值的次數來預測在該設定下告警的數量。并且,ARMS提供了指標詳情信息,用戶可以看到具體是哪些時刻,指標的實際值超出了當前的閾值。用戶可以根據這些信息調整閾值,以適配實際業務需求。

 圖片

 圖片

3. 無論是靜態閾值還是推薦閾值,ARMS都支持用戶手動調節推薦閾值

在靜態閾值配置的界面下, 用戶可以按需地修改閾值;在區間檢測功能中,用戶可以滑動靈敏度按鈕,從0到200挑選任意整數作為靈敏度。并且,圖中標識著指標上下邊界的綠色區間也會隨著靈敏度的變化而變化。

圖片

總結

為了幫助用戶快速配出“高質量“告警,ARMS提供了“靜態推薦閾值”來幫助用戶快速地計算指標的“正常水位”;并且,針對不同時間段“正常水位”不一樣的指標,ARMS提供了“區間檢測”功能。另外,ARMS提供了告警數預測功能,使得運維工程師們可以及時地評估告警規則的合理性。也讓他們有足夠的信息,根據自身業務來調節告警閾值以及區間檢測中的靈敏度,一次性配出“高質量”告警。

運維工程師D表示:"用ARMS確實比給告警數配告警靠譜哈",運維工程師A、B、C:“趕緊上阿里云開通ARMS吧,我再也不想半夜被告警電話吵醒了”。

參考文獻:

[1] Prophet算法

Taylor S J, Letham B. Forecasting at scale[J]. The American Statistician, 2018, 72(1): 37-45.

[2] 舉個例子

https://zhuanlan.zhihu.com/p/52330017

責任編輯:龐桂玉 來源: 阿里巴巴中間件
相關推薦

2010-04-02 10:48:39

CentOS系統

2023-10-15 12:07:09

2009-02-23 17:53:21

桌面虛擬化虛擬化IT

2017-07-14 09:54:47

代碼函數程序

2011-05-31 13:43:46

外鏈

2021-08-08 14:26:24

SQL數據庫開發

2015-08-19 08:54:23

Android開發框架

2011-07-20 15:26:52

C++

2011-03-04 10:11:09

JavascriptAPI

2012-09-13 10:44:18

Python代碼

2011-06-24 14:59:41

外鏈

2023-07-06 14:51:30

開發高質量軟件

2023-12-12 07:48:41

GPTChatGPT編寫論文

2015-08-03 10:40:59

程序員代碼質量Quora

2015-08-25 08:29:11

編寫高質量命名

2011-12-29 15:02:27

JavaScript

2013-01-09 16:21:56

醫療護理成功案例

2024-03-07 11:39:24

HadolintDockerfile工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕亚洲欧美日韩在线不卡 | 精品视频在线观看 | 一级a性色生活片久久毛片波多野 | 久久久国产精品 | 亚洲精品久久久久久一区二区 | 91精品国产综合久久香蕉922 | 国产一区精品在线 | 久久久久久久一级 | 国偷自产av一区二区三区 | 亚洲一区综合 | 亚洲国产高清高潮精品美女 | 四虎成人精品永久免费av九九 | 久久久久网站 | 午夜在线| 色约约视频| 免费观看一级黄色录像 | 久久99一区二区 | 日韩精品一区二区三区久久 | 艹逼网 | 美日韩精品| 久久精品毛片 | av网站在线播放 | 久久99国产精品 | 91精品国产色综合久久不卡98 | 久久99网| 91免费在线 | 美女毛片免费看 | 男女在线网站 | 久久国产精品视频 | 久优草| 国产丝袜一区二区三区免费视频 | 国产在线网址 | 中文字幕亚洲区一区二 | 久久久精品影院 | aa级毛片毛片免费观看久 | 精精国产xxxx视频在线野外 | 国产高清久久久 | 精品视频一区二区三区 | 亚洲激情在线观看 | 国产亚洲一区在线 | 久久久91精品国产一区二区三区 |