中国足彩网14选9|中国足彩网比分直播网

單日2000W+訂單,如何忙中不錯?美團外賣業務異常檢測實踐詳解

為促進社區發展,運維派尋求戰略合作、贊助、投資,請聯系微信:helloywp

美團運維
美團外賣從 2013~2018,歷時五年,現在已經是全球最大外賣交易平臺。目前單日完成訂單兩千多萬單,交易頻次高,如果不能及時發現潛在業務指標異常,有可能引發重大事故。

寫在前面

外賣業務持續高速成長,業務迭代快,邏輯復雜,關聯服務多。如何快速準確識別系統各項指標的異常,發現問題根因,并快速解決顯得尤為重要。在常規業務指標監控工作中需要手動維護上萬業務指標報警閾值,不僅成本高,效果也不佳。我們嘗試使用“形變分析模型”對業務指標自動進行異常檢測,無需人工設置閾值。在實踐過程中與外賣全鏈路壓測,服務保護等穩定性保障系統進行內聯,目前已覆蓋絕大部分美團外賣 C 端核心業務指標,效果不錯。

美團外賣業務異常檢測現狀

外賣業務特點

美團外賣從 2013~2018,歷時五年,現在已經是全球最大外賣交易平臺。外賣業務相關的指標主要會分為兩大類:

  • 有規律的時間序列,大多數核心業務指標都會呈現出較強的規律性,如下圖 1 所示:主要的履約交易流程(用戶下單 > 支付 > 商家接單 > 配送 > 用戶收貨) 中各個業務指標呈現周期性、趨勢性,午、晚高峰陡升明顯,與低峰期數值相差百倍。目前單日完成訂單兩千多萬單,交易頻次高,如果不能及時發現潛在業務指標異常,有可能引發重大事故。
?

圖 1:有規律的時間序列

  • 無規律的時間序列,這類指標會因為一些偶發事件引起曲線的波動,沒有很強的規律性。如下圖 2 所示:

    1. 根據當前的業務現狀實施有針對性的營銷策略,在特定時間進行紅包發放等。
    2. 特定業務上線,比如外賣 SET 化確定某一時間點進行引流。
    3. 某應用失敗率因為服務器硬件問題出現陡升現象。
    4. 某應用性能指標因為網絡抖動引起的變化。

?

圖 2:無規律的時間序列

主要痛點

美團外賣在業務穩定性監控建設中會與一線開發人員頻繁溝通,針對監控告警需求主要存在如下幾個痛點,如下圖 3 所示:

  • 告警精確率與召回率難平衡。精確率可以反映出對異常點的識別是否準確,誤報會直接影響精確率。召回率可以反映出對所有異常點識別的是否夠全,漏報會直接影響召回率。在業務異常檢測告警過程中,漏報往往比誤報帶給業務的傷害更大,在重大事故時,如果不能及時識別出核心業務指標的異常點,很有可能會延誤處理事故的最佳時機。提升召回率的同時可能降低精確率,而如果誤報太多又會讓業務開發人員在日常運維中對告警失去敏感度。
  • 人工配置告警閾值成本高。告警閾值配置需要對業務特點熟悉,對于新業務上線或者功能變更等動作可能會調整相應的告警閾值,指標波動在什么范圍內發出什么等級的告警,這都需要投入較高的人力成本去維護。
  • 典型故障場景分析需要人工介入。對于故障場景需要人工介入去進行問題排查定位與解決,不同的開發人員處理問題的經驗有差異,交接成本高。針對經常碰到的故障場景,在多次出現之后我們是可以將這些故障場景對應的特征進行歸類整理并落地成專家模型,幫助開發人員快速定位故障方向,采用對應預案處理,提升效率。
  • 重大事故時如何避免告警洪潮。日常某一個業務指標出現問題發送告警,我們還可以較容易的定位具體問題。當多業務鏈路同時出現問題,可能會出現告警洪潮,讓開發人員很難快速定位到問題根因去解決問題,這個時候需要有一套告警收斂策略幫助開發人員快速找到問題最嚴重的地方,給出處理建議。
?

圖 3:開發人員在業務監控上的主要痛點

形變分析模型介紹

概覽

在外賣業務場景下,與業務開發人員日常溝通過程中發現大家判斷業務指標是否異常,大多數是通過人眼觀察形狀是否符合預期。我們希望找到一種方式可以通過對時間序列的 形狀預測 來判斷是否異常,并希望可以對異常嚴重程度設定不同的告警等級。通過簡單的模型來覆蓋常見故障場景,并具備較好的普適性。形變分析模型從上述痛點出發不斷向前演進。

