自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

故障召回率提升34%,攜程智能異常檢測實踐

開發(fā) 新聞
指標(biāo)異常檢測是智能運維領(lǐng)域的重要落地場景,攜程AIOPS團(tuán)隊致力于提升告警質(zhì)量,尋找告警效率、準(zhǔn)確率和真實故障召回率三者之間的平衡點。

作者簡介

零一,攜程算法工程師,專注于智能告警、容量管理、根因定位等領(lǐng)域。

一、背景

攜程作為在線旅游公司,對外提供機票、酒店、火車票、度假等豐富的旅游產(chǎn)品,其系統(tǒng)穩(wěn)定性關(guān)乎用戶是否具有順滑的出行體驗。然而,流量激增、代碼發(fā)布、運維變更等都會給系統(tǒng)穩(wěn)定性帶來挑戰(zhàn)。

我們在2020年對生產(chǎn)故障的“發(fā)現(xiàn)-定位-解決效率”提出了“1-5-10”的目標(biāo)(即一分鐘發(fā)現(xiàn)故障,五分鐘定位故障,十分鐘解決故障),這無疑對監(jiān)控告警提出了很高的要求。訂單量是生產(chǎn)故障異常檢測場景中最核心最顯性的指標(biāo),訂單量在自身形態(tài)上具有周期性、規(guī)律上升和下降、業(yè)務(wù)高峰和低谷等特點,影響因素包括節(jié)假日、促銷等。倘若數(shù)以萬計的業(yè)務(wù)線通過人工配置規(guī)則的方式來覆蓋到所有業(yè)務(wù)場景,并且做到高準(zhǔn)確率和召回率,是非常不現(xiàn)實的。因此,迫切需要一套配置費力度低、普適性強、準(zhǔn)確率高、時效性強的智能異常檢測算法體系來及時發(fā)現(xiàn)異常。

指標(biāo)異常檢測是智能運維領(lǐng)域的重要落地場景,攜程AIOPS團(tuán)隊致力于提升告警質(zhì)量,尋找告警效率、準(zhǔn)確率和真實故障召回率三者之間的平衡點。我們將統(tǒng)計學(xué)方法和機器學(xué)習(xí)方法結(jié)合,根據(jù)指標(biāo)的歷史數(shù)據(jù),將訓(xùn)練的多個模型組成一套異常檢測系統(tǒng),在覆蓋真實故障的基礎(chǔ)上,減少告警數(shù)量,產(chǎn)生更有價值的告警。

二、告警質(zhì)量提升

2.1 更準(zhǔn)確的預(yù)測

時序類異常檢測算法通常是對指標(biāo)進(jìn)行預(yù)測,通過對比實際值與預(yù)測值的偏離情況來判斷時刻T是否異常。與其他算法相比,時序類異常檢測算法適用于更多的數(shù)據(jù)類型,并且檢測效果也是最優(yōu)的。

為實現(xiàn)對業(yè)務(wù)線的精準(zhǔn)預(yù)測,前期我們嘗試了ARIMA、Holt-Winter、LSTM等多種時間序列預(yù)測方法。攜程訂單業(yè)務(wù)指標(biāo)具有較強的周期性,LSTM模型捕獲序列長期和短期模式的特性導(dǎo)致其在周期性指標(biāo)上的預(yù)測效果優(yōu)于其他模型。我們以離當(dāng)前時刻最近的10個時間序列數(shù)據(jù)作為LSTM模型的輸入,采用滑動窗口不斷預(yù)測未來時刻指標(biāo)的取值。

在絕大多數(shù)場景下,LSTM模型的預(yù)測效果是非常好的,然而,當(dāng)指標(biāo)出現(xiàn)緩慢下跌時,由于在短時間內(nèi)很難判斷出異常,隨著窗口的不斷滑動,訓(xùn)練數(shù)據(jù)中包含了異常值,從而導(dǎo)致預(yù)測值被帶偏。

為了解決這個問題,采用假設(shè)檢驗的方式對指標(biāo)當(dāng)前走勢做出判斷。我們認(rèn)為,短期內(nèi)指標(biāo)的取值應(yīng)具有一定的隨機性,不會具有明顯的上升或下降趨勢。當(dāng)假設(shè)檢驗認(rèn)為指標(biāo)在當(dāng)前時段存在上升或下降的趨勢時,不再對LSTM模型的輸入數(shù)據(jù)作更新,依然采用上一個窗口的輸入數(shù)據(jù)進(jìn)行預(yù)測。

