1. 程式人生 > >業務實時監控服務ARMS 全息排查功能全新上線

業務實時監控服務ARMS 全息排查功能全新上線

簡單 巴巴 領域 調用 時長 保持 water 應用監控 arm

摘要: 作為鷹眼的商業化產品,用於全鏈路APM監控的阿裏雲業務實時監控服務 (ARMS) , 基於鷹眼的全息排查沈澱,近日推出了基於分布式調用鏈監控技術的全息排查功能,將該功能提供給廣大用戶。

作為鷹眼的商業化產品,用於全鏈路APM監控的阿裏雲業務實時監控服務 (ARMS) , 基於鷹眼的全息排查沈澱,近日推出了基於分布式調用鏈監控技術的全息排查功能,將該功能提供給廣大用戶。至此,ARMS鏈路的分布式鏈路追蹤功能結合周邊的本地堆棧排查,性能Metrics統計,業務全息排查三大附加功能,形成了完整的鏈路監控解決方案。

技術分享圖片

為方便用戶了解ARMS 基於分布式鏈路追蹤技術的全息排查功能解決的問題和主要的使用場景,下文在這方面簡單展開做一下介紹。

分布式鏈路追蹤概要介紹和其面臨的主要問題
分布式調用鏈是微服務時代下的監控必備利器。該技術理論基礎建立在Google Dapper論文基礎之上,主要運用於分布式微服務場景下的鏈路診斷場景,用戶可快速的定位分布式環境下的調用問題診斷。國內外常見的這方面技術的互聯網產品已有很多,其中:

在開源領域有Zipkin, Skywalking, Pinpoint,
國內外互聯網公司比較著名的是阿裏的淘寶鷹眼(國內大廠最早的分布式調用鏈監控的實現)和阿裏雲ARMS (鷹眼商用版),Facebook的OpenZipkin,還有其他如京東,網易等一些對應的實現。
分布式調用鏈在分布式調用的鏈路入口和出口通常會記錄調用時差,返回狀態,以及對應的機器或應用的元信息狀態,因此應用的常規場景通常是某段時間和某個應用入口的情況下,查詢錯誤異常或者超時的調用鏈。如Zipkin調用鏈查詢如下圖所示。

技術分享圖片

但是針對包含業務語義的特定故障診斷卻稍顯乏力。試腦補以下場景,如下圖。

技術分享圖片

以上場景如果不將分布式調用鏈和業務內容進行關聯,通常是很難定位到具體的問題調用鏈的。顯然,常規的分布式調用鏈監控技術是無法勝任以上情況。

帶全息排查功能的分布式調用鏈查詢
作為國內互聯網大廠的老牌鏈路監控工具,鷹眼於2014年左右就推出了全息排查功能,可以在調用鏈中關聯業務信息(BizID)進行鏈路查詢。鷹眼全息排查的關鍵在於:業務事件id與分布式調用鏈元信息TraceId的雙向綁定,從而在技術上解決了業務信息(BizID)和調用鏈信息(TraceID)的關聯問題。

業務全息排查的場景有很多,這裏試舉一例。例如一個交易訂單(2135897412389123)發現存在問題,我們可以根據訂單號查到與之綁定的TraceId,根據TraceId不僅可以查看系統調用的事件,還可以看到與業務相關的事件,如用戶下單、當前庫存情況等,也就是說根據交易ID可以在調用鏈上查看交易、商品庫存以及支付等信息,大大提升錯誤排查速度。相關排查如下圖所示。

技術分享圖片

用於全鏈路APM監控的阿裏雲業務實時監控服務 (ARMS) , 推出的基於分布式調用鏈監控技術的全息排查功能,則是基於鷹眼的全息排查沈澱,解決的問題和上文一致。下面我們看看ARMS全息排查的使用細節。

三步走使用ARMS帶全息排查功能的分布式調用鏈查詢
和鷹眼類似,ARMS全息排查解決問題的核心思路是將用戶的業務內容 (簡稱BizID) 和相關調用鏈的TraceID做關聯,來支持通過業務屬性來查詢對應的問題調用鏈。以下簡單介紹如何上手ARMS全息排查功能。其操作的基本場景架構如下圖。

技術分享圖片

以下簡單敘述每步含義。關於全息排查的更多使用詳解可參見全息排查最佳實踐。

第一步,開發者在程序中通過ARMS提供的獲取Trace信息的SDK來打印包含Trace信息的業務日誌。
SDK使用示例如下:
Span span = Tracer.builder().getSpan();
String traceId = span.getTraceId();
String rpcId = span.getRpcId();

打印的日誌參考內容如下:
2018-07-12 >11:37:40|1e057c4015313666599651005d1201|0|username=xiao,age=22,action=login
2018-07-12 >11:37:40|1e057c4015313666599651005d1201|0|username=xiao,age=22,action=search
2018-07-12 >11:37:40|1e057c4015313666599651005d1201|0|username=xiao,age=22,action=cart

第二步,運維人員在ARMS控制臺上配置抓取、清洗業務日誌的任務,將其關聯到對應的鏈路追蹤系統。配置的參考示例如下:
技術分享圖片
第三步,在ARMS上開啟應用監控,開始全息排查。
ARMS的全息排查入口和以往的應用調用鏈即系查詢入口保持一致。但是對比以往用戶除了根據應用名,調用入口,響應時長進行查詢意外,還可以根據業務信息(BizID)進行問題調用鏈的查詢,從而指數級的提高了問題診斷查詢效率。如查詢username為kevin.yang的鏈路信息,查詢示例如下:

技術分享圖片

同時,ARMS還開放具體的全息排查事件查詢,方便用戶直接查看日誌原始信息。如查詢username為kevin.yang的日誌信息,查詢示例如下:

技術分享圖片

結語
作為國內分布式鏈路追蹤領域的老牌產品"阿裏巴巴鷹眼"的商業化產品,阿裏雲業務實時監控服務 (ARMS) 的全息排查功能讓用戶的調用鏈診斷和業務信息充分關聯,在分布式環境下指數級提高問題診斷效率。歡迎各位試用。

原文鏈接請添加鏈接描述

本文為雲棲社區原創內容,未經允許不得轉載。

業務實時監控服務ARMS 全息排查功能全新上線