共用方式為


Application Insights 的相依性追蹤

「相依性」是由您應用程式呼叫的元件。 其通常是使用 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 存放庫參閱程式碼及參與其製作,或回報問題。

後續步驟