阿里妹導讀:全鏈路監控從業務的視角出發,監控整個業務流程的健康狀況,無需多個系統切換,直觀看到全局和上下游,方便快速發現、定位問題。今天,我們一起來看看阿里基礎設施技術團隊在這方面的實踐經驗。

背景

近年來,隨著阿里新業務、新技術的快速發展,傳統的業務總量「監控大盤」已經越來越不能滿足監控需求,主要表現在以下幾個方面:

缺乏全局視角:「監控大盤」主要反映的是單個業務或應用的運行狀態,缺少全局的業務視角能反應整個「業務域」的上下游整體的運行情況。比如交易系統成功率下跌,想看看是不是優惠出問題了,但是不知道「優惠」的業務監控在哪裡,只能依賴"優惠"的同學去排查,釘釘電話溝通,大家一起拼湊信息,上下游協調成本很高。

監控標準不統一:一直以來「業務監控」都是自定義的,依賴開發人員的個人經驗,往往系統、業務監控混在一起,沒有標準,業務之間不能比較;各系統監控能力參差不齊,很容易出現業務鏈路中的監控斷層;業務監控缺少一套行之有效的方法論,新人或者新業務對於業務要怎麼監控,不知道如何下手、不知道自己配的監控是否覆蓋全面,只有等到故障發生以後纔去補監控。

缺少業務視角:隨著阿里業務飛速發展,特別是「大中臺」的建設,使得傳統的「總量」監控已經不能滿足需求,比如一個「交易」中臺業務就會有數十個「業務方」調用,單純的總量監控會把小調用量的業務淹沒,必須按每個業務方的「業務身份」進行監控。對於像「盒馬」、「淘鮮達」這樣的新零售業務,這樣的問題更加突出,一家門店出現交易異常對於「交易總量」來說是微不足道的,但是對這件門店的客戶體驗來說是災難性的。

監控配置成本高:「業務監控」一直都是由「開發人員」純手工打造,需要經過日誌埋點、監控配置、報警閾值設置,整個過程費時費力,缺乏自動化、智能化監控的手段,這也是造成各系統監控能力參差不齊的重要原因,一些新業務因為無力投入大量精力配置監控,導致業務監控能力缺失。

全景式監控

業務全鏈路監控從業務的視角出發,監控整個業務流程的健康狀況,無需多個系統切換,直觀看到全局和上下游,方便快速發現、定位問題。

建立了完整的「業務監控模型」,為業務建立起一個從「宏觀」到「微觀」的全景式業務監控體系,結束了業務監控沒有標準,只能純手工打造的歷史。業務監控模型主要包括3部分:

  • 業務域:一個完整的業務或產品稱為「業務域」,如電商的「交易域」、「營銷域」、「支付域」等。
  • 業務活動:業務域中的的核心業務用例叫做「業務活動」,如交易域的「下單確認」、「創建訂單」等,業務活動是整個監控模型的核心,每個業務活動都會有標準的【黃金指標】來反應自身的健康狀況,業務活動之間建立上下游關係就形成了業務鏈路。
  • 系統服務:業務活動中的依賴的關鍵方法稱作「系統服務」,如「下單確認」包含:查詢會員、查詢商品、查詢優惠等關鍵方法,每個系統服務也通過【黃金指標】來表示其健康狀況。

監控流程

以「監控模型」為基礎,我們總結出了一套如何做好「業務監控」的方法論,並將其沉澱到產品中。

  • 梳理關鍵業務: 業務方需要梳理出自己的核心業務是什麼(業務活動),以及這些核心業務的關鍵依賴有哪些(系統服務)。
  • 監控數據埋點:提供了無侵入的配置化監控SDK,只要將「業務活動」和「系統服務」對應的方法填寫到配置文件中即可,系統會自動收集,計算,上報監控數據。
  • 監控鏈路:系統根據收集的數據自動生成業務鏈路,每個「業務活動」和「系統服務」節點都自動生成流量、耗時、成功率的黃金指標,同時每個『節點』都可以通過鑽取查看詳細的監控數據,包括:不同機房、單元、分組的數據對比,每個業務身份的明細調用情況等。
  • 異常檢測:業務鏈路涉及節點眾多,必須要有完善的異常檢測機制來幫助用戶自動發現問題,我們提供了「智能基線預警」和「專家規則預警」相結合的異常檢測機制,無需用戶逐個配置報警規則,自動發現異常節點,實時將這些節點「標紅」,異常的詳細信息也會同步顯示,方便用戶快速發現和定位問題。

