一、寫(xiě)在前面
外賣(mài)業(yè)務(wù)持續(xù)高速成長(zhǎng),業(yè)務(wù)迭代快,邏輯復(fù)雜,關(guān)聯(lián)服務(wù)多。如何快速準(zhǔn)確識(shí)別系統(tǒng)各項(xiàng)指標(biāo)的異常,發(fā)現(xiàn)問(wèn)題根因,并快速解決顯得尤為重要。在常規(guī)業(yè)務(wù)指標(biāo)監(jiān)控工作中需要手動(dòng)維護(hù)上萬(wàn)業(yè)務(wù)指標(biāo)報(bào)警閾值,不僅成本高,效果也不佳。我們嘗試使用“形變分析模型”對(duì)業(yè)務(wù)指標(biāo)自動(dòng)進(jìn)行異常檢測(cè),無(wú)需人工設(shè)置閾值。在實(shí)踐過(guò)程中與外賣(mài)全鏈路壓測(cè),服務(wù)保護(hù)等穩(wěn)定性保障系統(tǒng)進(jìn)行內(nèi)聯(lián),目前已覆蓋絕大部分美團(tuán)外賣(mài)C端核心業(yè)務(wù)指標(biāo),效果不錯(cuò)。
二、美團(tuán)外賣(mài)業(yè)務(wù)異常檢測(cè)現(xiàn)狀
2.1 外賣(mài)業(yè)務(wù)特點(diǎn)
美團(tuán)外賣(mài)從2013~2018,歷時(shí)五年,現(xiàn)在已經(jīng)是全球最大外賣(mài)交易平臺(tái)。外賣(mài)業(yè)務(wù)相關(guān)的指標(biāo)主要會(huì)分為兩大類:
- 有規(guī)律的時(shí)間序列,大多數(shù)核心業(yè)務(wù)指標(biāo)都會(huì)呈現(xiàn)出較強(qiáng)的規(guī)律性,如下圖1所示:主要的履約交易流程(用戶下單 > 支付 > 商家接單 > 配送 > 用戶收貨)中各個(gè)業(yè)務(wù)指標(biāo)呈現(xiàn)周期性、趨勢(shì)性,午、晚高峰陡升明顯,與低峰期數(shù)值相差百倍。目前單日完成訂單兩千多萬(wàn)單,交易頻次高,如果不能及時(shí)發(fā)現(xiàn)潛在業(yè)務(wù)指標(biāo)異常,有可能引發(fā)重大事故。
- 無(wú)規(guī)律的時(shí)間序列,這類指標(biāo)會(huì)因?yàn)橐恍┡及l(fā)事件引起曲線的波動(dòng),沒(méi)有很強(qiáng)的規(guī)律性。如下圖2所示:
- 根據(jù)當(dāng)前的業(yè)務(wù)現(xiàn)狀實(shí)施有針對(duì)性的營(yíng)銷(xiāo)策略,在特定時(shí)間進(jìn)行紅包發(fā)放等。
- 特定業(yè)務(wù)上線,比如外賣(mài)SET化確定某一時(shí)間點(diǎn)進(jìn)行引流。
- 某應(yīng)用失敗率因?yàn)榉?wù)器硬件問(wèn)題出現(xiàn)陡升現(xiàn)象。
-
某應(yīng)用性能指標(biāo)因?yàn)榫W(wǎng)絡(luò)抖動(dòng)引起的變化。
圖2:無(wú)規(guī)律的時(shí)間序列
2.2 主要痛點(diǎn)
美團(tuán)外賣(mài)在業(yè)務(wù)穩(wěn)定性監(jiān)控建設(shè)中會(huì)與一線開(kāi)發(fā)人員頻繁溝通,針對(duì)監(jiān)控告警需求主要存在如下幾個(gè)痛點(diǎn),如下圖3所示:
- 告警精確率與召回率難平衡。精確率可以反映出對(duì)異常點(diǎn)的識(shí)別是否準(zhǔn)確,誤報(bào)會(huì)直接影響精確率。召回率可以反映出對(duì)所有異常點(diǎn)識(shí)別的是否夠全,漏報(bào)會(huì)直接影響召回率。在業(yè)務(wù)異常檢測(cè)告警過(guò)程中,漏報(bào)往往比誤報(bào)帶給業(yè)務(wù)的傷害更大,在重大事故時(shí),如果不能及時(shí)識(shí)別出核心業(yè)務(wù)指標(biāo)的異常點(diǎn),很有可能會(huì)延誤處理事故的最佳時(shí)機(jī)。提升召回率的同時(shí)可能降低精確率,而如果誤報(bào)太多又會(huì)讓業(yè)務(wù)開(kāi)發(fā)人員在日常運(yùn)維中對(duì)告警失去敏感度。
- 人工配置告警閾值成本高。告警閾值配置需要對(duì)業(yè)務(wù)特點(diǎn)熟悉,對(duì)于新業(yè)務(wù)上線或者功能變更等動(dòng)作可能會(huì)調(diào)整相應(yīng)的告警閾值,指標(biāo)波動(dòng)在什么范圍內(nèi)發(fā)出什么等級(jí)的告警,這都需要投入較高的人力成本去維護(hù)。
- 典型故障場(chǎng)景分析需要人工介入。對(duì)于故障場(chǎng)景需要人工介入去進(jìn)行問(wèn)題排查定位與解決,不同的開(kāi)發(fā)人員處理問(wèn)題的經(jīng)驗(yàn)有差異,交接成本高。針對(duì)經(jīng)常碰到的故障場(chǎng)景,在多次出現(xiàn)之后我們是可以將這些故障場(chǎng)景對(duì)應(yīng)的特征進(jìn)行歸類整理并落地成專家模型,幫助開(kāi)發(fā)人員快速定位故障方向,采用對(duì)應(yīng)預(yù)案處理,提升效率。
-
重大事故時(shí)如何避免告警洪潮。日常某一個(gè)業(yè)務(wù)指標(biāo)出現(xiàn)問(wèn)題發(fā)送告警,我們還可以較容易的定位具體問(wèn)題。當(dāng)多業(yè)務(wù)鏈路同時(shí)出現(xiàn)問(wèn)題,可能會(huì)出現(xiàn)告警洪潮,讓開(kāi)發(fā)人員很難快速定位到問(wèn)題根因去解決問(wèn)題,這個(gè)時(shí)候需要有一套告警收斂策略幫助開(kāi)發(fā)人員快速找到問(wèn)題最嚴(yán)重的地方,給出處理建議。
圖3:開(kāi)發(fā)人員在業(yè)務(wù)監(jiān)控上的主要痛點(diǎn)
三、形變分析模型介紹
3.1 概覽
在外賣(mài)業(yè)務(wù)場(chǎng)景下,與業(yè)務(wù)開(kāi)發(fā)人員日常溝通過(guò)程中發(fā)現(xiàn)大家判斷業(yè)務(wù)指標(biāo)是否異常,大多數(shù)是通過(guò)人眼觀察形狀是否符合預(yù)期。我們希望找到一種方式可以通過(guò)對(duì)時(shí)間序列的 形狀預(yù)測(cè) 來(lái)判斷是否異常,并希望可以對(duì)異常嚴(yán)重程度設(shè)定不同的告警等級(jí)。通過(guò)簡(jiǎn)單的模型來(lái)覆蓋常見(jiàn)故障場(chǎng)景,并具備較好的普適性。形變分析模型從上述痛點(diǎn)出發(fā)不斷向前演進(jìn)。
任何一種異常檢測(cè)模型都有它的適用范圍,形變分析模型也不例外,這里需要強(qiáng)調(diào)一下形變分析模型主要針對(duì)有規(guī)律的時(shí)間序列進(jìn)行分析檢測(cè),主要會(huì)依賴兩個(gè)簡(jiǎn)單的計(jì)算公式:
- 歸一化互相關(guān)(余弦相關(guān)性)公式。它經(jīng)常被用來(lái)判斷兩篇文章是否相似,也可以體現(xiàn)兩個(gè)曲線的相似度,相似度越高說(shuō)明形狀越相似。
- 形變量計(jì)算公式。這里雖然是簡(jiǎn)單的四則運(yùn)算,但是具備較好的適應(yīng)性。
基于形變分析模型的異常檢測(cè)主要關(guān)注點(diǎn)概括為如下幾點(diǎn),具體如下圖4所示:
- 形變分析:對(duì)時(shí)間序列兩次處理歸一形成形變量集合,通過(guò)形變量計(jì)算不同等級(jí)告警閾值。
- 相關(guān)性變點(diǎn)檢測(cè):針對(duì)出現(xiàn)的特殊情況稱之為超級(jí)變點(diǎn),采用相關(guān)性變點(diǎn)檢測(cè)作為方案補(bǔ)充。
-
告警收斂策略:通過(guò)時(shí)間桶、鏈路維度對(duì)告警進(jìn)行收斂,提供圖形化的直觀告警信息,避免告警洪潮。
圖4:基于形變分析模型的異常檢測(cè)主要的關(guān)注點(diǎn)
下面會(huì)對(duì)形變分析模型詳細(xì)展開(kāi)介紹。
3.2 模型分析過(guò)程
下面給大家重點(diǎn)介紹一下形變分析模型的分析過(guò)程,這里主要會(huì)有四個(gè)步驟,具體如圖5所示:
- 確定時(shí)間序列特征,是否是有規(guī)律的時(shí)間序列。因?yàn)樾巫兎治瞿P偷倪m用范圍是有規(guī)律的時(shí)間序列,這里主要表現(xiàn)為有周期、有趨勢(shì),所以可以確定曲線是否是有周期的(可以通過(guò)傅里葉變換確定曲線的短周期),確定節(jié)假日與工作日的差異性,并進(jìn)行歸類(工作日歸為一類,節(jié)假日歸為一類)。
- 選擇基準(zhǔn)線。形變分析模型需要找到一個(gè)基準(zhǔn)線來(lái)進(jìn)行相關(guān)性分析,這里的基準(zhǔn)線主要關(guān)注形狀,而非具體數(shù)值。這個(gè)基準(zhǔn)線,我們可以使用周同比的數(shù)據(jù),可以通過(guò)一些預(yù)測(cè)算法進(jìn)行預(yù)測(cè)(比如:STL + Holt-Winters),這里更加關(guān)注預(yù)測(cè)出的形狀而非具體數(shù)值,也可以選擇同源數(shù)據(jù)(同一鏈路上其他相似的業(yè)務(wù)指標(biāo))作為基線。
- 基準(zhǔn)形變量計(jì)算。根據(jù)選擇的基準(zhǔn)線與真實(shí)數(shù)據(jù)通過(guò)兩次處理,去除時(shí)間、形狀、量級(jí)等因素的影響,將時(shí)間序列歸一到一個(gè)基準(zhǔn)上,通過(guò)形變量計(jì)算得到基準(zhǔn)形變量,為后續(xù)異常判定、等級(jí)設(shè)定做準(zhǔn)備。
- 異常判斷階段。可以通過(guò)聚類計(jì)算基準(zhǔn)形變量,根據(jù)基準(zhǔn)形變量自動(dòng)設(shè)定不同等級(jí)的告警閾值,并結(jié)合人工反饋是否敏感等信息進(jìn)行自動(dòng)修正。
3.3 兩次處理
上面通過(guò)流程圖介紹了一下形變分析模型的整體流程,下面針對(duì)形變分析模型中最核心的兩次處理操作通過(guò)具體案例展開(kāi)介紹一下。第一次是針對(duì)形狀或時(shí)間的處理,具體如圖6所示,形變分析模型預(yù)測(cè)出基準(zhǔn)線,通過(guò)真實(shí)數(shù)值與基線數(shù)值進(jìn)行歸一化互相關(guān)計(jì)算,計(jì)算出一個(gè)新的時(shí)間序列,因?yàn)橛嘞蚁嚓P(guān)通常用于正空間,所以每一個(gè)點(diǎn)都?xì)w一到了[0 , 1]區(qū)間上,從而去除了形狀或時(shí)間的影響。歸一化之后新的時(shí)間序列除了在午高峰附近兩個(gè)明顯的異常點(diǎn)有較大波動(dòng),在凌晨低峰期因?yàn)榱考?jí)較小,也會(huì)出現(xiàn)比較明顯的波動(dòng)(因?yàn)榱考?jí)小,形狀差異會(huì)被放大)。上述現(xiàn)象表明不同時(shí)段的業(yè)務(wù)量級(jí)對(duì)余弦相關(guān)性影響較大,需要找到一種方式將量級(jí)的影響去除。
第一次處理去除了形狀或時(shí)間對(duì)時(shí)間序列的影響,接下來(lái)我們發(fā)現(xiàn)通過(guò) 如圖7所示 的形變量計(jì)算公式可以將量級(jí)進(jìn)行還原,或者可以理解為針對(duì)不同的量級(jí)賦予不同的權(quán)重,形成新的時(shí)間序列可以去除量級(jí)的影響,這就是第二次針對(duì)量級(jí)的處理,最終將時(shí)間序列歸一到形變量集合上,通過(guò)聚類計(jì)算基準(zhǔn)形變量達(dá)到設(shè)定不同告警等級(jí)閾值的目的。統(tǒng)一的標(biāo)準(zhǔn)為我們后續(xù)結(jié)合用戶反饋對(duì)不同等級(jí)告警閾值進(jìn)行微調(diào)帶來(lái)了便利。
3.4 告警收斂策略
針對(duì)重大事故時(shí)如何避免出現(xiàn)告警洪潮,針對(duì)典型故障場(chǎng)景如何快速給開(kāi)發(fā)人員提供簡(jiǎn)單直觀的建議,這些也是在異常檢測(cè)系統(tǒng)中需要重點(diǎn)關(guān)注的問(wèn)題。其中告警收斂模型會(huì)優(yōu)先關(guān)注兩大類問(wèn)題:
- 簡(jiǎn)化告警內(nèi)容,直觀展示異常點(diǎn)與變化趨勢(shì)。如下圖8所示,日常大家收到的告警內(nèi)容更多的是文字版,這里針對(duì)異常點(diǎn)的嚴(yán)重程度與前后變化趨勢(shì)不太容易通過(guò)文字簡(jiǎn)單直觀的表達(dá)出來(lái)。我們逐漸將異常告警信息變成了圖形化,可以直觀展示異常點(diǎn)變化幅度,展示最近時(shí)間區(qū)間異常變化趨勢(shì)。通過(guò)收集用戶點(diǎn)擊行為判斷大家對(duì)特定異常的關(guān)注度,對(duì)低關(guān)注度異常告警實(shí)施對(duì)應(yīng)收斂策略。
- 在重大事故時(shí)避免出現(xiàn)告警洪潮,給用戶推送清晰的分析報(bào)告。如下圖9所示,在事故持續(xù)時(shí)間較長(zhǎng)時(shí),每分鐘都發(fā)送告警會(huì)對(duì)業(yè)務(wù)造成干擾,模型可以采用連續(xù)三分鐘發(fā)送異常告警之后,采用間隔3、5、7、7......分鐘進(jìn)行發(fā)送,直到判斷異常恢復(fù)為止。在多個(gè)業(yè)務(wù)鏈路出現(xiàn)故障時(shí),同時(shí)多個(gè)業(yè)務(wù)指標(biāo)發(fā)送告警,即使做了時(shí)間桶的收斂,也可能會(huì)出現(xiàn)較多告警,異常檢測(cè)系統(tǒng)需要根據(jù)業(yè)務(wù)相關(guān)性,從強(qiáng)相關(guān)業(yè)務(wù)的業(yè)務(wù)鏈路上收集異常告警事件進(jìn)行分析,從更高維度給出鏈路級(jí)分析報(bào)告(例如在外賣(mài)業(yè)務(wù)中:提單業(yè)務(wù)是支付業(yè)務(wù)的前置,支付業(yè)務(wù)是推單業(yè)務(wù)的前置,當(dāng)支付業(yè)務(wù)發(fā)生問(wèn)題時(shí),提單業(yè)務(wù)一定會(huì)上漲,而推單業(yè)務(wù)一定會(huì)下降)。
3.5 解決了哪些問(wèn)題
上面向大家介紹了形變分析模型的分析過(guò)程,接下來(lái)會(huì)通過(guò)幾個(gè)典型案例詳細(xì)說(shuō)明形變分析模型解決了美團(tuán)外賣(mài)哪些現(xiàn)實(shí)問(wèn)題。
-
案例1:
業(yè)務(wù)背景:因?yàn)槿珖?guó)大范圍出現(xiàn)惡劣天氣,導(dǎo)致當(dāng)天外賣(mài)訂單整體抬升,如圖9所示,午晚高峰整體抬升明顯,這種情況下業(yè)務(wù)側(cè)并不希望出現(xiàn)連續(xù)高等級(jí)告警。
圖10:案例1,整體抬升第一次對(duì)時(shí)間或形狀的處理:將歷史真實(shí)樣本與基線進(jìn)行歸一化互相關(guān)計(jì)算,得到的歸一化數(shù)據(jù)集可以看到在業(yè)務(wù)低峰期時(shí),相關(guān)性波動(dòng)較大,在午晚高峰時(shí)相關(guān)性很穩(wěn)定。這時(shí)已經(jīng)去除了時(shí)間或形狀的影響。
第二次對(duì)量級(jí)的處理:通過(guò)形變量計(jì)算公式,還原量級(jí),去除量級(jí)的影響,得到形變量數(shù)據(jù)集,通過(guò)基準(zhǔn)形變量計(jì)算出不同告警等級(jí)對(duì)應(yīng)的形變量告警閾值。如圖10所示,沒(méi)有發(fā)現(xiàn)任何時(shí)間點(diǎn)的形變量超過(guò)告警閾值,符合不作為異常識(shí)別的預(yù)期。
-
案例2:
業(yè)務(wù)背景:某一業(yè)務(wù)渠道出現(xiàn)問(wèn)題,引起整體流量緩慢下降,如下圖11所示,該情況需要在下降的過(guò)程中及時(shí)識(shí)別為異常,并根據(jù)下降的程度逐級(jí)提升告警等級(jí)。
圖11:案例2,陰跌通過(guò)兩次對(duì)形狀與量級(jí)的處理,最終可以看到只有在業(yè)務(wù)指標(biāo)緩慢下降的時(shí)間范圍內(nèi)有對(duì)應(yīng)形變量超過(guò)告警閾值,并且會(huì)隨著下降程度告警等級(jí)逐級(jí)提升,符合需要識(shí)別為異常點(diǎn)的預(yù)期。
-
案例3:
業(yè)務(wù)背景:某服務(wù)入口流量因?yàn)槟骋磺劳蝗还收希鹫w入口流量陡降,之后曲線形狀又恢復(fù)到與基線值重合,如下圖12所示,該案例需要及時(shí)識(shí)別為較高等級(jí)異常。
圖12:案例3,超級(jí)變點(diǎn)通過(guò)對(duì)時(shí)間與量級(jí)兩次處理,并沒(méi)有任何時(shí)間點(diǎn)的形變量達(dá)到較高等級(jí)告警。這是為什么呢?對(duì)于形變量計(jì)算公式:(1 - 余弦相關(guān)性)x |實(shí)時(shí)當(dāng)前值 - 基線當(dāng)前值| ,這里看到在陡降異常點(diǎn)時(shí) |實(shí)際當(dāng)前值 - 基線當(dāng)前值| 會(huì)趨近與0,這樣在陡降時(shí)的形變量也會(huì)趨近于0,并沒(méi)有超過(guò)對(duì)應(yīng)的告警等級(jí)。這個(gè)案例在形變分析模型中屬于一個(gè)特殊情況,針對(duì)這樣的案例,我們需要引入互相關(guān)變點(diǎn)檢測(cè)作為彌補(bǔ),這樣的異常點(diǎn)稱之為超級(jí)變點(diǎn)。針對(duì)超級(jí)變點(diǎn),需要利用公式:(1 - 余弦相關(guān))x |前一分鐘數(shù)值 - 當(dāng)前值| 來(lái)進(jìn)行識(shí)別,在進(jìn)行形變量計(jì)算過(guò)程中只要這兩種方式其中一種超過(guò)對(duì)應(yīng)告警閾值就進(jìn)行告警。在進(jìn)行相關(guān)性變點(diǎn)檢測(cè)之后,可以識(shí)別該異常點(diǎn)為較高等級(jí)異常,符合檢測(cè)預(yù)期。
-
案例4:
業(yè)務(wù)背景:世界杯期間有針對(duì)性的進(jìn)行營(yíng)銷(xiāo)活動(dòng),屬于非常規(guī)營(yíng)銷(xiāo)活動(dòng),會(huì)不定時(shí)引起業(yè)務(wù)指標(biāo)陡升,如下圖13所示,該場(chǎng)景需要及時(shí)識(shí)別出指標(biāo)異常,提醒開(kāi)發(fā)人員關(guān)注相關(guān)業(yè)務(wù)指標(biāo)。該業(yè)務(wù)場(chǎng)景是屬于比較常見(jiàn)的在有規(guī)律的時(shí)間序列上出現(xiàn)隨機(jī)的陡升陡降場(chǎng)景。
圖13:案例4,陡升在進(jìn)行兩次處理之后,三次活動(dòng)期間引起的指標(biāo)陡升超過(guò)告警閾值,符合指標(biāo)異常需要被識(shí)別的預(yù)期。
-
案例5:
業(yè)務(wù)背景:在高峰期與低峰期都有跟基線相比波動(dòng)超過(guò)5%的異常點(diǎn),在午高峰時(shí)需要進(jìn)行P0級(jí)別告警,低峰期波動(dòng)經(jīng)常超過(guò)10%可能并不需要進(jìn)行告警,如下圖14所示。
圖14:案例5,高峰期與低峰期對(duì)告警識(shí)別的適應(yīng)性在進(jìn)行兩次處理后,可以看到在低峰期時(shí)形變量非常小,達(dá)不到告警閾值。在午高峰時(shí)形變量非常大,達(dá)到P0級(jí)別告警閾值。那么在低峰期如果想達(dá)到P0級(jí)別告警閾值,需要波動(dòng)在50%左右,如圖24所示,這個(gè)案例體現(xiàn)了形變分析模型在閾值判定上較好的適應(yīng)性。
四、異常檢測(cè)系統(tǒng)的主要關(guān)注點(diǎn)
業(yè)務(wù)異常檢測(cè)系統(tǒng)在整個(gè)穩(wěn)定性保障體系中處在核心位置,承載著在業(yè)務(wù)出現(xiàn)重大事故時(shí)進(jìn)行快速異常識(shí)別、定位根因、給出降級(jí)建議的責(zé)任。會(huì)分幾大模塊進(jìn)行建設(shè),具體如圖15所示:
- 多維度監(jiān)控指標(biāo)采集,這里主要包括:業(yè)務(wù)指標(biāo)、應(yīng)用指標(biāo)(客戶端、服務(wù)端、端到端)、系統(tǒng)指標(biāo)(CPU、Memory、IO等)。指標(biāo)采集需要盡可能短的鏈路,需要對(duì)指標(biāo)進(jìn)行可信度標(biāo)記,盡可能給后續(xù)異常檢測(cè)流程提供穩(wěn)定準(zhǔn)確的數(shù)據(jù)支持。
- 通過(guò)對(duì)不同類型時(shí)間序列特征進(jìn)行識(shí)別,選擇對(duì)應(yīng)的異常檢測(cè)模型。這里不僅需要識(shí)別出異常,還需要進(jìn)行不同告警等級(jí)的閾值計(jì)算,通過(guò)收集用戶反饋信息對(duì)不同模型識(shí)別異常的效果進(jìn)行評(píng)估,進(jìn)行半監(jiān)督學(xué)習(xí)不斷修正模型效果。
- 異常檢測(cè)系統(tǒng)針對(duì)識(shí)別出的異常告警事件進(jìn)行匯總分析,可以從更高維度對(duì)業(yè)務(wù)進(jìn)行健康檢查(比如:可以分析出某一業(yè)務(wù)鏈路在某些時(shí)間點(diǎn)不穩(wěn)定),給出故障診斷報(bào)告。
五、異常檢測(cè)與其他穩(wěn)定性保障系統(tǒng)的內(nèi)聯(lián)
美團(tuán)外賣(mài)偏向業(yè)務(wù)的技術(shù)保障能力對(duì)用戶主要分為兩大核心場(chǎng)景,具體如圖16所示:
業(yè)務(wù)穩(wěn)定性監(jiān)控場(chǎng)景,主要針對(duì)實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)的監(jiān)控、異常檢測(cè)與故障診斷,在出現(xiàn)事故時(shí)直接幫助用戶做出決策,給出處理建議。該場(chǎng)景中產(chǎn)生的診斷數(shù)據(jù)會(huì)形成多維度報(bào)告幫助用戶進(jìn)行日常的健康檢查。用戶可以消費(fèi)異常檢測(cè)事件,進(jìn)行業(yè)務(wù)后續(xù)定制的保護(hù)動(dòng)作。
業(yè)務(wù)穩(wěn)定性評(píng)估場(chǎng)景,主要針對(duì)核心業(yè)務(wù)流程在日常進(jìn)行定期常規(guī)壓測(cè),分析核心鏈路中的性能瓶頸點(diǎn),結(jié)合基于異常檢測(cè)事件統(tǒng)計(jì)的穩(wěn)定性報(bào)告對(duì)各個(gè)服務(wù)進(jìn)行容量規(guī)劃。在日常壓測(cè)中會(huì)結(jié)合典型故障場(chǎng)景進(jìn)行故障演練,確保各個(gè)服務(wù)保護(hù)動(dòng)作真實(shí)有效。在壓測(cè)施壓過(guò)程中,異常檢測(cè)發(fā)出的告警事件可以作為壓力是否停止和開(kāi)啟的條件。
六、基于形變分析的異常檢測(cè)落地情況及實(shí)踐效果
基于形變分析的異常檢測(cè)系統(tǒng)現(xiàn)在美團(tuán)外賣(mài)應(yīng)覆蓋核心業(yè)務(wù)指標(biāo)2400多個(gè)(其中包括訂單、流量、營(yíng)銷(xiāo)、SET等),因?yàn)槭褂玫乃惴ㄝ^簡(jiǎn)單,單次異常檢測(cè)流程時(shí)間可以控制在200ms。
在發(fā)送給用戶的告警信息中不斷收集用戶反饋信息,在已有的反饋標(biāo)記中,異常檢測(cè)的精確率、召回率可以達(dá)到80%,當(dāng)然異常檢測(cè)的準(zhǔn)確性還有一部分依賴時(shí)間序列數(shù)據(jù)采集聚合通道的穩(wěn)定性。關(guān)于告警閾值配置功能,有74%的核心業(yè)務(wù)指標(biāo)可以進(jìn)行自動(dòng)配置并調(diào)整。
七、整體回顧
本文主要給大家介紹了形變分析過(guò)程,突出對(duì)時(shí)間序列形狀的預(yù)測(cè)。針對(duì)有規(guī)律的時(shí)間序列形變分析模型具有較好的適應(yīng)性。然后給大家介紹了異常檢測(cè)系統(tǒng)在美團(tuán)外賣(mài)整個(gè)穩(wěn)定性保障體系中的作用,以及形變分析模型在美團(tuán)外賣(mài)的落地情況。
在進(jìn)行業(yè)務(wù)指標(biāo)異常檢測(cè)時(shí),嘗試找到通用的異常檢測(cè)方法非常具有誘惑力,但可能并不是最佳選擇。嘗試最適合你問(wèn)題的最簡(jiǎn)單方法。用簡(jiǎn)單方法處理復(fù)雜問(wèn)題,用簡(jiǎn)單模型收斂問(wèn)題,用小成本撬動(dòng)大效能。
八、寫(xiě)在最后
作者簡(jiǎn)介
劉宏偉,2016年加入美團(tuán)點(diǎn)評(píng),美團(tuán)外賣(mài)技術(shù)保障組負(fù)責(zé)人,現(xiàn)正在圍繞業(yè)務(wù)進(jìn)行穩(wěn)定性評(píng)估、實(shí)時(shí)監(jiān)控、異常檢測(cè)與故障診斷等方向的建設(shè)。
美團(tuán)外賣(mài)技術(shù)保障組:圍繞業(yè)務(wù)穩(wěn)定性建設(shè)事前通過(guò)全鏈路壓測(cè)系統(tǒng)建設(shè)提前發(fā)現(xiàn)服務(wù)性能瓶頸、進(jìn)行服務(wù)保護(hù)預(yù)案演練、容量規(guī)劃;事中通過(guò)異常檢測(cè)與故障診斷模塊,在重大事故時(shí)可以快速識(shí)別關(guān)鍵問(wèn)題鏈路,定位根因;事后通過(guò)服務(wù)保護(hù)系統(tǒng)進(jìn)行快速保護(hù)預(yù)案的觸發(fā),幫助開(kāi)發(fā)人員快速解決線上問(wèn)題,提升人效。
在此感謝對(duì)美團(tuán)外賣(mài)業(yè)務(wù)異常檢測(cè)做出重要貢獻(xiàn)的同學(xué):永強(qiáng)、慶文、召新、胡巍、龔炎、文浩、昌盛、占峰、素娟、強(qiáng)強(qiáng)、劉凱、紳寶、長(zhǎng)偉、亢磊。
歡迎感興趣的同學(xué)溝通聯(lián)系。
聯(lián)系郵箱: liuhongwei04@meituan.com