北京快乐8官网|北京快乐8选一秘诀

3分鐘了解黃金指標異常檢測

作者簡介:王博 百度高級架構師

從事有關AIOps智能運維領域的工作,通過算法解決IT運維領域的痛點問題。重點關注異常檢測、故障診斷方向的相關工作。

干貨概覽

故障管理是運維工程師消耗時間最多的環節,因此成為了AIOps算法首要解決的場景之一。

在故障預防階段,我們在文章《被變更逼瘋的我,是如何成功自救的?》中提到過百度分級發布智能檢查算法。算法將在每一級變更的實例與未變更實例,以及歷史變更情況進行對比,如果發現指標變化有明顯異常,即判定本次變更可能存在風險,變更將被攔截并提交人工進行進一步審查。

在故障發現階段我們利用業務監控系統對重要的業務指標進行異常檢測。當指標存在突變或者與歷史行為不一致時,系統就會觸發報警給運維工程師。我們在文章《我們不一樣!告訴你百度是如何做智能流量異常檢測的》中詳細介紹了在流量指標上的故障發現方法。

在故障止損環節,我們在《單機房故障自愈》系列文章中詳細講述了百度單機房故障自愈的場景和算法。通過抽象、規范處理流程,我們將止損過程劃分為統一的感知、決策、執行三個階段。感知階段監控分機房的KPI指標,在發現異常后觸發止損流程。決策階段根據各個機房的負載情況,在保證負載水位動態均衡的基礎上分步將故障機房的流量調度到其他健康機房。執行階段則根據決策階段產出的調度計劃利用流量調度平臺API執行流量調度。

在故障診斷環節,《創造程序的“白衣天使”》系列文章提出了指標排查技術。該技術在故障時刻對故障產品線或者子系統下所有機器指標進行異常檢測,給每一臺機器打上一個異常標簽,然后根據異常標簽的情況對機器進行聚類分組,最后對分組進行排序,推薦異常程度最高的3到5個機器分組作為故障根源所在的位置。

講到這里,我們可以發現故障管理的各個環節都依賴于對時序指標數據的分析,而異常檢測算法是時序指標數據的關鍵分析技術之一,因此我們今天來聊一聊時序指標異常檢測技術。

各行各業的監控指標

不同的監控場景采集的時序指標不一樣,業務含義差異也很大,這些指標背后應該是一個異常檢測算法嗎?用戶經常在聽了異常檢測的案例之后堅持認為自己的監控場景可能和其他人的不同,需要專門定制算法,真的是這樣嗎?下圖是我們在業務領域、數據庫領域、網絡領域以及工業領域見過的一些指標。這些指標中的絕大多數都可以用幾種標準的算法來檢測異常。

對業務運維團隊來說,主要關注的是業務指標的波動變化。像百度等互聯網公司,可能更多關注產品的訪問流量、訂單數量、QPS、響應時間或者KPI成功率指標的波動。對于金融行業的客戶,可能關注當前系統的交易量、交易成功率、交易響應率和交易延遲等指標的波動變化。如果這些業務指標出現了波動,系統可能發生了故障。例如,交易總量如果發生突然下跌,可能是當前系統的接入出現了一定問題。

對數據庫管理員來說,主要關注的是SQL平均讀行數、SQL語句的平均執行時間、鎖等待時間和鎖超時時間。這些指標反映數據庫當前的健康狀態,比如SQL語句的執行時間明顯上升,可能是數據庫的性能存在問題。

對網絡運維團隊來說,他們看到的關鍵指標又是另外一番樣子。網絡團隊關注更多的是網絡流量、網絡延遲、TCP連接數、TCP發送和接受包數量、TCP連接失敗數等。這些指標能夠反映物理機器或者設備在網絡層面的狀態。例如,當網絡流量突升超出網絡容量極限的時候,網絡延遲、TCP連接失敗數等指標都會有顯著的上升或下降。

除了我們常見的IT運維領域,工業生產的環節也關注了多種不同的指標,以確保生產安全和產品質量。比如輪胎企業,可能關心下線的輪胎尺寸,某個產品生產線的良品率、次品率、平均的生產下線時長,某個生產環節的溫度等。比如,當某個關鍵環節的溫度過低或者過高時,可能會導致生產出的輪胎硬度不符合質量要求。