通過業務全鏈路監控,可以做到對業務域的監控標準化和全覆蓋,避免了自定義監控覆蓋不全面、不標準、配置工作量大的問題,使得老闆、PD、運營、監控值班等用戶都可以快速瞭解業務是否有問題。

黃金指標

引入Google的黃金指標概念,改變了業務監控完全依賴自定義的現狀,為業務監控樹立了標準。

  • 流量 :業務在單位時間內的調用量,如:服務的QPS、每秒訂單筆數等。
  • 耗時 :業務的具體處理時長,需區分成功耗時和失敗耗時。
  • 錯誤 :調用出錯數量、成功率、錯誤碼。
  • 飽和度 :應用已使用資源的佔比。

由於飽和度更多反應的是應用的層面情況,所以業務監控使用流量、耗時、錯誤這三個指標就能很好的回答「業務」是否健康的問題,在「業務全鏈路監控」中每個業務活動和系統服務都會標配這三個監控指標。

除了黃金指標以外,還可以根據各自業務的不同特點,定義各種分維度的輔助指標,比如:按不同的業務身份,按商家、按門店分,不同的錯誤碼等等,用於進一步細化和定位問題。

業務維度

傳統的「總量」指標已經不能滿足中臺、盒馬這樣的業務監控需求了,通過可擴展的業務維度實現對業務身份、商家、門店的精細化監控。像「交易」這樣的中臺業務會被幾十個業務方調用,總量沒有異常並不代表具體的業務方沒有問題,而是需要監控每一個業務方各自的調用情況,只要有一個出現異常就要預警

橫向業務維度:業務全鏈路監控提供了「橫向業務維度」功能,能夠方便的配置「業務身份」、「商家」、「門店」等特定的業務維度,可以對一個業務域中所有的「業務活動」和「系統服務」按一個維度過濾,比如可以對交易鏈路按「盒馬」這個業務身份過濾,從而在鏈路上看到的是盒馬的交易調用情況。

配置化埋點

監控SDK使用AOP切面技術實現了配置化埋點能力,業務系統引入監控SDK後,通過簡單的一個配置文件即可完成監控埋點,自動完成數據的攔截、計算、上報,與業務代碼完全解耦。

鏈路自動生成

自動生成應用核心鏈路、黃金指標、業務維度大盤,無需用戶配置,用戶還可以通過可視化編輯頁面對鏈路進行調整。

智能基線預警

通過機器學習快速預測指標的合理範圍,一旦超出邊界就會自動觸發報警,無需配置閾值。

智能基線預警已經在業務自定義監控中得到了驗證(已經有超過1200指標接入),準確率和召回率相對於人工配置都有大幅提高,現在我們將該技術引入「業務全鏈路監控」,實現對業務活動的智能異常檢測,全程無人參與。

實戰

實戰1-交易全局鏈路

交易域的全局業務鏈路,鏈路中列出交易的關鍵「業務活動」,省略了每個業務活動的「系統服務」等細節,主要用於全鏈路壓測,大促投屏等需要關注全局狀態的業務場景,已在6.18大促中得到實際應用。

實戰2-交易核心鏈路

交易是整個電商的核心,我們通過「鏈路自動生成」能力生成了核心業務鏈路,其中綠色節點為「業務活動」,黃色節點為「業務活動」依賴的「系統服務」。

通過業務鏈路可以很方便了解交易活動的運行狀況,一旦業務活動出現問題也可以更加直觀的發現與下游依賴的關係。

實戰3-POS服務端鏈路

POS是整個新零售場景線下支付場景的交易核心,下線支付場景對交易系統提出更加嚴格的可靠性要求,通過POS業務鏈路可以很好的監控POS交易各環節的運行情況,及時發現交易異常。

同時POS鏈路添加了「商家」、「門店」的業務維度,可以實時切換「盒馬」,「大潤發」等不同商家的POS交易情況,實現針對每個商家精細化監控。

關於我們

集團監控平臺團隊是阿里巴巴研發效能事業部下的監控開發團隊,面向阿里龐大的應用生態與海量的伺服器,致力於打造業內一流的智能化監控平臺,保障阿里集團各業務的穩定運行。我們非常歡迎各位監控領域的產品或技術牛人加入我們團隊。歡迎投遞簡歷至:[email protected]

每天一篇技術文章,

看不過癮?

關注「阿里巴巴機器智能」微信公眾號

發現更多AI乾貨。

推薦閱讀:

查看原文 >>
相關文章