任何一種異常檢測模型都有它的適用范圍,形變分析模型也不例外,這里需要強調一下形變分析模型主要針對有規律的時間序列進行分析檢測,主要會依賴兩個簡單的計算公式:

  • 歸一化互相關(余弦相關性)公式。它經常被用來判斷兩篇文章是否相似,也可以體現兩個曲線的相似度,相似度越高說明形狀越相似。
  • 形變量計算公式。這里雖然是簡單的四則運算,但是具備較好的適應性。

基于形變分析模型的異常檢測主要關注點概括為如下幾點,具體如下圖 4 所示:

  1. 形變分析:對時間序列兩次處理歸一形成形變量集合,通過形變量計算不同等級告警閾值。
  2. 相關性變點檢測:針對出現的特殊情況稱之為超級變點,采用相關性變點檢測作為方案補充。
  3. 告警收斂策略:通過時間桶、鏈路維度對告警進行收斂,提供圖形化的直觀告警信息,避免告警洪潮。
?

圖 4:基于形變分析模型的異常檢測主要的關注點

下面會對形變分析模型詳細展開介紹。

模型分析過程

?

圖 5:基于形變分析的異常檢測主要流程

下面給大家重點介紹一下形變分析模型的分析過程,這里主要會有四個步驟,具體如圖 5 所示:

  • 確定時間序列特征,是否是有規律的時間序列。因為形變分析模型的適用范圍是有規律的時間序列,這里主要表現為有周期、有趨勢,所以可以確定曲線是否是有周期的(可以通過傅里葉變換確定曲線的短周期),確定節假日與工作日的差異性,并進行歸類(工作日歸為一類,節假日歸為一類)。
  • 選擇基準線。形變分析模型需要找到一個基準線來進行相關性分析,這里的基準線主要關注形狀,而非具體數值。這個基準線,我們可以使用周同比的數據,可以通過一些預測算法進行預測(比如:STL + Holt-Winters),這里更加關注預測出的形狀而非具體數值,也可以選擇同源數據(同一鏈路上其他相似的業務指標)作為基線。
  • 基準形變量計算。根據選擇的基準線與真實數據通過兩次處理,去除時間、形狀、量級等因素的影響,將時間序列歸一到一個基準上,通過形變量計算得到基準形變量,為后續異常判定、等級設定做準備。
  • 異常判斷階段。可以通過聚類計算基準形變量,根據基準形變量自動設定不同等級的告警閾值,并結合人工反饋是否敏感等信息進行自動修正。

兩次處理

?

圖 6:形變分析的第一次處理

上面通過流程圖介紹了一下形變分析模型的整體流程,下面針對形變分析模型中最核心的兩次處理操作通過具體案例展開介紹一下。第一次是針對形狀或時間的處理,具體如圖 6 所示,形變分析模型預測出基準線,通過真實數值與基線數值進行歸一化互相關計算,計算出一個新的時間序列,因為余弦相關通常用于正空間,所以每一個點都歸一到了 [0 , 1] 區間上,從而去除了形狀或時間的影響。歸一化之后新的時間序列除了在午高峰附近兩個明顯的異常點有較大波動,在凌晨低峰期因為量級較小,也會出現比較明顯的波動(因為量級小,形狀差異會被放大)。上述現象表明不同時段的業務量級對余弦相關性影響較大,需要找到一種方式將量級的影響去除。

?

圖 7:形變分析的第二次處理

第一次處理去除了形狀或時間對時間序列的影響,接下來我們發現通過 如圖 7 所示 的形變量計算公式可以將量級進行還原,或者可以理解為針對不同的量級賦予不同的權重,形成新的時間序列可以去除量級的影響,這就是第二次針對量級的處理,最終將時間序列歸一到形變量集合上,通過聚類計算基準形變量達到設定不同告警等級閾值的目的。統一的標準為我們后續結合用戶反饋對不同等級告警閾值進行微調帶來了便利。

告警收斂策略

針對重大事故時如何避免出現告警洪潮,針對典型故障場景如何快速給開發人員提供簡單直觀的建議,這些也是在異常檢測系統中需要重點關注的問題。其中告警收斂模型會優先關注兩大類問題:

  • 簡化告警內容,直觀展示異常點與變化趨勢。如下圖 8 所示,日常大家收到的告警內容更多的是文字版,這里針對異常點的嚴重程度與前后變化趨勢不太容易通過文字簡單直觀的表達出來。我們逐漸將異常告警信息變成了圖形化,可以直觀展示異常點變化幅度,展示最近時間區間異常變化趨勢。通過收集用戶點擊行為判斷大家對特定異常的關注度,對低關注度異常告警實施對應收斂策略。
?