當(dāng)假設(shè)檢驗認(rèn)為當(dāng)前數(shù)據(jù)不存在上升或下降趨勢時,才會對LSTM輸入數(shù)據(jù)進(jìn)行更新。在做趨勢分析時,不應(yīng)將指標(biāo)自身的趨勢性包括進(jìn)來,所以,我們可以利用的時間序列數(shù)據(jù)是非常有限的,此場景下,非參數(shù)檢驗方法要優(yōu)于參數(shù)檢驗,因此,我們采用Mann-Whitney U統(tǒng)計量進(jìn)行趨勢分析。為了評估不同模型的性能,我們選擇了三條業(yè)務(wù)線,并使用平均絕對誤差(MAE)作為評估指標(biāo)進(jìn)行對比,實驗結(jié)果表明,經(jīng)過趨勢分析調(diào)整的LSTM模型的MAE值最小,說明預(yù)測效果最優(yōu)。


ARIMA

Holt-Winter

LSTM

LSTM-Adjust

AA業(yè)務(wù)線

0.01519

0.02024

0.01995

0.01483

BB業(yè)務(wù)線

0.02975

0.03064

0.02919

0.02612

CC業(yè)務(wù)線

0.02314

0.02542

0.02108

0.01690

表1 不同模型的預(yù)測效果

趨勢分析的引入,加強了LSTM模型的預(yù)測精度(如圖1),無論是對于點異常(顯著有別于其他點的數(shù)據(jù)異常)的識別還是對于連續(xù)性異常(指標(biāo)在正常范圍內(nèi)波動,但波動模式卻發(fā)生了顯著變化)的識別,均做了較好的鋪墊。         

圖1

2.2 自適應(yīng)閾值計算

起初,研發(fā)人員會基于自己對業(yè)務(wù)的理解,設(shè)置“人為指定規(guī)則”的專家體系,同時,為保障故障100%召回,閾值設(shè)置的都比較敏感。該體系不僅存在準(zhǔn)確率低、維護(hù)成本高的問題,還可能產(chǎn)生告警風(fēng)暴,導(dǎo)致告警接收人警惕性麻痹,產(chǎn)生更嚴(yán)重的故障。

為解決這個問題,我們從數(shù)據(jù)本身出發(fā),基于數(shù)據(jù)本身的波動性,構(gòu)造合適的統(tǒng)計學(xué)模型,實現(xiàn)閾值的自適應(yīng)計算。

為便于對異常程度進(jìn)行衡量,我們定義統(tǒng)計量Z,假設(shè)當(dāng)前值為圖片,預(yù)測值為圖片。當(dāng)預(yù)測值與實際值很接近,Z值接近于0;偏離越大,Z的絕對值也越大(如圖2)。異常事件發(fā)生的概率是非常小的,一般情況下,預(yù)測值與實際值非常接近,也就是說,不同時刻Z統(tǒng)計量的取值圍繞X軸上下隨機波動。數(shù)據(jù)分析發(fā)現(xiàn),基于不同時間段計算的Z統(tǒng)計量的均值和方差均是一個與時間T沒有關(guān)系的常數(shù),這完全符合平穩(wěn)時間序列的定義,因此,我們認(rèn)為,時間序列Z屬于平穩(wěn)時間序列。

圖片

當(dāng)數(shù)據(jù)平穩(wěn)時,業(yè)界一般會對指標(biāo)的分布情況做出估計,通過上限閾值或下限閾值來實現(xiàn)上升或下降場景的異常檢測。對指標(biāo)的分布情況做出估計的方法稱作密度估計。統(tǒng)計學(xué)中,密度估計方法包括參數(shù)方法和非參數(shù)方法兩種。參數(shù)估計方法假定樣本服從某個分布,然后基于假定分布作出區(qū)間估計和點估計;而非參數(shù)方法一般不利用有關(guān)數(shù)據(jù)分布的先驗知識,對數(shù)據(jù)分布不做任何假設(shè),從數(shù)據(jù)本身出發(fā)做出估計。

實踐證明,非參數(shù)方法核密度估計(KDE)對指標(biāo)Z的擬合效果要好于高斯,因此,我們采用KDE方法對指標(biāo)Z的分布情況進(jìn)行估計,考慮到異常事件出現(xiàn)的概率遠(yuǎn)小于正常事件出現(xiàn)的概率,經(jīng)不斷驗證和調(diào)整,我們一般選擇99.99分位數(shù)作為異常判斷的閾值。

