定位業務異常問題難度大、效率低,為瞭解決這一難題,ARMS應用監控通過結合調用鏈路和日誌分析,可以快速、準確地定位業務異常問題,提升微服務架構下的診斷效率。
前提條件
-
已開通Log ServiceSLS。登入Log Service控制台時,根據頁面提示開通Log Service。
-
已建立Project,詳情請參見管理Project。
-
已建立Logstore,詳情請參見建立基礎LogStore。
背景資訊
在使用調用鏈路和日誌分析定位業務異常問題前,需要先瞭解Metrics、Tracing和Logging三個概念。
-
Metrics:應用的關鍵效能指標,如應用提供服務要求量、應用提供服務平均回應時間、應用依賴服務要求量等。
-
Tracing:調用鏈路,應用的任何介面調用、請求響應等動作都會綁定到完整的鏈路。
-
Logging:業務日誌,應用的任何介面調用、請求響應等動作都會輸出完整的業務日誌。
當應用出現業務異常問題時,應用指標統計圖會出現明顯波動,您可據此粗略地分析異常問題;通過完整的調用鏈路和業務日誌分析,可以精準定位業務異常問題。
關聯業務日誌與TraceId
登入ARMS控制台,在左側導覽列選擇。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
:接入應用監控的Python應用。-:接入Managed Service for OpenTelemetry的應用。
-
在左側導覽列中單擊应用设置,並在右側單擊自定义配置頁簽。
-
在自定义配置頁簽的应用日志关联配置地區,選擇日誌源為Log Service,開啟關聯業務日誌與TraceId開關,選擇Log Service所在地區,然後綁定Project和Logstore。
在 關聯索引 下拉框中選擇 全文索引。
-
在自定义配置頁簽左下角單擊保存。
從應用指標的角度排查業務異常問題
登入ARMS控制台,在左側導覽列選擇。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
:接入應用監控的Python應用。-:接入Managed Service for OpenTelemetry的應用。
-
在左側導覽列單擊应用总览,在頂部選擇概览分析,然後在右上方選擇或自訂設定目標時間段。
概览分析頁面展示目標應用的關鍵計量,如应用提供服务请求量、应用提供服务平均响应时间、应用依赖服务请求量等。
-
在概览分析頁面選擇某個應用指標,在該指標的曲線圖上拖動滑鼠選取目標時間段。
本樣本以应用提供服务平均响应时间指標為例。選取目標時間段後,快顯功能表顯示以下操作選項:進入所選時間段、查看所選時間段的診斷報告、查看所選時間段的調用鏈路、查看所選時間段的日誌。
-
查看步驟4所選時間段的調用鏈路。
-
單擊查看所選時間段的調用鏈路。
-
在調用鏈路列表面板選擇状态異常(顯示
)的調用鏈路記錄,單擊該調用鏈路記錄TraceId列下的TraceId值。您也可以在該調用鏈路記錄操作列下單擊查看日誌,查看該時間點的業務日誌,分析業務異常原因。
-
單擊调用链路頁簽,然後在详情列下單擊
表徵圖。 -
單擊方法栈,在鏈路詳情資訊頁面尋找錯誤資訊,滑鼠移至上方在錯誤資訊上可查看異常原因。
鏈路詳情資訊頁面左側以樹形結構展示各方法調用及其調用次數與耗時,右側展示異常詳情,包括異常類型(如
java.lang.RuntimeException)及具體錯誤內容(如"建立Grafana檔案夾失敗")。
-
-
查看步驟4所選時間段的業務日誌。
-
單擊查看所選時間段的日誌。
-
在日志分析頁面選擇異常錯誤資訊,查看日誌並定位業務異常原因。
例如,通過
traceId過濾日誌條目,在日誌詳情中查看異常堆棧資訊,定位到RegisterPromClusterServlet拋出java.lang.RuntimeException,根因為建立grafana檔案夾失敗。
-
從介面調用的角度排查業務異常問題
登入ARMS控制台,在左側導覽列選擇。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
:接入應用監控的Python應用。-:接入Managed Service for OpenTelemetry的應用。
-
在左側導覽列單擊接口调用。
-
在接口调用頁面的介面列表地區單擊目標介面,然後單擊调用链查询頁簽。
-
在调用链查询頁簽選擇状态異常(顯示
)的介面調用記錄。篩選後列表展示異常介面調用記錄,表格包含產生時間、介面名稱、所屬應用、耗時、狀態、TraceId、操作列。樣本中三條選項組均為 302,其中兩條耗時 2.5s。在操作列單擊查看日誌可進一步排查對應調用的詳細資料。
-
查看介面調用的調用鏈路。
-
在目標介面調用記錄的TraceId列下單擊TraceId的值。
-
單擊调用链路頁簽,然後在详情列下單擊
表徵圖。 -
單擊方法栈,在鏈路詳情資訊頁面尋找錯誤資訊,滑鼠移至上方在錯誤資訊上可查看異常原因。
鏈路詳情資訊頁面左側以樹形結構展示各方法調用及其調用次數與耗時,右側展示異常詳情,包括異常類型(如
java.lang.RuntimeException)及具體錯誤內容(如"建立Grafana檔案夾失敗")。
-
-
查看介面調用的日誌。
-
在目標介面調用記錄的操作列下單擊查看日誌。
-
在日志分析頁面選擇異常錯誤資訊,查看日誌並定位業務異常原因。
例如,通過
traceId過濾日誌條目,在日誌詳情中查看異常堆棧資訊,定位到RegisterPromClusterServlet拋出java.lang.RuntimeException,根因為建立grafana檔案夾失敗。
-
相關文檔
您可以通過建立警示對相關指標進行異常檢測。具體操作,請參見應用監控警示規則。