圖 8:告警展示形式

  • 在重大事故時避免出現告警洪潮,給用戶推送清晰的分析報告。如下圖 9 所示,在事故持續時間較長時,每分鐘都發送告警會對業務造成干擾,模型可以采用連續三分鐘發送異常告警之后,采用間隔 3、5、7、7……分鐘進行發送,直到判斷異常恢復為止。在多個業務鏈路出現故障時,同時多個業務指標發送告警,即使做了時間桶的收斂,也可能會出現較多告警,異常檢測系統需要根據業務相關性,從強相關業務的業務鏈路上收集異常告警事件進行分析,從更高維度給出鏈路級分析報告(例如在外賣業務中:提單業務是支付業務的前置,支付業務是推單業務的前置,當支付業務發生問題時,提單業務一定會上漲,而推單業務一定會下降)。
?

圖 9:告警收斂策略

解決了哪些問題

上面向大家介紹了形變分析模型的分析過程,接下來會通過幾個典型案例詳細說明形變分析模型解決了美團外賣哪些現實問題。

案例 1

業務背景:因為全國大范圍出現惡劣天氣,導致當天外賣訂單整體抬升,如圖 9 所示,午晚高峰整體抬升明顯,這種情況下業務側并不希望出現連續高等級告警。

圖 10:案例 1,整體抬升

第一次對時間或形狀的處理:將歷史真實樣本與基線進行歸一化互相關計算,得到的歸一化數據集可以看到在業務低峰期時,相關性波動較大,在午晚高峰時相關性很穩定。這時已經去除了時間或形狀的影響。

第二次對量級的處理:通過形變量計算公式,還原量級,去除量級的影響,得到形變量數據集,通過基準形變量計算出不同告警等級對應的形變量告警閾值。如圖 10 所示,沒有發現任何時間點的形變量超過告警閾值,符合不作為異常識別的預期。

案例 2

業務背景:某一業務渠道出現問題,引起整體流量緩慢下降,如下圖 11 所示,該情況需要在下降的過程中及時識別為異常,并根據下降的程度逐級提升告警等級。

?

圖 11:案例 2,陰跌

通過兩次對形狀與量級的處理,最終可以看到只有在業務指標緩慢下降的時間范圍內有對應形變量超過告警閾值,并且會隨著下降程度告警等級逐級提升,符合需要識別為異常點的預期。

案例 3

業務背景:某服務入口流量因為某一渠道突然故障,引起整體入口流量陡降,之后曲線形狀又恢復到與基線值重合,如下圖 12 所示,該案例需要及時識別為較高等級異常。

?

圖 12:案例 3,超級變點

通過對時間與量級兩次處理,并沒有任何時間點的形變量達到較高等級告警。這是為什么呢?對于形變量計算公式:(1 – 余弦相關性)x |實時當前值 – 基線當前值| ,這里看到在陡降異常點時 |實際當前值 – 基線當前值| 會趨近與 0,這樣在陡降時的形變量也會趨近于 0,并沒有超過對應的告警等級。這個案例在形變分析模型中屬于一個特殊情況,針對這樣的案例,我們需要引入互相關變點檢測作為彌補,這樣的異常點稱之為超級變點。針對超級變點,需要利用公式:(1 – 余弦相關)x |前一分鐘數值 – 當前值| 來進行識別,在進行形變量計算過程中只要這兩種方式其中一種超過對應告警閾值就進行告警。在進行相關性變點檢測之后,可以識別該異常點為較高等級異常,符合檢測預期。

案例 4

業務背景:世界杯期間有針對性的進行營銷活動,屬于非常規營銷活動,會不定時引起業務指標陡升,如下圖 13 所示,該場景需要及時識別出指標異常,提醒開發人員關注相關業務指標。該業務場景是屬于比較常見的在有規律的時間序列上出現隨機的陡升陡降場景。

?

圖 13:案例 4,陡升

在進行兩次處理之后,三次活動期間引起的指標陡升超過告警閾值,符合指標異常需要被識別的預期。

案例 5

業務背景:在高峰期與低峰期都有跟基線相比波動超過 5% 的異常點,在午高峰時需要進行 P0 級別告警,低峰期波動經常超過 10% 可能并不需要進行告警,如下圖 14 所示。

?

圖 14:案例 5,高峰期與低峰期對告警識別的適應性

在進行兩次處理后,可以看到在低峰期時形變量非常小,達不到告警閾值。在午高峰時形變量非常大,達到 P0 級別告警閾值。那么在低峰期如果想達到 P0 級別告警閾值,需要波動在 50% 左右,如圖 24 所示,這個案例體現了形變分析模型在閾值判定上較好的適應性。

異常檢測系統的主要關注點

?

圖 15:異常檢測系統結構圖