我們發(fā)現(xiàn),指標(biāo)在一天內(nèi)不同時間段的波動性存在顯著差異,業(yè)務(wù)低谷期間指標(biāo)隨機性更強,波動性相對也更大一些。倘若不考慮指標(biāo)在不同時間的波動性,每條業(yè)務(wù)線僅配置一個閾值,由于閾值被平均,可能導(dǎo)致在業(yè)務(wù)低谷期間誤告增多,業(yè)務(wù)高峰時段真實故障無法被召回。

在統(tǒng)計學(xué)中,采用標(biāo)準(zhǔn)差和變異系數(shù)來衡量指標(biāo)的波動性,相比標(biāo)準(zhǔn)差,變異系數(shù)剔除了量綱的影響,便于在不同指標(biāo)間進(jìn)行波動性的比較。我們基于指標(biāo)在不同時段變異系數(shù)的取值情況,將一天24小時劃分為低波動區(qū)和高波動區(qū),也就是說,一條業(yè)務(wù)線只要適配兩組閾值,便可做到7*24小時不間斷監(jiān)控。

圖2

通過上述方法,實現(xiàn)了告警體系閾值的自適應(yīng)計算和優(yōu)化,告警準(zhǔn)確性和故障召回率均有顯著提升。與人為指定閾值的方式相比,故障召回率提升了34%。

2.3 業(yè)務(wù)趨勢分析

我們發(fā)現(xiàn),采用單一異常檢測算法在多指標(biāo)上很難實現(xiàn)通用,為進(jìn)一步提升告警質(zhì)量,需要結(jié)合其他算法實現(xiàn)異常的層層過濾。下面將講述我們是如何利用線性回歸模型對訂單業(yè)務(wù)指標(biāo)進(jìn)行異常檢測的。

宏觀上看,訂單隨時間周期性波動,倘若將時間窗口圈定在最近的有限分鐘內(nèi),便可以采用線性模型對業(yè)務(wù)趨勢進(jìn)行擬合。在業(yè)務(wù)高峰來臨前,觀測值隨著時間的推移不斷增加,高峰過后,觀測值隨時間的推移不斷下降。由于Huber-Regression穩(wěn)健回歸算法為識別為異常點的觀測值分配較小的權(quán)重,所以,無論訓(xùn)練數(shù)據(jù)中是否包含異常值,均能得到比較理想的回歸線。

因此,我們最終采用Huber-Regression算法對指標(biāo)短期窗口內(nèi)的觀測值進(jìn)行預(yù)測分析。為了對指標(biāo)在時刻T的異常情況做出判斷,需要對窗口內(nèi)指標(biāo)的波動性進(jìn)行衡量,觀測點與擬合直線之間的距離是指標(biāo)波動性的一種體現(xiàn)。對于強周期性指標(biāo),可以設(shè)置較為敏感的閾值;當(dāng)指標(biāo)整體量綱比較小,用戶行為對曲線形態(tài)的影響較大,可以適當(dāng)調(diào)低異常檢測敏感度。

引入業(yè)務(wù)趨勢分析,可以有效減少指標(biāo)抖動產(chǎn)生的誤報,從而提高告警準(zhǔn)確性。業(yè)務(wù)趨勢分析可以幫助我們更好地理解業(yè)務(wù)當(dāng)前趨勢,從而更準(zhǔn)確地判斷異常情況。通過業(yè)務(wù)趨勢分析的引入,告警準(zhǔn)確率提升了30%。

2.4 周期性異常

周期性異常是指在一定時間范圍內(nèi),某個或某些指標(biāo)出現(xiàn)了周期性的波動或變化,通常與正常的趨勢和規(guī)律不符,表現(xiàn)為短期內(nèi)突然上升或下降。周期性告警屬于一種較為明顯的誤報,在總告警數(shù)量中占有不少比例,如果不進(jìn)行有針對性解決,將會嚴(yán)重影響用戶體驗。

