共用方式為


Application Insights 的相依性追蹤

「相依性」是由您應用程式呼叫的元件。 其通常是使用 HTTP 呼叫的服務、資料庫或檔案系統。 Application Insights (部分內容可能是機器或 AI 翻譯) 會測量相依性呼叫的持續時間,以及呼叫是否失敗,並收集相依性名稱之類的資訊。 您可以調查特定的相依性呼叫,然後將其與要求和例外狀況相互關聯。

自動追蹤的相依性

本章節連結到相依性呼叫的清單,系統會自動偵測這些呼叫為相依性,無需對您的應用程式程式碼做任何額外修改。 這些相依項目會在 Application Insights 中的應用程式對應交易診斷檢視中加以視覺化。

如果您的相依性不在清單中,您仍然可以手動追蹤它,請參閱手動追蹤相依性 (部分內容可能是機器或 AI 翻譯)。

關於所有自動收集的相依性清單,請參閱 Configure automatic data collection and resource detectors for Azure Monitor OpenTelemetry 中的語言專屬分頁。

備註

對於網頁, Application Insights JavaScript SDK 會自動收集透過 XMLHttpRequest 建立的 AJAX 相依關係。

自動相依性監視如何運作?

依據遙測收集方法,使用下列技術之一自動收集相依性。

  • OpenTelemetry 儀器函式庫 用於自動收集 HTTP、SQL 及 Azure SDK 呼叫等相依性。 這些程式庫會使用 DiagnosticSource 或同等機制連結到支援的架構和客戶端程式庫。

  • 在支援的環境中,如 Azure App Servicesautoinstrumentation 預設啟用,可在執行時注入遙測收集器,無需修改程式碼。

  • 在其他環境中,開發者可以手動配置 Azure.Monitor.OpenTelemetry.* 套件,並使用 OpenTelemetry API 來控制要追蹤哪些相依性,以及如何豐富或過濾這些相依性。

手動追蹤相依性

當自動收集不符合您的需求時,您可以手動追蹤相依性。

欲了解如何手動追蹤相依性,請參閱 配置自動資料收集與資源偵測器 for Azure Monitor OpenTelemetrys

備註

對於網頁,你可以使用 Application Insights JavaScript SDK 啟用 真實使用者監控

哪裡可以找到相依性資料

Application Insights 中的下列工具和檢視可讓您輕鬆探索和分析相依性遙測:

瀏覽次數 說明
應用程式地圖 提供應用程式相依性及其與外部服務關係的視覺效果表示。
交易診斷 顯示端對端交易詳細資料,將伺服器端作業與相依性呼叫相互關聯。
失敗與效能檢視中的瀏覽器索引標籤 醒目提示來自客戶端瀏覽器的 AJAX 呼叫。
失敗與效能檢視中的伺服器索引標籤 可讓您鑽研緩慢或失敗的伺服器要求,並檢查相關的相依性呼叫。

請參閱從要求追蹤至相依性 (部分內容可能是機器或 AI 翻譯) 範例,以及與相依性關聯的失敗呼叫相關的失敗要求 (部分內容可能是機器或 AI 翻譯)。
Azure 監控日誌 啟用相依性遙測的進階查詢和分析。

請參閱使用 KQL 追蹤相依性的範例 (部分內容可能是機器或 AI 翻譯)。

診斷速度緩慢的要求

每個要求事件都會與相依性呼叫、例外狀況及處理要求時所追蹤的其他事件相關聯。 因此,如果某些要求執行效能很差,您可以了解是否是因為某個相依性的回應太慢。

從要求追蹤至相依性

選取左側 [效能] 索引卷標,然後選取頂端的 [ 相依性] 索引卷標。

整體 底下,選取 相依性名稱。 選取相依性之後,它會顯示該相依性持續時間分佈的圖表。

螢幕擷取畫面顯示 已開啟 [相依性] 索引標籤,以選取圖表中的相依性名稱。

選取右下方的 [範例] 按鈕。 然後選取範例以查看端對端交易詳細資料。

顯示選取範例以查看端對端交易詳細資料的螢幕擷取畫面。

失敗的要求

失敗的要求可能也會與失敗的相依性呼叫關聯。

選取左側的 [失敗] 索引標籤,然後選取頂端的 [相依性] 索引標籤。

顯示選取失敗要求圖表的螢幕擷取畫面。

在這裡您會看到失敗的相依性計數。 若要取得失敗發生次數的詳細資訊,請選取底部資料表中的相依性名稱。 選取右下方的 [相依性] 按鈕,以查看端對端交易詳細資料。

記錄 (分析)

你可以在 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 一樣,相依性收集模組也是open source。 閱讀並貢獻程式碼或回報問題,請前往官方GitHub倉庫

後續步驟