<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AIOps在美團(tuán)的探索與實(shí)踐——故障發(fā)現(xiàn)篇

          共 12959字,需瀏覽 26分鐘

           ·

          2021-01-08 19:11



          a22345b2f4c4804a4a63c6e9373370f7.webp

          AIOps,最初的定義是Algorithm IT Operations,是利用運(yùn)維算法來(lái)實(shí)現(xiàn)運(yùn)維的自動(dòng)化,最終走向無(wú)人化運(yùn)維。隨著技術(shù)成熟,逐步確定為Artificial Intelligence for IT Operations——智能運(yùn)維,將人工智能應(yīng)用于運(yùn)維領(lǐng)域,基于已有的運(yùn)維數(shù)據(jù)(日志、監(jiān)控信息、應(yīng)用信息等),通過(guò)機(jī)器學(xué)習(xí)的方式來(lái)進(jìn)一步解決自動(dòng)化運(yùn)維無(wú)法解決的問(wèn)題。
          本文系A(chǔ)IOps在美團(tuán)的探索與實(shí)踐的第一部分,如何自動(dòng)發(fā)現(xiàn)故障問(wèn)題,其中重點(diǎn)介紹了美團(tuán)時(shí)序數(shù)據(jù)異常檢測(cè)系統(tǒng)Horae的架構(gòu)與設(shè)計(jì)。

          一、背景

          早期的運(yùn)維工作大部分是由運(yùn)維人員手工完成的,手工運(yùn)維在互聯(lián)網(wǎng)業(yè)務(wù)快速擴(kuò)張、人力成本高企的時(shí)代,難以維系。于是,自動(dòng)化運(yùn)維應(yīng)運(yùn)而生,它主要通過(guò)可被自動(dòng)觸發(fā)、預(yù)定義規(guī)則的腳本,來(lái)執(zhí)行常見(jiàn)、重復(fù)性的運(yùn)維工作,從而減少人力成本,提高運(yùn)維的效率??偟膩?lái)說(shuō),自動(dòng)化運(yùn)維可以認(rèn)為是一種基于行業(yè)領(lǐng)域知識(shí)和運(yùn)維場(chǎng)景領(lǐng)域知識(shí)的專家系統(tǒng)。隨著整個(gè)互聯(lián)網(wǎng)業(yè)務(wù)急劇膨脹,以及服務(wù)類型的復(fù)雜多樣,“基于人為指定規(guī)則”的專家系統(tǒng)逐漸變得力不從心,自動(dòng)化運(yùn)維的不足,日益凸顯,當(dāng)前美團(tuán)在業(yè)務(wù)監(jiān)控和運(yùn)維層面也面臨著同樣的困境。

          DevOps的出現(xiàn),部分解決了上述問(wèn)題,它強(qiáng)調(diào)從價(jià)值交付的全局視角,但DevOps更強(qiáng)調(diào)橫向融合及打通,AIOps則是DevOps在運(yùn)維(技術(shù)運(yùn)營(yíng))側(cè)的高階實(shí)現(xiàn),兩者并不沖突。AIOps不依賴于人為指定規(guī)則,主張由機(jī)器學(xué)習(xí)算法自動(dòng)地從海量運(yùn)維數(shù)據(jù)(包括事件本身以及運(yùn)維人員的人工處理日志)中不斷地學(xué)習(xí),不斷提煉并總結(jié)規(guī)則。AIOps在自動(dòng)化運(yùn)維的基礎(chǔ)上,增加了一個(gè)基于機(jī)器學(xué)習(xí)的大腦,指揮監(jiān)測(cè)系統(tǒng)采集大腦決策所需的數(shù)據(jù),做出分析、決策,并指揮自動(dòng)化腳本去執(zhí)行大腦的決策,從而達(dá)到運(yùn)維系統(tǒng)的整體目標(biāo)。綜上看,自動(dòng)化運(yùn)維水平是AIOps的重要基石,而AIOps將基于自動(dòng)化運(yùn)維,將AI和運(yùn)維很好地結(jié)合起來(lái),這個(gè)過(guò)程需要三方面的知識(shí):

          • 行業(yè)、業(yè)務(wù)領(lǐng)域知識(shí),跟業(yè)務(wù)特點(diǎn)相關(guān)的知識(shí)經(jīng)驗(yàn)積累,熟悉生產(chǎn)實(shí)踐中的難題。

          • 運(yùn)維領(lǐng)域知識(shí),如指標(biāo)監(jiān)控、異常檢測(cè)、故障發(fā)現(xiàn)、故障止損、成本優(yōu)化、容量規(guī)劃和性能調(diào)優(yōu)等。

          • 算法、機(jī)器學(xué)習(xí)知識(shí),把實(shí)際問(wèn)題轉(zhuǎn)化為算法問(wèn)題,常用算法包括如聚類、決策樹(shù)、卷積神經(jīng)網(wǎng)絡(luò)等。

          美團(tuán)技術(shù)團(tuán)隊(duì)在行業(yè)、業(yè)務(wù)領(lǐng)域知識(shí)和運(yùn)維領(lǐng)域的知識(shí)等方面有著長(zhǎng)期的積累,已經(jīng)沉淀出不少工具和產(chǎn)品,實(shí)現(xiàn)了自動(dòng)化運(yùn)維,同時(shí)在AIOps方面也有一些初步的成果。我們希望通過(guò)在AIOps上持續(xù)投入、迭代和鉆研,將之前積累的行業(yè)、業(yè)務(wù)和運(yùn)維領(lǐng)域的知識(shí)應(yīng)用到AIOps中,從而能讓AIOps為業(yè)務(wù)研發(fā)、產(chǎn)品和運(yùn)營(yíng)團(tuán)隊(duì)賦能,提高整個(gè)公司的生產(chǎn)效率。

          二、技術(shù)路線規(guī)劃

          2.1 AIOps能力建設(shè)

          AIOps的建設(shè)可以先由無(wú)到局部單點(diǎn)探索,在單點(diǎn)探索上得到初步的成果,再對(duì)單點(diǎn)能力進(jìn)行完善,形成解決某個(gè)局部問(wèn)題的運(yùn)維AI學(xué)件,再由多個(gè)具有AI能力的單運(yùn)維能力點(diǎn)組合成一個(gè)智能運(yùn)維流程。行業(yè)通用的演進(jìn)路線如下:

          • 開(kāi)始嘗試應(yīng)用AI能力,還無(wú)較為成熟的單點(diǎn)應(yīng)用。

          • 具備單場(chǎng)景的AI運(yùn)維能力,可以初步形成供內(nèi)部使用的學(xué)件。

          • 有由多個(gè)單場(chǎng)景AI運(yùn)維模塊串聯(lián)起來(lái)的流程化AI運(yùn)維能力,可以對(duì)外提供可靠的運(yùn)維AI學(xué)件。

          • 主要運(yùn)維場(chǎng)景均已實(shí)現(xiàn)流程化免干預(yù)AI運(yùn)維能力,可以對(duì)外提供供可靠的AIOps服務(wù)。

          • 有核心中樞AI,可以在成本、質(zhì)量、效率間從容調(diào)整,達(dá)到業(yè)務(wù)不同生命周期對(duì)三個(gè)方面不同的指標(biāo)要求,可實(shí)現(xiàn)多目標(biāo)下的最優(yōu)或按需最優(yōu)。

          所謂學(xué)件,亦稱AI運(yùn)維組件[1](南京大學(xué)周志華老師提出),類似程序中的API或公共庫(kù),但API及公共庫(kù)不含具體業(yè)務(wù)數(shù)據(jù),只是某種算法,而AI運(yùn)維組件(或稱學(xué)件),則是在類似API的基礎(chǔ)上,兼具對(duì)某個(gè)運(yùn)維場(chǎng)景智能化解決的“記憶”能力,將處理這個(gè)場(chǎng)景的智能規(guī)則保存在了這個(gè)組件中,學(xué)件(Learnware)= 模型(Model)+規(guī)約(Specification)。AIOps具體的能力框架如下圖1所示:

          83e6266e7d6e4cb02efdf33e21cca016.webp圖1 AIOps能力框架圖

          2.2 關(guān)聯(lián)團(tuán)隊(duì)建設(shè)

          AIOps團(tuán)隊(duì)內(nèi)部人員根據(jù)職能可分為三類團(tuán)隊(duì),分別為SRE團(tuán)隊(duì)、開(kāi)發(fā)工程師(穩(wěn)定性保障方向)團(tuán)隊(duì)和算法工程師團(tuán)隊(duì),他們?cè)贏IOps相關(guān)工作中分別扮演不同的角色,三者缺一不可。SRE能從業(yè)務(wù)的技術(shù)運(yùn)營(yíng)中,提煉出智能化的需求點(diǎn),在開(kāi)發(fā)實(shí)施前能夠考慮好需求方案,產(chǎn)品上線后能對(duì)產(chǎn)品數(shù)據(jù)進(jìn)行持續(xù)的運(yùn)營(yíng)。開(kāi)發(fā)工程師負(fù)責(zé)進(jìn)行平臺(tái)相關(guān)功能和模塊的開(kāi)發(fā),以降低用戶的使用門(mén)檻,提升用戶的使用效率,根據(jù)企業(yè)AIOps程度和能力的不同,運(yùn)維自動(dòng)化平臺(tái)開(kāi)發(fā)和運(yùn)維數(shù)據(jù)平臺(tái)開(kāi)發(fā)的權(quán)重不同,在工程落地上能夠考慮好健壯性、魯棒性、擴(kuò)展性等,合理拆分任務(wù),保障成果落地。算法工程師則針對(duì)來(lái)自于SRE的需求進(jìn)行理解和梳理,對(duì)業(yè)界方案、相關(guān)論文、算法進(jìn)行調(diào)研和嘗試,完成最終算法落地方案的輸出工作,并不斷迭代優(yōu)化。各團(tuán)隊(duì)之間的關(guān)系圖如下圖2所示:

          0c84baae8bcd0e11505b90b6d1564bb9.webp圖2 AIOps關(guān)聯(lián)團(tuán)隊(duì)關(guān)系圖

          2.3 演進(jìn)路線

          當(dāng)前,我們?cè)谫|(zhì)量保障方面的訴求最迫切,服務(wù)運(yùn)維部先從故障管理領(lǐng)域探索AIOps實(shí)踐。在故障管理體系中,從故障開(kāi)始到結(jié)束主要有四大核心能力,即故障發(fā)現(xiàn)、告警觸達(dá)、故障定位、故障恢復(fù)。故障發(fā)現(xiàn)包含了指標(biāo)預(yù)測(cè)、異常檢測(cè)和故障預(yù)測(cè)等方面,主要目標(biāo)是能及時(shí)、準(zhǔn)確地發(fā)現(xiàn)故障;告警觸達(dá)包含了告警事件的收斂、聚合和抑制,主要目標(biāo)是降噪聚合,減少干擾;故障定位包含了數(shù)據(jù)收集、根因分析、關(guān)聯(lián)分析、智能分析等,主要目標(biāo)是能及時(shí)、精準(zhǔn)地定位故障根因;故障恢復(fù)部分包含了流量切換、預(yù)案、降級(jí)等,主要目標(biāo)是及時(shí)恢復(fù)故障,減少業(yè)務(wù)損失,具體關(guān)系如下圖3所示:

          1307f2f8160dea1875a9b664d2ec35d5.webp圖3 故障管理體系核心能力關(guān)系圖

          其中在故障管理智能化的過(guò)程中,故障發(fā)現(xiàn)作為故障管理中最開(kāi)始的一環(huán),在當(dāng)前海量指標(biāo)場(chǎng)景下,自動(dòng)發(fā)現(xiàn)故障和自動(dòng)異常檢測(cè)的需求甚為迫切,能極大地簡(jiǎn)化研發(fā)策略配置成本,提高告警的準(zhǔn)確率,減少告警風(fēng)暴和誤告,從而提高研發(fā)的效率。

          除此之外,時(shí)序數(shù)據(jù)異常檢測(cè)其實(shí)是基礎(chǔ)能力,在后續(xù)告警觸達(dá)、故障定位和故障恢復(fù)環(huán)節(jié)中,存在大量指標(biāo)需要進(jìn)行異常檢測(cè)。所以將故障發(fā)現(xiàn)作為當(dāng)前重點(diǎn)探索目標(biāo),解決當(dāng)前海量數(shù)據(jù)場(chǎng)景下人工配置和運(yùn)營(yíng)告警策略、告警風(fēng)暴和準(zhǔn)確率不高的核心痛點(diǎn)。整個(gè)AIOps體系的探索和演進(jìn)路線如下圖4所示。每個(gè)環(huán)節(jié)均有獨(dú)立的產(chǎn)品演進(jìn),故障發(fā)現(xiàn)-Horae(美團(tuán)服務(wù)運(yùn)維部與交易系統(tǒng)平臺(tái)部共建項(xiàng)目)、告警觸達(dá)-告警中心、故障定位-雷達(dá)、故障恢復(fù)-雷達(dá)預(yù)案。

          ef41dd1536b13016ec188ec842d3fdc6.webp圖4 AIOps在故障管理方面的演進(jìn)路線

          三、AIOps之故障發(fā)現(xiàn)

          3.1 故障發(fā)現(xiàn)

          從美團(tuán)現(xiàn)有的監(jiān)控體系可以發(fā)現(xiàn),絕大多數(shù)監(jiān)控?cái)?shù)據(jù)均為時(shí)序數(shù)據(jù)(Time Series),時(shí)序數(shù)據(jù)的監(jiān)控在公司故障發(fā)現(xiàn)過(guò)程中扮演著不可忽視的角色。無(wú)論是基礎(chǔ)監(jiān)控CAT[2]、MT-Falcon[3]、Metrics(App端監(jiān)控),還是業(yè)務(wù)監(jiān)控Digger(外賣業(yè)務(wù)監(jiān)控)、Radar(故障發(fā)現(xiàn)與定位平臺(tái))等,均基于時(shí)序數(shù)據(jù)進(jìn)行異常監(jiān)控,來(lái)判斷當(dāng)前業(yè)務(wù)是否在正常運(yùn)行。

          然而從海量的時(shí)序數(shù)據(jù)指標(biāo)中可以發(fā)現(xiàn),指標(biāo)種類繁多、關(guān)系復(fù)雜(如下圖5所示)。在指標(biāo)本身的特點(diǎn)上,有周期性、規(guī)律突刺、整體抬升和下降、低峰期等特點(diǎn),在影響因素上,有節(jié)假日、臨時(shí)活動(dòng)、天氣、疫情等因素。原有監(jiān)控系統(tǒng)的固定閾值類監(jiān)控策略想要覆蓋上述種種場(chǎng)景,變得越來(lái)越困難,并且指標(biāo)數(shù)量眾多,在策略配置和優(yōu)化運(yùn)營(yíng)上,人力成本將成倍增長(zhǎng)。

          若在海量指標(biāo)監(jiān)控上,能根據(jù)指標(biāo)自動(dòng)適配合適的策略,不需要人為參與,將極大的減少SRE和研發(fā)同學(xué)在策略配置和運(yùn)營(yíng)上的時(shí)間成本,也可讓SRE和研發(fā)人員把更多精力用在業(yè)務(wù)研發(fā)上,從而產(chǎn)生更多的業(yè)務(wù)價(jià)值,更好地服務(wù)于業(yè)務(wù)和用戶。

          d25cbf13b3b332f54b8c212d0cd09f36.webp圖5 時(shí)序數(shù)據(jù)種類多樣性

          3.2 時(shí)序數(shù)據(jù)自動(dòng)分類

          在時(shí)序數(shù)據(jù)異常檢測(cè)中,對(duì)于不同類型的時(shí)序數(shù)據(jù),通常需要設(shè)置不同的告警規(guī)則。比如對(duì)于CPU Load曲線,往往波動(dòng)劇烈,如果設(shè)置固定閾值,瞬時(shí)的高漲會(huì)經(jīng)常產(chǎn)生誤告,SRE和研發(fā)人員需要不斷調(diào)整閾值和檢測(cè)窗口來(lái)減少誤告,當(dāng)前,通過(guò)Radar(美團(tuán)內(nèi)部系統(tǒng))監(jiān)控系統(tǒng)提供的動(dòng)態(tài)閾值策略,然后參考?xì)v史數(shù)據(jù)可以在一定程度上避免這一情況。如果系統(tǒng)能夠提前預(yù)判該時(shí)序數(shù)據(jù)類型,給出合理的策略配置建議,就可以提升告警配置體驗(yàn),甚至做到自動(dòng)化配置。而且在異常檢測(cè)中,時(shí)序數(shù)據(jù)分類通常也是智能化的第一步,只有實(shí)現(xiàn)智能化分類,才能自動(dòng)適配相應(yīng)的策略。

          目前,時(shí)間序列分類主要有兩種方法,無(wú)監(jiān)督的聚類和基于監(jiān)督學(xué)習(xí)的分類。Yading[4]是一種大規(guī)模的時(shí)序聚類方法,它采用PAA降維和基于密度聚類的方法實(shí)現(xiàn)快速聚類,有別于K-Means和K-Shape[5]采用互相關(guān)統(tǒng)計(jì)方法,它基于互相關(guān)的特性提出了一個(gè)新穎的計(jì)算簇心的方法,且在計(jì)算距離時(shí)盡量保留了時(shí)間序列的形狀。對(duì)KPI進(jìn)行聚類,也分為兩種方法,一種是必須提前指定類別數(shù)目(如K-Means、K-Shape等)的方法,另一種是無(wú)需指定類別數(shù)目(如DBSCAN等),無(wú)需指定類別數(shù)目的聚類方法,類別劃分的結(jié)果受模型參數(shù)和樣本影響。至于監(jiān)督學(xué)習(xí)的分類方法,經(jīng)典的算法主要包括Logistics、SVM等。

          3.2.1 分類器選擇

          根據(jù)當(dāng)前監(jiān)控系統(tǒng)中時(shí)序數(shù)據(jù)特點(diǎn),以及業(yè)內(nèi)的實(shí)踐,我們將所有指標(biāo)抽象成三種類別:周期型、平穩(wěn)型和無(wú)規(guī)律波動(dòng)型[6]。我們主要經(jīng)歷了三個(gè)階段的探索,單分類器分類、多弱分類器集成決策分類和卷積神經(jīng)網(wǎng)絡(luò)分類。

          • 單分類器分類:本文訓(xùn)練了SVM、DBSCAN、One-Class-SVM(S3VM)三種分類器,平均分類準(zhǔn)確率達(dá)到80%左右,但無(wú)規(guī)律波動(dòng)型指標(biāo)的分類準(zhǔn)確率只有50%左右,不滿足使用要求。

          • 多弱分類器集成決策分類:參考集成學(xué)習(xí)相關(guān)原理,通過(guò)對(duì)SVM、DBSCAN、S3VM三種分類器集成投票,提高分類準(zhǔn)確率,最終分類準(zhǔn)確率提高7個(gè)百分點(diǎn),達(dá)到87%。

          • 卷積神經(jīng)網(wǎng)絡(luò)分類:參考對(duì)Human Activity Recognition(HAR)進(jìn)行分類的實(shí)踐[7],我們用CNN(卷積神經(jīng)網(wǎng)絡(luò))實(shí)現(xiàn)了一個(gè)分類器,該分類器在時(shí)序數(shù)據(jù)分類上表現(xiàn)優(yōu)秀,準(zhǔn)確率能達(dá)到95%以上。CNN在訓(xùn)練中會(huì)逐層學(xué)習(xí)時(shí)序數(shù)據(jù)的特征,不需要成本昂貴的特征工程,大大減少了特征設(shè)計(jì)的工作量。

          3.2.2 分類流程

          我們選擇CNN分類器進(jìn)行時(shí)序數(shù)據(jù)分類,分類過(guò)程如下圖6所示,主要步驟如下:

          c86f7cb84b7fb98d260c8cde0132f22f.webp

          圖6 時(shí)序數(shù)據(jù)分類處理流程

          1. 缺失值填充:時(shí)序數(shù)據(jù)存在少量數(shù)據(jù)丟失或者部分時(shí)段無(wú)數(shù)據(jù)等現(xiàn)象,因此在分類前先對(duì)數(shù)據(jù)先進(jìn)行缺失值填充。

          2. 標(biāo)準(zhǔn)化:本文采用方差標(biāo)準(zhǔn)化對(duì)時(shí)序數(shù)據(jù)進(jìn)行處理。

          3. 降維處理:按分鐘粒度的話,一天有1440個(gè)點(diǎn),為了減少計(jì)算量,我們進(jìn)行降維處理到144個(gè)點(diǎn)。PCA、PAA、SAX等一系列方法是常用的降維方法,此類方法在降低數(shù)據(jù)維度的同時(shí)還能最大程度地保持?jǐn)?shù)據(jù)的特征。通過(guò)比較,PAA在降到同樣的維度(144維)時(shí),還能保留更多的時(shí)序數(shù)據(jù)細(xì)節(jié),具體對(duì)比如下圖7所示。

          4. 模型訓(xùn)練:使用標(biāo)注的樣本數(shù)據(jù),在CNN分類器中進(jìn)行訓(xùn)練,最終輸出分類模型。
          5beaf9837c353758dbea0bbcf46a65b6.webp圖7 PAA、SAX降維方法對(duì)比

          3.3 周期型指標(biāo)異常檢測(cè)

          3.3.1 異常檢測(cè)方法

          基于上述時(shí)序數(shù)據(jù)分類工作,本文能夠相對(duì)準(zhǔn)確地將時(shí)序數(shù)據(jù)分為周期型、平穩(wěn)型和無(wú)規(guī)律波動(dòng)型三類。在這三種類型中,周期型最為常見(jiàn),占比30%以上,并且包含了大多數(shù)業(yè)務(wù)指標(biāo),業(yè)務(wù)請(qǐng)求量、訂單數(shù)等核心指標(biāo)均為周期型,所以本文優(yōu)先選擇周期型指標(biāo)進(jìn)行自動(dòng)異常檢測(cè)的探索。對(duì)于大量的時(shí)序數(shù)據(jù),通過(guò)規(guī)則進(jìn)行判斷已經(jīng)不能滿足,需要通用的解決方案,能對(duì)所有周期型指標(biāo)進(jìn)行異常檢測(cè),而非一個(gè)指標(biāo)一套完全獨(dú)立的策略,機(jī)器學(xué)習(xí)方法是首選。

          論文Opprentice[8]和騰訊開(kāi)源的Metis[9]采用監(jiān)督學(xué)習(xí)的方式進(jìn)行異常檢測(cè),其做法如下:首先,進(jìn)行樣本標(biāo)注得到樣本數(shù)據(jù)集,然后進(jìn)行特征提取得到特征數(shù)據(jù)集,使用特征數(shù)據(jù)集在指定的學(xué)習(xí)系統(tǒng)上進(jìn)行訓(xùn)練,得到異常分類模型,最后把模型用于實(shí)時(shí)檢測(cè)。監(jiān)督學(xué)習(xí)整體思路[10]如下圖8所示,其中(x1,y1),(x2,y2),…,(xn,yn)是訓(xùn)練數(shù)據(jù)集,學(xué)習(xí)系統(tǒng)由訓(xùn)練數(shù)據(jù)學(xué)習(xí)一個(gè)分類器P(Y∣X)或Y=f(X),分類系統(tǒng)通過(guò)學(xué)習(xí)到的分類器對(duì)新的輸入實(shí)例xn+1進(jìn)行分類,預(yù)測(cè)其輸出的類別yn+1。

          d0547344dd0876775a4fa9b193e9b191.webp圖8 監(jiān)督學(xué)習(xí)在分類問(wèn)題中的應(yīng)用

          3.3.2 異常注入

          一般而言,在樣本數(shù)據(jù)集中,正負(fù)樣本比例如果極度不均衡(比如1:5,或者更懸殊),那么分類器分類時(shí)就會(huì)傾向于高比例的那一類樣本(假如負(fù)樣本占較大比例,則會(huì)表現(xiàn)為負(fù)樣本Recall過(guò)高,正樣本Recall低,而整體的Accuracy依然會(huì)有比較好的表現(xiàn)),在一個(gè)極度不均衡的樣本集中,由于機(jī)器學(xué)習(xí)會(huì)對(duì)每個(gè)數(shù)據(jù)進(jìn)行學(xué)習(xí),那么多數(shù)數(shù)據(jù)樣本帶有的信息量就比少數(shù)樣本信息量大,會(huì)對(duì)分類器學(xué)習(xí)過(guò)程中造成干擾,導(dǎo)致分類不準(zhǔn)確。

          在實(shí)際生產(chǎn)環(huán)境中,時(shí)序數(shù)據(jù)異常點(diǎn)是非常少見(jiàn)的,99%以上的數(shù)據(jù)都是正常的。如果使用真實(shí)生產(chǎn)環(huán)境的數(shù)據(jù)進(jìn)行樣本標(biāo)注,將會(huì)導(dǎo)致正負(fù)樣本比例嚴(yán)重失衡,導(dǎo)致精召率無(wú)法滿足要求。為了解決基于監(jiān)督學(xué)習(xí)的異常檢測(cè)異常點(diǎn)過(guò)少的問(wèn)題,本文設(shè)計(jì)一種針對(duì)周期型指標(biāo)的自動(dòng)異常注入算法,保證異常注入足夠隨機(jī)且包含各種異常場(chǎng)景。

          時(shí)序數(shù)據(jù)的異常分為兩種基本類型,異常上漲和異常下跌,如下圖9(圖中數(shù)據(jù)使用Curve[11]標(biāo)注),通常異常會(huì)持續(xù)一段時(shí)間,然后逐步恢復(fù),恢復(fù)過(guò)程或快或慢,影響異常兩側(cè)的值,稱之為漣漪效應(yīng)(Ripple Effect),類似石頭落入水中,波紋擴(kuò)散的情形。受到該場(chǎng)景的啟發(fā),異常注入思路及步驟如下:

          2f608f2872508b093bd7743539f05c93.webp

          圖9 異常case中異常數(shù)據(jù)分布

          1. 給定一段時(shí)序值S,確定注入的異常個(gè)數(shù)N,將時(shí)序數(shù)據(jù)劃分為N塊。

          2. 在其中的一個(gè)區(qū)域X中,隨機(jī)選定一個(gè)點(diǎn)Xi作為異常種子點(diǎn)。

          3. 設(shè)定異常點(diǎn)數(shù)目范圍,基于此范圍產(chǎn)生隨機(jī)出異常點(diǎn)數(shù)n,異常點(diǎn)隨機(jī)分布在異常種子兩側(cè),左側(cè)和右側(cè)的數(shù)目隨機(jī)產(chǎn)生。

          4. 對(duì)于具體的異常點(diǎn),根據(jù)其所在位置,選擇該點(diǎn)鄰域范圍數(shù)據(jù)作為參考數(shù)據(jù)集m,需要鄰域在設(shè)定的范圍內(nèi)隨機(jī)產(chǎn)生。

          5. 產(chǎn)生一個(gè)隨機(jī)數(shù),若為奇數(shù),則為上漲,否則下跌?;趨⒖紨?shù)據(jù)集m,根據(jù)3Sigma原理,生成超出±3σ的數(shù)據(jù)作為異常值。

          6. 設(shè)定一個(gè)影響范圍,在設(shè)定范圍內(nèi)隨機(jī)產(chǎn)生影響的范圍大小,左右兩側(cè)的影響范圍也隨機(jī)分配,同時(shí)隨機(jī)產(chǎn)生異常衰減的方式,包括簡(jiǎn)單移動(dòng)平均、加權(quán)移動(dòng)平均、指數(shù)加權(quán)移動(dòng)平均三種方式。

          7. 上述過(guò)程只涉及突增突降場(chǎng)景,而對(duì)于同時(shí)存在升降的場(chǎng)景,通過(guò)分別生成上漲和下跌的上述兩個(gè)異常,然后疊加在一起即可。

          通過(guò)上面的異常注入步驟,能比較好地模擬出周期型指標(biāo)在生產(chǎn)環(huán)境中的各種異常場(chǎng)景,上述過(guò)程中各個(gè)步驟的數(shù)據(jù)都是隨機(jī)產(chǎn)生,所以產(chǎn)生的異常案例各不相同,從而能為我們生產(chǎn)出足夠多的異常樣本。為了保證樣本集的高準(zhǔn)確性,我們對(duì)于注入異常后的指標(biāo)數(shù)據(jù)還會(huì)進(jìn)行標(biāo)注,以去除部分注入的非異常數(shù)據(jù)。具體異常數(shù)據(jù)生成效果如圖10所示,其中藍(lán)色線為原始數(shù)據(jù),紅色線為注入的異常,可以看出注入異常與線上環(huán)境發(fā)生故障時(shí)相似,注入的異常隨機(jī)性較大。

          5b7d9a9d245546f732e0dcc78a18c2b5.webp圖10 異常注入效果圖

          3.3.3 特征工程

          針對(duì)周期型指標(biāo),經(jīng)標(biāo)注產(chǎn)生樣本數(shù)據(jù)集后,需要設(shè)計(jì)特征提取器進(jìn)行特征提取,Opprentice中設(shè)計(jì)的幾種特征提取器如圖11所示:acf67b853f96a685b34206c0efdc06c2.webp圖11 論文Opprentice特征提取器

          上述特征主要是一些簡(jiǎn)單的檢測(cè)器,包括如固定閾值、差分、移動(dòng)平均、SVD分解等。Metis將其分為三種特征,一是統(tǒng)計(jì)特征,包括方差、均值、偏度等統(tǒng)計(jì)學(xué)特征;二是擬合特征,包括如移動(dòng)平均、指數(shù)加權(quán)移動(dòng)平均等特征;三是分類特征,包含一些自相關(guān)性、互相關(guān)性等特征。參考上述提及的特征提取方法,本文設(shè)計(jì)了一套特征工程,區(qū)別于上述特征提取方法,本文對(duì)提取的結(jié)果用孤立森林進(jìn)行了一層特征抽象,使得模型的泛化能力更強(qiáng),所選擇的特征及說(shuō)明如下圖12所示:

          fa164b990da88c2fa0566efc9eba2636.webp圖12 特征選擇及說(shuō)明

          3.3.4 模型訓(xùn)練及實(shí)時(shí)檢測(cè)

          參考監(jiān)督學(xué)習(xí)在分類問(wèn)題中的應(yīng)用思路,對(duì)周期型指標(biāo)自動(dòng)異常檢測(cè)方案具體設(shè)計(jì)如圖下13所示,主要分為離線模型訓(xùn)練和實(shí)時(shí)檢測(cè)兩大部分,模型訓(xùn)練主要根據(jù)樣本數(shù)據(jù)集訓(xùn)練生成分類模型,實(shí)時(shí)檢測(cè)利用分類模型進(jìn)行實(shí)時(shí)異常檢測(cè)。具體過(guò)程說(shuō)明如下:

          1. 離線模型訓(xùn)練:基于標(biāo)注的樣本數(shù)據(jù)集,使用設(shè)計(jì)的特征提取器進(jìn)行特征提取,生成特征數(shù)據(jù)集,通過(guò)Xgboost進(jìn)行訓(xùn)練,得到分類模型,并存儲(chǔ)。

          2. 實(shí)時(shí)檢測(cè):線上實(shí)時(shí)檢測(cè)時(shí),時(shí)序數(shù)據(jù)先經(jīng)過(guò)預(yù)檢測(cè)(降低進(jìn)入特征提取環(huán)節(jié)概率,減少計(jì)算壓力),然后根據(jù)設(shè)計(jì)的特征工程進(jìn)行特征提取,再加載離線訓(xùn)練好的模型,進(jìn)行異常分類。

          3. 數(shù)據(jù)反饋:如果判定為異常,將發(fā)出告警。進(jìn)一步地,用戶可根據(jù)實(shí)際情況對(duì)告警進(jìn)行反饋,反饋結(jié)果將加入樣本數(shù)據(jù)集中,用于定時(shí)更新檢測(cè)模型。
          4dac14902e9e187b7b271e05aefc2089.webp圖13 模型檢測(cè)和實(shí)時(shí)檢測(cè)流說(shuō)明

          3.3.5 特殊場(chǎng)景優(yōu)化

          通過(guò)上述實(shí)踐,本文得到一套可完整運(yùn)行的周期型指標(biāo)異常檢測(cè)系統(tǒng),在該系統(tǒng)應(yīng)用到生產(chǎn)環(huán)境的過(guò)程中,也遇到不少問(wèn)題,比如低峰期(小數(shù)值)波動(dòng)幅度較大,節(jié)假日和周末趨勢(shì)和工作日趨勢(shì)完全不同,數(shù)據(jù)存在整體大幅抬升或下降,部分規(guī)律波動(dòng)時(shí)間軸上存在偏移,這些情況都有可能產(chǎn)生誤告。本文也針對(duì)這些場(chǎng)景,分別提出對(duì)應(yīng)的優(yōu)化策略,從而減少周期型指標(biāo)在這些場(chǎng)景下的誤告,提高異常檢測(cè)的精召率。

          1)低峰期場(chǎng)景:低峰期主要表現(xiàn)是小數(shù)值高波動(dòng),低峰期的波動(dòng)比較普遍,但是常規(guī)檢測(cè)時(shí),只獲取當(dāng)前點(diǎn)前后7min的鄰域內(nèi)的數(shù)據(jù),可能無(wú)法獲取到本身已經(jīng)出現(xiàn)過(guò)多次的較大波動(dòng),導(dǎo)致誤判為異常。所以對(duì)于低峰期,需要擴(kuò)大比較窗口,容納到更多的正常的較大波動(dòng)場(chǎng)景,從而減少被誤判。如下圖14所示,紅色是當(dāng)日數(shù)據(jù),灰色是上周同日數(shù)據(jù),如果判斷窗口為w1,w1內(nèi)藍(lán)色點(diǎn)有可能被認(rèn)為是異常點(diǎn),而時(shí)間窗口范圍擴(kuò)大到w2后,大幅波動(dòng)的藍(lán)色點(diǎn)和綠色點(diǎn)都會(huì)被捕獲到,出現(xiàn)類似大幅波動(dòng)時(shí)不再被判定為異常,至于低峰期范圍可以通過(guò)歷史數(shù)據(jù)計(jì)算進(jìn)行識(shí)別。

          f5e2f9d2e184caf675162c694ff5b30a.webp圖14 低峰期時(shí)不同時(shí)段的相似大幅波動(dòng)

          2)節(jié)假日?qǐng)鼍?/span>:節(jié)假日前一天以及節(jié)假日之后一周的數(shù)據(jù),和正常周期的趨勢(shì)都會(huì)有較大差別,可能會(huì)出現(xiàn)誤告。本文通過(guò)提前配置需要進(jìn)行節(jié)假日檢測(cè)的日期,在設(shè)置的日期范圍內(nèi),除了進(jìn)行正常的檢測(cè)流程,對(duì)于已經(jīng)檢測(cè)出異常的數(shù)據(jù)點(diǎn),會(huì)再進(jìn)入到節(jié)假日檢測(cè)流程,都異常才會(huì)觸發(fā)告警。節(jié)假日檢測(cè)會(huì)取最近1h的數(shù)據(jù),分別計(jì)算其波動(dòng)比、周同比、日環(huán)比等數(shù)據(jù),當(dāng)前時(shí)間的這些指標(biāo)通過(guò)“孤立森林”判斷都為異常,才會(huì)認(rèn)為數(shù)據(jù)是真正異常。除此之外,對(duì)于節(jié)假日,模型的敏感度會(huì)適當(dāng)調(diào)低以適應(yīng)節(jié)假日?qǐng)鼍啊?/span>

          3)整體抬升/下降場(chǎng)景:場(chǎng)景特點(diǎn)如下圖15所示,在該場(chǎng)景下,會(huì)設(shè)置一個(gè)抬升/下跌率,比如80%,如果今天最近1h數(shù)據(jù)80%相對(duì)昨日和上周都上漲,則認(rèn)為是整體抬升,都下跌則認(rèn)為是整體下降。如果出現(xiàn)整體抬升情況,會(huì)降低模型敏感度,并且要求當(dāng)前日環(huán)比、周同比在1h數(shù)據(jù)中均為異常點(diǎn),才會(huì)判定當(dāng)前的數(shù)據(jù)異常。

          5656a87b547c3cc3ea4867a7dd8a04ec.webp圖15 整體抬升下降場(chǎng)景

          4)規(guī)律波動(dòng)偏移場(chǎng)景:部分指標(biāo)存在周期性波動(dòng),但是時(shí)間上會(huì)有所偏移,如圖16所示案例中時(shí)序數(shù)據(jù)由于波動(dòng)時(shí)間偏移導(dǎo)致誤告。本文設(shè)計(jì)一種相似序列識(shí)別算法,在歷史數(shù)據(jù)中找出波動(dòng)相似的序列,如果存在足夠多的相似波動(dòng)序列,則認(rèn)為該波動(dòng)為正常波動(dòng)。相似序列提取過(guò)程如下:最近n分鐘的時(shí)序作為基礎(chǔ)序列x,獲取檢測(cè)時(shí)刻歷史14天鄰域內(nèi)的數(shù)據(jù)(如前后30min),在鄰域數(shù)據(jù)中指定滑動(dòng)窗口(如3min)滑動(dòng),把鄰域數(shù)據(jù)分為多個(gè)長(zhǎng)度為n的序列集Y,計(jì)算基礎(chǔ)序列x與Y中每個(gè)序列的DTW距離,通過(guò)“孤立森林”對(duì)距離序列進(jìn)行異常判斷,對(duì)于被判定為異常值的DTW距離,它所對(duì)應(yīng)的序列將被視為相似序列。如果相似序列個(gè)數(shù)超出設(shè)定閾值,則認(rèn)為當(dāng)前波動(dòng)為規(guī)律偏移波動(dòng),屬于正?,F(xiàn)象。根據(jù)上述方法,提取到對(duì)應(yīng)的相似序列如圖16右邊所示,其中紅實(shí)線為基礎(chǔ)序列。

          a2780b78a18d29098b708408847b9444.webp圖16 規(guī)律波動(dòng)偏移相似序列提取

          3.4 異常檢測(cè)能力平臺(tái)化

          為了把上述時(shí)序數(shù)據(jù)異常檢測(cè)探索的結(jié)果進(jìn)行落地,服務(wù)運(yùn)維部與交易系統(tǒng)平臺(tái)部設(shè)計(jì)和開(kāi)發(fā)了時(shí)序數(shù)據(jù)異常檢測(cè)系統(tǒng)Horae。Horae致力于時(shí)間序列異常檢測(cè)流程的編排與調(diào)優(yōu),處理對(duì)象是時(shí)序數(shù)據(jù),輸出是檢測(cè)流程和檢測(cè)結(jié)果,核心算法是異常檢測(cè)算法、時(shí)間序列預(yù)測(cè)算法以及針對(duì)時(shí)間序列的特征提取算法。除此之外,Horae還會(huì)針對(duì)特殊的場(chǎng)景開(kāi)發(fā)異常檢測(cè)算法。Horae核心能力是可根據(jù)提供的算法,編排不同的檢測(cè)流程,對(duì)指標(biāo)進(jìn)行自動(dòng)分類,并針對(duì)指標(biāo)所屬類型自動(dòng)選擇合適的檢測(cè)流程,進(jìn)行流程調(diào)優(yōu)得到該指標(biāo)下的最優(yōu)參數(shù),從而確保能適配指標(biāo)并得到更高的精召率,為各個(gè)對(duì)時(shí)序數(shù)據(jù)異常檢測(cè)有需求的團(tuán)隊(duì)提供高準(zhǔn)確率的異常檢測(cè)服務(wù)。

          3.4.1 Horae系統(tǒng)架構(gòu)設(shè)計(jì)

          Horae系統(tǒng)由四個(gè)模塊組成:數(shù)據(jù)接入、實(shí)時(shí)檢測(cè)、實(shí)驗(yàn)?zāi)K和算法模塊。用戶通過(guò)數(shù)據(jù)接入模塊注冊(cè)需要監(jiān)聽(tīng)時(shí)序數(shù)據(jù)的消息隊(duì)列,Horae系統(tǒng)將監(jiān)聽(tīng)注冊(cè)的Topic采集時(shí)序數(shù)據(jù),并根據(jù)粒度(例如分鐘、小時(shí)或天)更新每個(gè)時(shí)間序列,每個(gè)時(shí)序點(diǎn)都存儲(chǔ)到時(shí)序數(shù)據(jù)庫(kù)中,實(shí)時(shí)檢測(cè)模塊對(duì)每個(gè)時(shí)序點(diǎn)執(zhí)行異常檢測(cè),當(dāng)檢測(cè)到異常時(shí),通過(guò)消息隊(duì)列將異常信息傳輸給用戶。下圖17詳細(xì)展示了Horae系統(tǒng)的整體架構(gòu)圖。

          1. 數(shù)據(jù)接入:用戶可以通過(guò)創(chuàng)建數(shù)據(jù)源用于數(shù)據(jù)上報(bào),數(shù)據(jù)源可以包含一個(gè)或多個(gè)指標(biāo),指標(biāo)更新頻率最小為一分鐘。不同數(shù)據(jù)源中指標(biāo)的時(shí)序數(shù)據(jù)相互隔離,時(shí)序數(shù)據(jù)更新到使用Elasticsearch改造后的時(shí)序數(shù)據(jù)庫(kù)中。
          2. 實(shí)時(shí)檢測(cè):采集到實(shí)時(shí)的時(shí)序數(shù)據(jù)后,會(huì)根據(jù)指標(biāo)綁定的執(zhí)行流程立即進(jìn)行異常檢測(cè),如果沒(méi)有訓(xùn)練調(diào)優(yōu),會(huì)先執(zhí)行訓(xùn)練調(diào)優(yōu)以保證更佳的精召率。實(shí)時(shí)檢測(cè)的結(jié)果會(huì)通過(guò)消息隊(duì)列通知到用戶,用戶根據(jù)異常檢測(cè)的結(jié)果進(jìn)行進(jìn)一步處理判斷是否需要發(fā)出告警。
          3. 實(shí)驗(yàn)?zāi)K:該模塊主要功能是樣本管理、算法注冊(cè)、流程編排、模型訓(xùn)練和評(píng)估、模型發(fā)布。該模塊提供樣本管理功能,可對(duì)樣本進(jìn)行標(biāo)注和存儲(chǔ);對(duì)于已經(jīng)實(shí)現(xiàn)的算法,可以注冊(cè)到系統(tǒng)中,供流程編排使用;通過(guò)算法編排得到的流程,可以用在模型訓(xùn)練或者異常檢測(cè)中;訓(xùn)練流程會(huì)使用到標(biāo)注好的樣本數(shù)據(jù)調(diào)用算法離線服務(wù)進(jìn)行離線訓(xùn)練并存儲(chǔ)模型;對(duì)于已經(jīng)編排好的檢測(cè)流程,可以對(duì)指標(biāo)進(jìn)行模擬觀察檢測(cè)異常檢測(cè)效果,或者離線回歸判斷檢測(cè)流程在該指標(biāo)上的具體精召率數(shù)據(jù)。
          4. 算法模塊:算法模塊提供了所有在實(shí)驗(yàn)?zāi)K注冊(cè)的異常檢測(cè)算法的具體實(shí)現(xiàn),算法模塊既可以執(zhí)行單個(gè)算法,也可以接受多個(gè)算法編排的流程進(jìn)行執(zhí)行。當(dāng)前支持的算法大類主要有預(yù)處理算法(異常值去除、空值填充、降維、歸一化等),時(shí)序特征算法(統(tǒng)計(jì)類特征、擬合特征、分類特征等),機(jī)器學(xué)習(xí)類算法(RF、SVM、XGBoost、GRU、LSTM、CNN、聚類算法等),檢測(cè)類算法(孤立森林、LOF、SVM、3Sigma、四分位、IQR等),預(yù)測(cè)類算法(Ewma、Linear Weighted MA、Holt-Winters、STL、SAIMAX、Prophet等),自定義算法(形變分析、同環(huán)比、波動(dòng)比等)。

          07d1b360c0e53321d22a55171874428c.webp圖17 Horae時(shí)序數(shù)據(jù)異常檢測(cè)系統(tǒng)架構(gòu)圖

          3.4.2 算法注冊(cè)和模型編排

          算法模型是對(duì)算法的抽象,通過(guò)唯一字符串標(biāo)識(shí)算法模型,注冊(cè)算法時(shí)需要指定算法的類型、接口、參數(shù)、返回值和處理單個(gè)時(shí)序點(diǎn)所需要加載的時(shí)序數(shù)據(jù)配置。成功注冊(cè)的算法模型根據(jù)算法類型的不同,會(huì)生成用于模型編排的算法組件或?qū)Ξ惓z測(cè)模型進(jìn)行訓(xùn)練的組件。用于模型編排的算法組件主要包括:預(yù)處理算法、時(shí)序特征算法、評(píng)估算法、預(yù)測(cè)算法、分類算法、異常檢測(cè)算法等,用于模型訓(xùn)練的算法分為兩大類:參數(shù)調(diào)優(yōu)和機(jī)器學(xué)習(xí)模型訓(xùn)練。

          注冊(cè)后的算法模型通常不會(huì)直接用于異常檢測(cè),會(huì)對(duì)算法模型進(jìn)行編排后得到一個(gè)流程模型,流程模型可以用于執(zhí)行異常檢測(cè)或者執(zhí)行訓(xùn)練。實(shí)驗(yàn)?zāi)K支持兩種類型的流程模型:執(zhí)行流程和訓(xùn)練流程。執(zhí)行流程是一個(gè)異常檢測(cè)流程,指定指標(biāo)和檢測(cè)時(shí)間段,得到檢測(cè)時(shí)間段每個(gè)時(shí)序點(diǎn)的異常分值;訓(xùn)練流程是一個(gè)執(zhí)行訓(xùn)練的流程模型,主要包括參數(shù)調(diào)優(yōu)訓(xùn)練流程和機(jī)器學(xué)習(xí)模型訓(xùn)練流程。使用算法進(jìn)行流程編排如下圖18所示,左側(cè)菜單為算法組件,中間區(qū)域可對(duì)算法執(zhí)行流程進(jìn)行編排調(diào)整,右側(cè)區(qū)域是具體算法的參數(shù)設(shè)置。

          556d57c1d8aa41a3add26527adb9bda7.webp圖18 流程編排示意圖

          3.4.3 離線訓(xùn)練和實(shí)時(shí)檢測(cè)

          在模型編排階段,可編排執(zhí)行流程和訓(xùn)練流程,執(zhí)行流程主要用在指標(biāo)實(shí)時(shí)異常檢測(cè)過(guò)程,而訓(xùn)練流程主要用在離線模型訓(xùn)練和參數(shù)調(diào)優(yōu)。執(zhí)行流程由流程配置和異常分值配置構(gòu)成,由實(shí)驗(yàn)?zāi)K的流程調(diào)度引擎負(fù)責(zé)執(zhí)行調(diào)度,下圖19展示了執(zhí)行流程的詳細(xì)構(gòu)成。流程調(diào)度引擎在對(duì)執(zhí)行流程調(diào)度執(zhí)行之前,會(huì)從流程的最深葉子節(jié)點(diǎn)的算法組件開(kāi)始遞歸計(jì)算需要加載的時(shí)序數(shù)據(jù)集,根據(jù)流程中算法組件的參數(shù)配置,加載前置訓(xùn)練流程的訓(xùn)練結(jié)果,最后對(duì)流程中的算法組件依次調(diào)度執(zhí)行,得到檢測(cè)時(shí)間段每個(gè)時(shí)序點(diǎn)的異常分值。最終實(shí)現(xiàn)后的執(zhí)行流程編排如圖18所示。

          ca956e1db3f8cefa6f815c27c6117a6c.webp圖19 執(zhí)行流程組成和處理過(guò)程

          訓(xùn)練流程由流程配置、訓(xùn)練算法、樣本加載配置和訓(xùn)練頻次等信息構(gòu)成,由實(shí)驗(yàn)?zāi)K的流程調(diào)度引擎負(fù)責(zé)調(diào)度執(zhí)行,下圖20展示了訓(xùn)練流程的詳細(xì)構(gòu)成。訓(xùn)練流程主要分為兩大類,參數(shù)調(diào)優(yōu)訓(xùn)練和機(jī)器學(xué)習(xí)模型訓(xùn)練。參數(shù)調(diào)優(yōu)訓(xùn)練是指為需要調(diào)優(yōu)的參數(shù)設(shè)置參數(shù)值迭代范圍或者枚舉值,通過(guò)貝葉斯調(diào)優(yōu)算法對(duì)參數(shù)進(jìn)行調(diào)優(yōu),得到最優(yōu)參數(shù)組合;機(jī)器學(xué)習(xí)模型訓(xùn)練則通過(guò)設(shè)計(jì)好特征工程,設(shè)置分類器和超參數(shù)范圍后調(diào)優(yōu)得到機(jī)器學(xué)習(xí)模型文件。訓(xùn)練流程執(zhí)行訓(xùn)練的樣本集來(lái)源于人工標(biāo)注的樣本或者基于自動(dòng)樣本構(gòu)造功能生成的樣本。訓(xùn)練流程編排具體過(guò)程和執(zhí)行流程類似,不同的是訓(xùn)練流程可設(shè)置定時(shí)任務(wù)執(zhí)行,訓(xùn)練的結(jié)果會(huì)存儲(chǔ)供后續(xù)使用。

          60f85da62c9ec0c59e08a174817e365d.webp圖20 訓(xùn)練流程組成和處理過(guò)程

          異常檢測(cè)模型中會(huì)包含很多憑借經(jīng)驗(yàn)設(shè)定的超參數(shù),不同的指標(biāo)可能需要設(shè)置不同的參數(shù)值,保證更高的精召率。而指標(biāo)數(shù)據(jù)會(huì)隨著時(shí)間發(fā)生變化,設(shè)置參數(shù)需要定期的訓(xùn)練和更新,在實(shí)驗(yàn)?zāi)K中可以為訓(xùn)練流程設(shè)置定時(shí)任務(wù),實(shí)驗(yàn)?zāi)K會(huì)定時(shí)調(diào)度訓(xùn)練流程生成離線訓(xùn)練任務(wù),訓(xùn)練任務(wù)執(zhí)行完成可以看到訓(xùn)練結(jié)果和效果。下圖21示例展示了一個(gè)參數(shù)調(diào)優(yōu)訓(xùn)練流程的示例。

          6f9f72eca9fbeac11cf455ddda791c1b.webp圖21 參數(shù)調(diào)優(yōu)訓(xùn)練結(jié)果示例

          3.4.4 模型案例和結(jié)果評(píng)估

          根據(jù)在周期型指標(biāo)上探索的結(jié)果,在Horae上編排分類模型訓(xùn)練流程,訓(xùn)練和測(cè)試所使用的樣本數(shù)是28000個(gè),其中用于訓(xùn)練的比例是75%,用于驗(yàn)證的比例是25%,具體分類模型訓(xùn)練結(jié)果如下圖22所示,在測(cè)試集上的準(zhǔn)確率94%,召回率89%。同時(shí)編排了與之對(duì)應(yīng)的執(zhí)行流程,它的檢測(cè)流程除了異常分類,還主要包含了空值填充、預(yù)檢測(cè)、特征提取、分類判斷、低峰期判斷、偏移波動(dòng)判斷等邏輯,該執(zhí)行流程適用范圍是周期型和穩(wěn)定型指標(biāo)。除此之外,還提供了流程調(diào)優(yōu)能力,檢測(cè)流程中的每個(gè)算法可以暴露其超參數(shù),對(duì)于具體的指標(biāo),通過(guò)該指標(biāo)的樣本數(shù)據(jù)可以訓(xùn)練得到該流程下的一組較優(yōu)超參數(shù),從而提高該指標(biāo)的異常檢測(cè)的精召率。

          e3e5589bc8d468bd8cc8c76c6f36a1e4.webp圖22 異常分類模型訓(xùn)練結(jié)果

          該異常檢測(cè)流程應(yīng)用到生產(chǎn)環(huán)境的指標(biāo)后,具體檢測(cè)效果相關(guān)案例如下圖23所示,對(duì)于周期型指標(biāo),能及時(shí)準(zhǔn)確地發(fā)現(xiàn)異常,對(duì)異常點(diǎn)進(jìn)行反饋,準(zhǔn)確率達(dá)到90%以上。除此之外,還對(duì)比了形變分析異常檢測(cè),對(duì)于生產(chǎn)環(huán)境中遇到的三個(gè)形變分析無(wú)法發(fā)現(xiàn)的4個(gè)案例,周期型指標(biāo)異常檢測(cè)流程能發(fā)現(xiàn)其中3個(gè),表現(xiàn)優(yōu)于形變分析。

          c4f823a81a31599aaeb172fe3caa934f.webp圖23 周期型指標(biāo)異常檢測(cè)模型生產(chǎn)環(huán)境檢測(cè)結(jié)果

          四、總結(jié)與展望

          時(shí)序數(shù)據(jù)異常檢測(cè)作為AIOps中故障發(fā)現(xiàn)環(huán)節(jié)的核心,當(dāng)前經(jīng)過(guò)探索和實(shí)踐,已經(jīng)在周期型指標(biāo)異常檢測(cè)上取得了一定的成績(jī),并落地到Horae時(shí)序異常檢測(cè)系統(tǒng)中。在時(shí)序數(shù)據(jù)異常檢測(cè)部分,后續(xù)會(huì)陸續(xù)實(shí)現(xiàn)平穩(wěn)型、無(wú)規(guī)律波動(dòng)型指標(biāo)自動(dòng)異常檢測(cè),增加指標(biāo)數(shù)據(jù)預(yù)測(cè)相關(guān)能力,提高檢測(cè)性能,從而實(shí)現(xiàn)所有類型的海量指標(biāo)自動(dòng)異常檢測(cè)的目的。

          除此之外,在告警觸達(dá)方面,我們當(dāng)前在進(jìn)行告警收斂、降噪和抑制相關(guān)的規(guī)則和算法的探索,致力于提供精簡(jiǎn)有效的信息,減少告警風(fēng)暴及干擾;在故障定位方面,我們已經(jīng)基于規(guī)則在定位上取得比較不錯(cuò)的效果,后續(xù)還會(huì)進(jìn)行更全面的定位場(chǎng)景覆蓋和關(guān)聯(lián)性分析、根因分析、知識(shí)圖譜相關(guān)的探索,通過(guò)算法和規(guī)則提升故障定位的精召率。因篇幅所限,告警觸達(dá)(告警中心)和故障定位(雷達(dá))兩部分內(nèi)容將會(huì)在后續(xù)的文章中詳細(xì)進(jìn)行分享,敬請(qǐng)期待。

          五、參考資料

          [1] 周志華. 機(jī)器學(xué)習(xí): 發(fā)展與未來(lái)[R]. 報(bào)告地: 深圳, 2016.

          [2] 美團(tuán)實(shí)時(shí)監(jiān)控系統(tǒng)CAT[EB/OL]. https://tech.meituan.com/CAT_in_Depth_Java_Application_Monitoring.html, 2018-11-01.

          [3] 美團(tuán)系統(tǒng)指標(biāo)監(jiān)控Mt-Falcon[EB/OL]. https://tech.meituan.com/Mt-Falcon_Monitoring_System.html, 2017-02-24.

          [4] Ding R, Wang Q, Dang Y, et al. Yading: fast clustering of large-scale time series data[J]. Proceedings of the VLDB Endowment, 2015, 8(5): 473-484.

          [5] Paparrizos J, Gravano L. k-shape: Efficient and accurate clustering of time series[C]. Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. ACM, 2015: 1855-1870.

          [6] ?H. Ren, Q. Zhang, B. Xu, Y. Wang, C. Yi, C. Huang, X. Kou, T. Xing, M. Yang, and J. Tong, “Time-series anomaly detection serviceat microsoft,” in Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 3009–3017, ACM, Jun. 2019.

          [7] Tom Brander. Time series classification with Tensorflow[EB/OL]. https://burakhimmetoglu.com/2017/08/22/time-series-classification-with-tensorflow, 2017-08-22.

          [8] Liu D, Zhao Y, Xu H, et al. Opprentice: Towards practical and automatic anomaly detection through machine learning[C]//Proceedings of the 2015 Internet Measurement Conference. ACM, 2015: 211-224.

          [9] Metis is a learnware platform in the field of AIOps[EB/OL]. https://github.com/Tencent/Metis, 2018-10-12.

          [10] 李航. 統(tǒng)計(jì)學(xué)習(xí)方法 [M]. 第2版. 北京: 清華大學(xué)出版社, 2019.28-29.

          [11] An tool to help label anomalies on time-series data[EB/OL]. https://github.com/baidu/Curve, 2018-08-07.

          六、作者簡(jiǎn)介

          胡原、錦冬、俊峰,來(lái)自基礎(chǔ)技術(shù)部-服務(wù)運(yùn)維部;長(zhǎng)偉、永強(qiáng),來(lái)自到家事業(yè)群-交易系統(tǒng)平臺(tái)部。

          end



          瀏覽 43
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产午夜一区 | 丁香五月桃花网 | 国精产品一区二区三区糖心269 | 人人妻人人操人人摸 | 西西4444www无码大胆 |