業務異常檢測系統在整個穩定性保障體系中處在核心位置,承載著在業務出現重大事故時進行快速異常識別、定位根因、給出降級建議的責任。會分幾大模塊進行建設,具體如圖 15 所示:

  • 多維度監控指標采集,這里主要包括:業務指標、應用指標(客戶端、服務端、端到端)、系統指標(CPU、Memory、IO 等)。指標采集需要盡可能短的鏈路,需要對指標進行可信度標記,盡可能給后續異常檢測流程提供穩定準確的數據支持。
  • 通過對不同類型時間序列特征進行識別,選擇對應的異常檢測模型。這里不僅需要識別出異常,還需要進行不同告警等級的閾值計算,通過收集用戶反饋信息對不同模型識別異常的效果進行評估,進行半監督學習不斷修正模型效果。
  • 異常檢測系統針對識別出的異常告警事件進行匯總分析,可以從更高維度對業務進行健康檢查(比如:可以分析出某一業務鏈路在某些時間點不穩定),給出故障診斷報告。

異常檢測與其他穩定性保障系統的內聯

?

圖 16:業務穩定性保障兩大核心場景

美團外賣偏向業務的技術保障能力對用戶主要分為兩大核心場景,具體如圖 16 所示:

  • 業務穩定性監控場景,主要針對實時業務數據的監控、異常檢測與故障診斷,在出現事故時直接幫助用戶做出決策,給出處理建議。該場景中產生的診斷數據會形成多維度報告幫助用戶進行日常的健康檢查。用戶可以消費異常檢測事件,進行業務后續定制的保護動作。
  • 業務穩定性評估場景,主要針對核心業務流程在日常進行定期常規壓測,分析核心鏈路中的性能瓶頸點,結合基于異常檢測事件統計的穩定性報告對各個服務進行容量規劃。在日常壓測中會結合典型故障場景進行故障演練,確保各個服務保護動作真實有效。在壓測施壓過程中,異常檢測發出的告警事件可以作為壓力是否停止和開啟的條件。

基于形變分析的異常檢測落地情況及實踐效果

基于形變分析的異常檢測系統現在美團外賣應覆蓋核心業務指標 2400 多個(其中包括訂單、流量、營銷、SET 等),因為使用的算法較簡單,單次異常檢測流程時間可以控制在 200ms。

在發送給用戶的告警信息中不斷收集用戶反饋信息,在已有的反饋標記中,異常檢測的精確率、召回率可以達到 80%,當然異常檢測的準確性還有一部分依賴時間序列數據采集聚合通道的穩定性。關于告警閾值配置功能,有 74% 的核心業務指標可以進行自動配置并調整。

整體回顧

本文主要給大家介紹了形變分析過程,突出對時間序列形狀的預測。針對有規律的時間序列形變分析模型具有較好的適應性。然后給大家介紹了異常檢測系統在美團外賣整個穩定性保障體系中的作用,以及形變分析模型在美團外賣的落地情況。

在進行業務指標異常檢測時,嘗試找到通用的異常檢測方法非常具有誘惑力,但可能并不是最佳選擇。嘗試最適合你問題的最簡單方法。用簡單方法處理復雜問題,用簡單模型收斂問題,用小成本撬動大效能。


作者簡介

劉宏偉,2016 年加入美團點評,美團外賣技術保障組負責人,現正在圍繞業務進行穩定性評估、實時監控、異常檢測與故障診斷等方向的建設。

美團外賣技術保障組:圍繞業務穩定性建設事前通過全鏈路壓測系統建設提前發現服務性能瓶頸、進行服務保護預案演練、容量規劃;事中通過異常檢測與故障診斷模塊,在重大事故時可以快速識別關鍵問題鏈路,定位根因;事后通過服務保護系統進行快速保護預案的觸發,幫助開發人員快速解決線上問題,提升人效。

在此感謝對美團外賣業務異常檢測做出重要貢獻的同學:永強、慶文、召新、胡巍、龔炎、文浩、昌盛、占峰、素娟、強強、劉凱、紳寶、長偉、亢磊。

網友評論comments

發表評論

電子郵件地址不會被公開。 必填項已用*標注

暫無評論

Copyright ? 2012-2019 YUNWEIPAI.COM - 運維派 - 粵ICP備14090526號-3
掃二維碼
掃二維碼
返回頂部
中国足彩网14选9 北京pk10全天计划稳定 pc28长期挂机模式 金百博时时彩 三公棋牌app下载 吉祥三公游戏下载 时时彩平台评测网 pk10最牛稳赚技巧 极速快三计划软件下载 6码倍投方法 三公出千最简单的方法 5星时时缩水 pk10大小必赢计划软件 快三技巧规律视频 腾讯人工客服官网 羽毛球比赛 广东时时走势图百度百度贴吧