為了實現(xiàn)周期性異常的過濾,需要考慮周期性異常在時間維度上的偏移。動態(tài)時間規(guī)整(DTW)是一種用于比較兩個時間序列相似性的算法,它可以對兩個時間序列進(jìn)行時間軸上的對齊,從而消除時間上的偏移,使得它們在時間上的對應(yīng)點更加接近。為實現(xiàn)周期性異常的檢測,可以采用以下步驟:

  • 利用DTW算法實現(xiàn)當(dāng)前時段數(shù)據(jù)和歷史數(shù)據(jù)的最優(yōu)匹配,從而消除時間上的偏移,提高周期性異常的檢測準(zhǔn)確性。
  • 基于當(dāng)前數(shù)據(jù)和最優(yōu)匹配數(shù)據(jù)進(jìn)行異常特征提取,例如周期、幅度、相位等,這些特征要盡可能描述當(dāng)前異常。
  • 使用分類算法對異常特征進(jìn)行判斷,從而得出當(dāng)前異常是否處于周期性異常的結(jié)論。

通過上述方法,實現(xiàn)了對周期性異常的準(zhǔn)確過濾,周期性誤報減少80%,對于提升告警質(zhì)量有非常重要的作用。

三、小結(jié)

智能異常檢測系統(tǒng)包括線下訓(xùn)練和線上實時檢測兩部分(如圖3)。由于業(yè)務(wù)變化較快,較遠(yuǎn)的歷史數(shù)據(jù)參考性不大,因此采用14天的歷史數(shù)據(jù)訓(xùn)練預(yù)測模型和自適應(yīng)計算閾值。

歷史數(shù)據(jù)需要進(jìn)行預(yù)處理,主要包括以下幾個方面:

  • 異常事件產(chǎn)生的異常數(shù)據(jù)需要剔除,比如,RCA時間段、秒殺、考試等外面事件引起指標(biāo)的突升。同時,采用滑動窗口的方式對異常區(qū)間進(jìn)行缺失值補全。
  • 為增強模型魯棒性,消除數(shù)據(jù)毛刺點產(chǎn)生的影響,使用滑動窗口對數(shù)據(jù)進(jìn)行平滑處理。
  • 對數(shù)據(jù)進(jìn)行歸一化處理,保證LSTM預(yù)測模型能夠快速收斂,提高模型預(yù)測精度。

線上檢測算法包括:基線預(yù)測模塊和無監(jiān)督異常檢測方法集?;€預(yù)測模塊的主要功能是時間序列預(yù)測和異常特征提取,無監(jiān)督異常檢測方法集包括一些統(tǒng)計類異常檢測算法,如Boxplot、K-sigma、KDE。無論是點異常還是連續(xù)性異常,均會基于異常特征集,采用多種無監(jiān)督檢測方法實現(xiàn)檢測,最終以投票的方法得出時刻T是否異常的結(jié)論。

圖3

智能異常檢測系統(tǒng)在攜程投入使用三年有余。在這期間,我們有遇到各式各樣的挑戰(zhàn)。經(jīng)過千錘百煉,取得了不錯的效果。告警準(zhǔn)確率和召回率均有了顯著提升,大部分故障可以在一分鐘內(nèi)被發(fā)現(xiàn)。

責(zé)任編輯:張燕妮 來源: 攜程技術(shù)
相關(guān)推薦

2023-07-07 14:18:57

攜程實踐

2023-10-20 09:17:08

攜程實踐

2024-09-25 15:37:46

2022-12-14 10:09:44

研發(fā)效能

2022-07-15 12:58:02

鴻蒙攜程華為

2022-05-13 09:27:55

Widget機票業(yè)務(wù)App

2022-06-03 08:58:24

APP攜程流暢度

2022-09-20 09:54:35

運維AIOps

2022-07-15 09:20:17

性能優(yōu)化方案

2022-08-12 08:34:32

攜程數(shù)據(jù)庫上云

2023-02-08 16:34:05

數(shù)據(jù)庫工具

2022-07-08 09:38:27

攜程酒店Flutter技術(shù)跨平臺整合

2023-08-25 09:51:21

前端開發(fā)

2022-09-03 21:13:19

攜程供應(yīng)商直連平臺

2023-03-14 14:01:00

內(nèi)存優(yōu)化

2022-06-03 09:21:47

Svelte前端攜程

2022-08-20 07:46:03

Dynamo攜程數(shù)據(jù)庫

2023-07-07 12:26:39

攜程開發(fā)

2023-04-14 10:29:24

小程序實踐

2023-12-15 10:05:58

攜程網(wǎng)絡(luò)
點贊
收藏

51CTO技術(shù)棧公眾號