全部產品
Search
文件中心

Application Real-Time Monitoring Service:通過錯/慢調用鏈排查應用產生異常的原因

更新時間:Jun 03, 2026

在生產環境中,引發應用異常(如耗時突增、錯誤率突增)的原因有很多,常見的包括流量不均、單機故障、程式異常和相依元件故障等。在新應用上線或大促備戰前通常建議做一次系統性的效能調優,分析當前系統存在哪些效能瓶頸,梳理出常出錯的或耗時較高的介面和組件進行最佳化。本文介紹如何使用ARMS調用鏈分析的錯/慢Trace分析功能,定位系統或應用產生錯、慢調用的原因,協助您排查問題、定位系統效能瓶頸。

前提條件

  • 已為應用安裝探針,具體操作,請參見應用監控接入概述

  • 已切換至新版控制台。

    應用列表頁面標題旁,單擊切換新版按鈕完成切換。

體驗Demo

ARMS控制台Demo

通過錯Trace分析功能排查錯調用根因

步驟一:定位錯調用發生時間

  1. 登入ARMS控制台,在左側導覽列選擇应用监控 > 应用列表

  2. 应用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。

    說明

    语言列的表徵圖含義如下:

    Java表徵圖:接入應用監控的Java應用。

    image:接入應用監控的Golang應用。

    image:接入應用監控的Python應用。

    -:接入可觀測鏈路 OpenTelemetry 版的應用。

  3. 在上方導覽列單擊調用鏈分析

    說明

    僅新版控制台支援進入調用鏈分析頁面,切換新版控制台的操作請參見前提條件

    可以發現樣本應用mall-gateway在15:20~15:28時間段出現了一些HTTP錯誤的調用。

    image

  4. 修改查詢時間段為HTTP錯誤發生的時間,開始排查問題。

    調用鏈分析頁簽中,將右上方時間範圍縮小為8min(例如 2024-06-26 15:20 ~ 2024-06-26 15:28),頁面即展示該時段的調用次數柱狀圖、HTTP 500 錯誤數柱狀圖及耗時百分位折線圖,可據此確認錯誤高發的具體時間視窗。

步驟二:定位錯誤調用所在的介面或組件

錯/慢Trace分析頁簽,可以發現錯Trace主要集中在/components/api/v1/mall/product介面上,且全都是500錯誤。

排查/components/api/v1/mall/product介面

  1. 在下方圖表中單擊spanName: /components/api/v1/mall/product

    image

    此時調用鏈分析會自動將serviceName="mall-gateway" AND spanName="/components/api/v1/mall/product"設定為篩選條件。

    可以發現/components/api/v1/mall/product介面的調用鏈全都出錯了。

    共搜尋到 1440 次調用,錯誤碼均為 HTTP 500錯/慢Trace分析 Tab 顯示分析對象為 1000 條錯 Trace(隨機抽樣)、0 條正常 Trace。

  2. 列表頁簽,單擊任意Trace右側的詳情,可以查看錯誤詳情。

    Trace詳情顯示調用鏈路包含三個Span,其中 mall-user-server 服務的 /components/api/v1/http/success 介面返回狀態代碼 500。在右側Span詳情的 Attribute 標籤頁中,http.status_code 值為 500,確認該介面為錯誤來源。

通過慢Trace分析功能梳理慢介面

步驟一:定位慢調用發生時間

  1. 登入ARMS控制台,在左側導覽列選擇应用监控 > 应用列表

  2. 应用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。

    說明

    语言列的表徵圖含義如下:

    Java表徵圖:接入應用監控的Java應用。

    image:接入應用監控的Golang應用。

    image:接入應用監控的Python應用。

    -:接入可觀測鏈路 OpenTelemetry 版的應用。

  3. 在上方導覽列單擊調用鏈分析

    可以發現樣本應用mall-user-server在15:40~15:49時間段存在許多5s以上的慢調用。

    image

  4. 修改查詢時間段為慢調用發生的時間。

    例如在右上方時間選取器中選擇 2024-06-26 15:40 ~ 2024-06-26 15:49(9分鐘區間)。

  5. 錯/慢Trace分析頁簽修改耗時對比臨界值為5000ms,開始排查問題。

    頁面下方展示慢Trace分析結果,按貢獻度排列影響慢Trace的關鍵特徵(如介面名、HTTP響應狀態代碼、命名空間),每項對比該特徵在慢Trace與正常Trace中的佔比差異。

步驟二:定位慢調用所在的介面或組件

錯/慢Trace分析頁簽,可以發現慢Trace主要集中在介面名為/components/api/v1/http/success、上報協議為EagleEye,以及命名空間為arms-test的Span上,依次對它們進行排查。

分析基於54條慢Trace(定義為耗時≥5s)與837條正常Trace(隨機抽樣)的對比結果:Top1關鍵特徵 /components/api/v1/http/success 在慢Trace中佔比100.0%、正常Trace中佔比0.0%;Top2 EagleEye 協議在慢Trace中100.0%、正常Trace中37.28%;Top3命名空間 arms-test 在慢Trace中100.0%、正常Trace中37.28%。

排查/components/api/v1/http/success介面

在下方圖表中單擊spanName: /components/api/v1/http/success

image

此時調用鏈分析會自動將serviceName="mall-user-server" AND spanName="/components/api/v1/http/success"設定為篩選條件。

可以發現,在該篩選條件下,每一次調用耗時都大於5s,/components/api/v1/http/success介面即為慢調用根因。

耗時百分位地區同樣可以發現調用平均耗時大於5s。

排查attributes._arms.trace.protocol.type=EagleEye的Span

在下方圖表中單擊attributes._arms.trace.protocol.type: EagleEye

image

此時調用鏈分析會自動將serviceName="mall-user-server" AND attributes._arms.trace.protocol.type="EagleEye"設定為篩選條件。

可以發現,在該篩選條件下,慢Trace的也指向了/components/api/v1/http/success介面。

慢Trace分析基於54條慢Trace和312條正常Trace進行對比,除Top1指向 /components/api/v1/http/success 介面(占慢Trace 100%)外,Top2顯示服務端IP 10.0.0.42 占慢Trace 46.3%,Top3顯示 http 組件類型占慢Trace 100%。

/components/api/v1/http/success介面加入篩選條件中,可以發現每一次調用的耗時都大於5秒。

耗時百分位地區同樣可以發現調用平均耗時大於5s。

排查命名空間為arms-test的Span

serviceName="mall-user-server" AND attributes.namespace="arms-test"篩選條件下,可以發現,慢Trace的依然指向/components/api/v1/http/success介面。

錯/慢Trace分析結果顯示,在54條慢Trace和312條正常Trace的對比中,Top1關鍵特徵為介面 /components/api/v1/http/success,貢獻度為1,該介面在慢Trace中佔比100%,在正常Trace中佔比0%。

/components/api/v1/http/success介面加入篩選條件中,可以發現每一次調用的耗時都大於5秒。

經過上述的排查,可以發現慢調用都來自於介面/components/api/v1/http/success attributes._arms.trace.protocol.type="EagleEye"arms-test命名空間自身都沒有問題,它們中出現了慢調用是因為/components/api/v1/http/success介面服務部署在arms-test命名空間,且它的調用鏈上報協議類型為EagleEye。