ARMS應用監控的調用鏈分析功能是基於已儲存的全量鏈路詳細資料,自由組合篩選條件與彙總維度進行即時分析,可以滿足不同情境的自訂診斷需求。
功能入口
登入ARMS控制台。
在左側導覽列選擇 ,然後在頂部功能表列選擇目標地區。
在調用鏈分析頁面右上方的時間選擇框設定需要查詢的時間段。
篩選鏈路。
在左側快捷篩選地區,通過狀態、耗時、應用程式名稱、介面名稱和主機地址維度快速篩選鏈路。
篩選條件將會顯示在頁面頂部文字框內。
單擊頂部文字框,在下拉彈窗中修改篩選條件或設定其他維度篩選條件。
在右側頂部文字框直接輸入查詢條件。查詢文法說明,請參見調用鏈分析查詢用法說明。
說明單擊文字框右側的表徵圖可以儲存當前篩選條件。
單擊文字框右側已儲存視圖可以查看已儲存的篩選條件,單擊目標的篩選條件可以快速查看對應篩選條件下的鏈路資訊。
選擇彙總維度,可以將篩選後的資料按照指定維度彙總。
鏈路列表
篩選設定完成後,調用鏈分析頁面將會顯示篩選過濾後的鏈路查詢資訊,包括調用次數和HTTP錯誤數的柱狀圖,調用耗時的時序曲線,以及調用鏈列表。
在調用鏈列表地區,您可以執行以下操作:
散佈圖
散佈圖頁面以時間為橫軸,耗時指標為縱軸,顯示調用鏈的耗時分布情況。將滑鼠懸浮於散點上,可以顯示散點對應的調用鏈的基本資料。單擊散點可以查看調用鏈對應的調用詳情。更多資訊,請參見Trace詳情。
全鏈路彙總
調用鏈分析對查詢到的Span可以按照各個維度進行分析,但這些分析是針對單個Span,並未在鏈路層級深度分析。而全鏈路彙總功能支援通過指定條件查詢分布式調用鏈路的TraceId(最多5000個),然後基於這些TraceId查詢對應的Span,並彙總這些Span得出最終結果,整個過程保證彙總的鏈路完整性。
由於全鏈路彙總是按照查詢條件後彙總計算相應資料的,當您選擇的條件比較多時,查詢計算存在一定延遲,請耐心等待。
參數 | 說明 |
spanName | Span名稱。 |
serviceName | Span對應的應用程式名稱。 |
請求數/請求比例 | 請求比例表示調用當前Span節點的請求比例數。 例如10%表示10%的請求會調用當前Span。 計算公式:請求比例=當前Span的請求數/總請求數*100% |
span數/請求倍數 | 請求倍數表示平均每個請求調用當前Span的次數。 例如1.5表示每個請求會調用當前Span 1.5次 。 計算公式:請求倍數=Span數/Span的請求數 |
平均自身耗時/比例 | 平均自身耗時表示不包括子Span的耗時。 例如,對於Span A和其子Span B, 其中A耗時為10 ms, B耗時為8 ms,那麼A的自身耗時為2 ms。 計算公式:自身耗時=Span耗時-所有子Span耗時總和 重要 如果是非同步呼叫,自身耗時即Span耗時,無需減去子Span耗時。 |
平均耗時 | 該Span的平均耗時。 |
異常數/異常比例 | 異常比例表示出現異常的請求比例。 例如3%表示有3%的請求出現異常。 計算公式:異常比例=異常請求數/總請求數 重要 異常請求數不等於異常數(Span調用異常的次數),當請求倍數大於1時, 一個異常請求可能對應多個異常數。 |
樣本:如下表所示,Span A調用Span B和Span C,各參數含義如下。
spanName | serviceName | 請求數/請求比例 | span數/請求倍數 | 平均自身耗時/比例 | 平均耗時 | 異常數/異常比例 | |
A | - | demo | 10/100.00% | 10/1.00 | 5.00ms/25.00% | 20ms | 2/20.00% |
- | B | demo | 4/40.00% | 8/2.00 | 16.00ms/100.00% | 16ms | 2/50.00% |
- | C | demo | 1/10.00% | 1/1.00 | 4.00ms/100.00% | 4ms | 1/100.00% |
對於入口Span,A的請求數/請求比例表示A的請求總數為10次,比例為100%。B的請求數/請求比例為4/40.00%,表示只有4次請求調用了B,同理只有1次請求調用了C,對應的請求比例分別為40%和10%。其餘的請求可能因邏輯判斷或者異常而未調用B和C。這裡反映了請求的分布比例。
A的span數/請求倍數為10/1.00,表示每次請求只調用了一次A,但是對於B而言,4次請求有8個Span,每次請求調用了2次B。這裡反映了一次請求中Span的分布比例。
A的平均自身耗時/比例為5.00ms/25.00%,表示A除了B和C之外的平均耗時為5ms,只佔整體平均耗時的25%。而子Span B和C因為沒有子Span,所以自身耗時即整體耗時。這裡反映了耗時的分布比例。
A的異常數/異常比例為2/20.00%,表示A發生了2次異常,佔整體請求的20%。B的異常數/異常比例為2/50.00%,因為每次請求調用了2次B,總的請求數是4,異常比例是50%,那麼2次請求發生了異常。所以B的分布可能是:一共有4次請求,其中有2次請求調用的4個Span B都是正常的,剩下2次請求中,首次Span B的調用都發生異常,然後重新調用成功。
如果需要查看具體的調用鏈詳情,可以將滑鼠懸浮於藍色的Span名稱上,在懸浮框中可以看到推薦的調用鏈ID,單擊TraceId即可查看。
全鏈路拓撲
全鏈路拓撲頁簽顯示調用鏈彙總後的應用間拓撲。如下圖所示,表示兩個應用間存在調用關係,同時展示相應的請求數、錯誤數、回應時間等資料。
錯/慢Trace分析
錯/慢Trace分析旨在協助使用者分析批量異常調用鏈的共有維度特徵,例如錯/慢調用都來自同一個主機、同一個介面,可以分別篩選對應的主機、介面下的Trace,或通過組合維度(例如serviceName="arms-demo" AND ip="192.168.1.1"
)篩選Trace,快速定位系統異常。錯/慢Trace分析也可以用於梳理慢介面,對系統進行定向最佳化等。
慢Trace分析
ARMS對1000條耗時最長的Trace進行分析,展示與慢Trace顯著相關的Top 5維度資訊。
上圖的樣本表示,在1000條耗時最長的Trace中,有488條Trace的IP為10.219.152.24,且這些Trace的平均耗時為16.3s,說明IP為10.219.152.24的主機可能負載過高,導致回應時間較長。建議進入錯/慢Trace分析頁簽進行深入分析。
右側的164是該維度異常分數,分數越高,該維度是慢調用根因的可能性越大。
慢Trace分析詳情
在慢Trace分析功能中,ARMS會在當前查詢條件下,以耗時大於耗時對比臨界值的Trace中耗時最高的1000條Trace作為樣本,與隨機抽樣的耗時小於耗時對比臨界值的1000條Trace進行對比,分析並識別出與慢調用顯著性相關的Top 3關鍵特徵。
您可以根據需求,自訂耗時對比臨界值。例如,如果您想分析耗時超過1分鐘的Trace的維度特徵,可以修改閾值為60000ms。
上圖樣本中可以看到,IP為10.219.152.24的Trace在慢Trace樣本中佔比最高,達到46.8%,並且IP為10.219.152.24的Trace僅占正常Trace的6.8%,說明大量的慢調用經過這個IP,且經過這個IP的調用鏈耗時都比較高,也許這個IP對應的主機出現了異常,值得深入分析。
同樣,經過IP為10.219.154.56的Trace和介面名為/eventCenter的Trace也值得深入分析。
單擊柱狀圖表徵圖,對IP為10.219.152.24的Trace進行下鑽分析。
可以發現大量慢調用都來自/eventCenter介面,單擊/eventCenter介面的柱狀圖,繼續下鑽分析。
最終可以定位到根因ip="10.219.152.24" AND spanName="/eventCenter"
。
您也可以直接在搜尋方塊中填入任意篩選條件,ARMS會對您指定的Trace進行分析。查詢文法說明,請參見調用鏈分析查詢用法說明。
錯Trace分析
ARMS隨機播放1000條錯Trace進行分析,展示與錯Trace顯著相關的Top 5維度資訊。
上圖的樣本表示,在1000條錯Trace樣本中,來自openVPromCluster介面的Trace佔24.3%,並且這些Trace的錯誤率達到了98.78%,說明openVPromCluster介面很可能出現了異常,導致大量錯誤調用。建議進入錯/慢Trace分析頁簽進行深入分析。
右側的92是該維度異常分數,分數越高,該維度是錯調用根因的可能性越大。
錯Trace分析詳情
在錯Trace分析功能中,ARMS會隨機抽樣1000條錯Trace和1000條正常Trace,分析識別出與錯調用顯著性相關的Top 3關鍵特徵。
上圖樣本中可以看到,在1000條錯Trace樣本中,介面名為/components/api/v1/mall/product的Trace佔100%,且僅有9.8%的正常Trace介面名為/components/api/v1/mall/product,這說明所有的錯Trace都來自介面/components/api/v1/mall/product,並且經過這個介面的Trace幾乎都出錯了,該介面很有可能出現了異常,值得深入分析。
同樣,經過IP為10.0.0.47和10.0.0.37的Trace大部分調用都出錯了,也值得深入分析。
單擊spanName = "/components/api/v1/mall/product"
的柱狀圖表徵圖,可以過濾出介面名為/components/api/v1/mall/product的Trace,然後對相關Trace進行下鑽分析。
可以發現錯誤調用集中在10.0.0.47、10.0.0.37和10.0.0.50的IP上,繼續下鑽。
發現在serviceName="mall-gateway" AND spanName="/components/api/v1/mall/product" AND ip="10.0.0.47"
篩選條件下檢索的所有Trace都是錯Trace,說明在10.0.0.47主機中,mall-gateway應用的/components/api/v1/mall/product介面在該時段出現了異常。
錯/慢Trace分析更多使用案例,請參見通過錯/慢調用鏈排查應用產生異常的原因。
Trace詳情
組件標籤(圖示①)
標籤中展示了調用類型以及調用鏈中該類型Span的數量。
調用類型通過Span屬性中的component.name來區分(attributes.component.name)。
單擊組件標籤,可以在調用鏈中隱藏對應類型的Span,方便您過濾不需要關注的Span。再次單擊即可恢複顯示。
調用鏈軌跡圖(圖示②)
Trace軌跡圖用於展示整個跟蹤鏈路及Span資料分布情況。
Trace軌跡圖中每個條形均代表一個Span(僅展示耗時佔總耗時比例大於1%的Span)。
不同的應用通過不同的顏色進行區分。例如,在上文樣本圖中,藍色代表opentelemetry-demo-adservice應用。
軌跡圖中的黑線長度代表Span自身耗時,即Span耗時減去Sum(子Span耗時)。例如Span A調用Span B,A耗時為10毫秒,B耗時為8毫秒,那麼A的自身耗時為2毫秒。
時間軸表示整條Trace資料的時間跨度。
調用鏈聚焦與過濾(圖示③)
該地區中的每一行代表一條Span資料,並展示父級Span和子級Span之間的層級關係。Span資料前面的標號表示該父級Span所擁有的子級Span數量。在該地區,您可以執行如下操作:
摺疊:單擊表徵圖,摺疊或展開Span資料。
聚焦:選中目標Span資料,單擊表徵圖,系統將只顯示該Span以及該Span下遊的資料,實現Span資料聚焦。
取消聚焦:單擊表徵圖,取消Span資料聚焦。
過濾:在搜尋方塊中輸入目標Span攜帶的資訊(可以是Span名稱、應用程式名稱、屬性等內容),即可過濾目標Span,展示從入口Span到目標Span的調用路徑。如果要取消過濾,刪除搜尋方塊中的內容並單擊搜尋即可。
放大與縮小:單擊表徵圖,將會放大調用鏈,隱藏Trace軌跡圖。單擊表徵圖將恢複Trace軌跡圖展示。
Span詳情(圖示④)
Span詳情地區包含了當前Span的詳細資料,以及關聯的指標、日誌和異常資訊,並能管理自訂互動事件和觸發互動事件。
附加資訊:附加資訊包含Span的屬性(Attributes)、資源(Resources)、詳情(Details)和事件(Events)四種資訊,並按照類型進行分組。關於Span詳情中的欄位說明,請參考調用鏈分析參數說明。
指標:展示與Span關聯的指標。對於ARMS Java應用的調用鏈,將展示JVM 和主機維度指標;對於開源探針上報的調用鏈,將展示RED黃金三指標。
日誌關聯:如您為應用關聯了Log Service日誌庫,可快速跳轉至日誌庫並查詢當前TraceId對應的業務日誌。
異常:當Span記錄了異常資訊時,此頁面會展示具體的異常資訊。
事件配置:您可以為調用鏈的一個或多個屬性設定互動事件,方便查詢更詳盡的調用鏈或查看與調用鏈關聯的日誌、指標等資訊。自訂互動事件相關的配置說明請參見為調用鏈配置自訂互動事件。
二次開發
鏈路資料儲存在您的SLS中,Project名稱為proj-xtrace-<encode>-<region-id>,logstore名稱為logstore-tracing。其中<region-id>是調用鏈分析對應的地區,例如cn-hangzhou。資料格式的含義,請參見調用鏈分析參數說明。您可以基於已儲存的全量鏈路詳細資料進行二次開發,自由組合篩選條件與彙總維度進行即時分析,可以滿足不同情境的自訂診斷需求。更多使用方法,請參見即時分析鏈路資料。