「相依性」是由您應用程式呼叫的元件。 其通常是使用 HTTP 呼叫的服務、資料庫或檔案系統。 Application Insights (部分內容可能是機器或 AI 翻譯) 會測量相依性呼叫的持續時間,以及呼叫是否失敗,並收集相依性名稱之類的資訊。 您可以調查特定的相依性呼叫,然後將其與要求和例外狀況相互關聯。
自動追蹤的相依性
本章節連結到相依性呼叫的清單,系統會自動偵測這些呼叫為相依性,無需對您的應用程式程式碼做任何額外修改。 這些相依項目會在 Application Insights 中的應用程式對應和交易診斷檢視中加以視覺化。
如果您的相依性不在清單中,您仍然可以手動追蹤它,請參閱手動追蹤相依性 (部分內容可能是機器或 AI 翻譯)。
如需所有自動收集相依性的清單,請參閱新增和修改適用於 .NET、Java、Node.js 和 Python 應用程式的 Azure 監視器 OpenTelemetry 中的特定語言索引標籤。
自動相依性監視如何運作?
依據遙測收集方法,使用下列技術之一自動收集相依性。
OpenTelemetry 檢測設備程式庫可用來自動收集相依性,例如 HTTP、SQL 和 Azure SDK 呼叫。 這些程式庫會使用
DiagnosticSource或同等機制連結到支援的架構和客戶端程式庫。在 Azure App Services (部分內容可能是機器或 AI 翻譯) 等支援的環境中,自動檢測 (部分內容可能是機器或 AI 翻譯) 功能是可用的,並在預設情況下啟用,可在執行時插入遙測收集器,而無需變更程式碼。
在其他環境中,開發人員可以使用 Azure.Monitor.OpenTelemetry.* 套件和 OpenTelemetry API 來手動設定檢測設備,以控制哪些要追蹤的相依性項目,以及如何擴充或篩選這些依賴性項目。
手動追蹤相依性
當自動收集不符合您的需求時,您可以手動追蹤相依性。
小提示
針對新的專案,我們建議使用 OpenTelemetry 以取得更佳的彈性和未來的相容性。
若要了解如何手動追蹤相依性,請參閱新增和修改適用於 .NET、Java、Node.js 和 Python 應用程式的 Azure 監視器 OpenTelemetry。
哪裡可以找到相依性資料
Application Insights 中的下列工具和檢視可讓您輕鬆探索和分析相依性遙測:
| 瀏覽次數 | 說明 |
|---|---|
| 應用程式地圖 | 提供應用程式相依性及其與外部服務關係的視覺效果表示。 |
| 交易診斷 | 顯示端對端交易詳細資料,將伺服器端作業與相依性呼叫相互關聯。 |
| 失敗與效能檢視中的瀏覽器索引標籤 | 醒目提示來自客戶端瀏覽器的 AJAX 呼叫。 |
| 失敗與效能檢視中的伺服器索引標籤 | 可讓您鑽研緩慢或失敗的伺服器要求,並檢查相關的相依性呼叫。 請參閱從要求追蹤至相依性 (部分內容可能是機器或 AI 翻譯) 範例,以及與相依性關聯的失敗呼叫相關的失敗要求 (部分內容可能是機器或 AI 翻譯)。 |
| Azure 監視器記錄 | 啟用相依性遙測的進階查詢和分析。 請參閱使用 KQL 追蹤相依性的範例 (部分內容可能是機器或 AI 翻譯)。 |
診斷速度緩慢的要求
每個要求事件都會與相依性呼叫、例外狀況及處理要求時所追蹤的其他事件相關聯。 因此,如果某些要求執行效能很差,您可以了解是否是因為某個相依性的回應太慢。
從要求追蹤至相依性
選取左側 [效能] 索引卷標,然後選取頂端的 [ 相依性] 索引卷標。
在 整體 底下,選取 相依性名稱。 選取相依性之後,它會顯示該相依性持續時間分佈的圖表。
選取右下方的 [範例] 按鈕。 然後選取範例以查看端對端交易詳細資料。
剖析您的即時網站
.NET 分析工具會追蹤對您即時站台發出的 HTTP 呼叫,並顯示您程式碼中的哪些函式耗時最久。
失敗的要求
失敗的要求可能也會與失敗的相依性呼叫關聯。
選取左側的 [失敗] 索引標籤,然後選取頂端的 [相依性] 索引標籤。
在這裡您會看到失敗的相依性計數。 若要取得失敗發生次數的詳細資訊,請選取底部資料表中的相依性名稱。 選取右下方的 [相依性] 按鈕,以查看端對端交易詳細資料。
記錄 (分析)
您可以在 Kusto 查詢語言中追蹤相依性。 以下是一些範例。
尋找任何失敗的相依性呼叫:
dependencies | where success != "True" | take 10尋找 AJAX 呼叫︰
dependencies | where client_Type == "Browser" | take 10尋找與要求關聯的相依性呼叫:
dependencies | where timestamp > ago(1d) and client_Type != "Browser" | join (requests | where timestamp > ago(1d)) on operation_Id尋找與頁面檢視關聯的 AJAX 呼叫:
dependencies | where timestamp > ago(1d) and client_Type == "Browser" | join (browserTimings | where timestamp > ago(1d)) on operation_Id
開放原始碼 SDK
就像每個 Application Insights SDK 一樣,相依性收集模組也是開放原始碼。 請在官方 GitHub 存放庫參閱程式碼及參與其製作,或回報問題。
後續步驟
- 請檢閱相依性追蹤常見問題集 (部分內容可能是機器或 AI 翻譯) 中的常見問題。
- 請參閱 Application Insights 的資料模型。
- 瀏覽 Application Insights 所支援的平臺。