黃金指標異常檢測

表面上,前面提到的多個場景中定義的關鍵指標有很大不同,但其實這些指標背后是有相似之處的。谷歌出版的《Site Reliability Engineering: How Google Runs Production Systems》提出IT運維場景四類黃金指標,流量類、錯誤(成功)率類、響應時間類和容量類。我們發現很多指標都可以歸入這四類,因此我們開發的算法工具包針對不同類型的黃金指標提供了專門的異常檢測算法,提高了異常檢測的效果和效率。

流量類指標代表流入系統的請求數量,請求數量的突升突降常常代表運維系統的外部接入部分可能存在故障。比如,訪問流量就是外部進入百度業務系統的訪問請求數,訂單數是外部進入電商系統的訂單數量,交易量是外部進入銀行或者證券系統的交易數量,TCP發送包數是外部進入網絡設備的包數量。這類指標可以應用泊松分布進行異常檢測,感興趣的讀者可以閱讀《我們不一樣!告訴你百度是如何做智能流量異常檢測的》這篇文章了解算法詳情。

錯誤(成功)率類代表了流出系統成功或者失敗的比例,錯誤率突升或者成功率突降代表系統自身的處理邏輯可能存在問題。例如百度的KPI就是請求的成功比例,交易成功率或者交易失敗率是交易成功或者失敗占總體交易量的比例,良品、次品率代表了生產線下線產品質量合格或者不合格的比例,這類指標的異常檢測利用了二項式分布,具體方法在《還記得概率課本中的二項分布嗎?在我們的網絡判障中發揮了大作用!》這篇文章中有詳細的介紹。

響應時間類代表流過系統處理請求的平均消耗時長,當消耗時間變大時代表系統的處理性能有所下降。比如響應時間就是請求從開始到返回在百度業務系統中所消耗的時間,交易延遲代表在銀行或者證券交易系統中所耗費的平均交易時間,數據庫中的SQL語句執行時間代表從開始執行SQL到SQL完成執行所需要的時間,網絡延遲代表數據包從發出到被接收端接收到在網絡系統中所消耗的延遲時間,生產時長代表從原料到產品下線的所需時長。

容量指標代表了系統當前能夠處理的請求數量情況,容量指標突變代表系統可能存在容量退化的風險。例如CPU、網絡使用率等指標,當這些指標飆高打滿,系統可能有較大的容量風險。

這樣,我們就把看似千差萬別的指標歸入了四個類別。在過去發布的文章里,我們介紹過流量類和錯誤(成功)率類的異常檢測算法,分別利用經典的泊松分布、二項式分布概率模型進行建模,然后計算當前取值發生的概率,概率很小時就認為指標發生了異常。這種把指標的異常程度轉換到概率維度進行衡量的方法,同樣適用于響應時間類和容量指標類上,我們將在后續的文章中介紹這兩類指標的異常檢測算法。

總  結

故障管理是運維的重要場景之一,也是AIOps算法首先落地的場景。之前,我們發布的多篇文章分別在不同的側面介紹了百度在故障管理環節的AIOps實踐,這些實踐都依賴了一個關鍵技術——時序指標異常檢測技術。本篇文章重點對百度黃金指標異常檢測技術進行了綜述性的介紹,我們將各行各業的指標分類到了四大類黃金指標上,并針對每個類型提供了專門的方法進行異常檢測。后續我們將繼續發布我們在AIOps智能運維領域的新場景、新技術,大家敬請關注!

免責聲明:本文僅代表文章作者的個人觀點,與本站無關。其原創性、真實性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容文字的真實性、完整性和原創性本站不作任何保證或承諾,請讀者僅作參考,并自行核實相關內容。

http://www.kzguv.com.cn/style/images/nopic.gif
我要收藏
贊一個
踩一下
分享到
?
分享
評論
首頁
北京快乐8官网 福州麻将手机最新版下载 股票配资平台代理股票配资平台代理 甘肃11选5遗漏数 欢乐麻将好友房辅助器 足球比分直播360 山东11选5技巧 二人麻将小游戏简单版 a片快播电影下载 中白搭麻将 任选9场 广西星悦河池麻将技巧 云天华城配资 可以和微信好友玩麻将的游戏 贝格富配资 江苏兴化麻将 大赢家比分即时比分直篮球