使用 Application Insights 尋找並診斷效能問題

Application Insights 會從您的應用程式收集遙測資料,以協助分析其作業和效能。 使用此資訊可識別可能發生的問題,或識別對使用者影響最大的應用程式改善。 本教學課程會引導您完成以下程序:分析應用程式的伺服器元件效能,以及從用戶端角度分析效能。

您會了解如何:

  • 識別伺服器端作業的效能。
  • 分析伺服器作業,以判斷效能緩慢的根本原因。
  • 識別最慢的用戶端作業。
  • 使用查詢語言來分析頁面檢視的詳細資料。

必要條件

若要完成本教學課程:

  • 使用下列工作負載安裝 Visual Studio 2019
    • ASP.NET 和 Web 開發
    • Azure 開發
  • 將 .NET 應用程式部署至 Azure 並啟用 Application Insights SDK
  • 啟用應用程式的 Application Insights Profiler。

登入 Azure

登入 Azure 入口網站

識別緩慢的伺服器作業

Application Insights 會收集您應用程式中不同作業的效能詳細資料。 透過識別持續時間最長的作業,您可以診斷潛在的問題,或為進行中的開發設定目標,以改善應用程式的整體效能。

  1. 選取 [Application Insights] ,然後選取您的訂用帳戶。

  2. 若要開啟 [效能] 面板,請選取 [調查] 功能表下方的 [效能],或選取 [伺服器回應時間] 圖表。

    此螢幕擷取畫面顯示 [效能] 檢視。

  3. [效能] 畫面會顯示應用程式每個作業的計數和平均持續時間。 您可以使用此資訊來識別對使用者影響最大的作業。 在此範例中,GET Customers/DetailsGET Home/Index 是可能的調查候選項目,因其持續時間和呼叫數目相對較高。 其他作業的持續時間可能更高,但很少呼叫,因此,其改善效果可能微乎其微。

    此螢幕擷取畫面顯示 [效能伺服器] 面板。

  4. 此圖形目前顯示選取的作業在一段時間內的平均持續時間。 您可以切換到第 95 個百分位數,以找出效能問題。 將您感興趣的作業釘選至圖表來加以新增。 此圖表顯示有些尖峰值得調查。 若要進一步隔離它們,請縮減圖表的時間範圍。

    此螢幕擷取畫面顯示釘選作業。

  5. 右側的效能面板會顯示所選作業不同要求的持續時間分佈。 請將時間範圍縮小為從第 95 個百分位數開始。 從 [前 3 相依性] 見解卡片,您可以很快地看出外部相依性很可能是交易緩慢的主因。 選取附有範例數目的按鈕,以檢視範例清單。 接著,選取任何範例來檢視交易詳細資料。

  6. 您可以一眼看出,交易的總持續時間最主要來自於對 Fabrikamaccount Azure 資料表的呼叫。 您也可以查看導致交易失敗的例外狀況。 選取清單中的任何項目,以在右側查看其詳細資料。

    此螢幕擷取畫面顯示作業端對端交易詳細資料。

  7. Profiler 可透過顯示為作業執行的實際程式碼和每個步驟所需的時間,協助您深入進行程式碼層級的診斷。 由於 Profiler 會定期執行,因此某些作業可能不具追蹤。 隨著時間累積,將會有更多作業具有追蹤。 若要針對作業啟動 Profiler,選取 [Profiler 追蹤]。

  8. 追蹤會針對每個作業顯示個別事件,讓您可以診斷整體作業持續時間的根本原因。 選取前幾個持續時間最長的範例之一。

  9. 選取 [最忙碌路徑],以醒目提示對作業總持續時間貢獻最大之事件的特定路徑。 在此範例中,您可以看到最慢的呼叫來自 FabrikamFiberAzureStorage.GetStorageTableData 方法。 花費最多時間的部分是 CloudTable.CreateIfNotExist 方法。 如果每次呼叫函數時都會執行這行程式碼,就會取用不必要的網路呼叫和 CPU 資源。 修正程式碼的最佳方式是,將這一行放在只執行一次的某些啟動方法中。

    此螢幕擷取畫面顯示 Profiler 詳細資料。

  10. 畫面頂端的 [效能提示] 證實了過長的持續時間是因為等待。 選取 [等待] 連結,以取得關於解譯不同事件類型的文件。

    此螢幕擷取畫面顯示效能提示。

  11. 如需進一步分析,選取 [下載追蹤] 來下載追蹤。 您可以使用 PerfView \(英文\) 來檢視此資料。

使用伺服器的記錄資料

記錄會提供一種豐富的查詢語言,可讓您用來分析 Application Insights 收集的所有資料。 您可以使用此功能,對要求和效能資料執行深入分析。

  1. 返回作業詳細資料面板,然後選取記錄圖示在記錄 (分析) 中檢視

  2. [記錄] 畫面隨即開啟,面板中每個檢視各有一個查詢。 您可以依原狀執行這些查詢,或根據您的需求作修改。 第一個查詢顯示這項作業過去的持續時間。

    此螢幕擷取畫面顯示記錄查詢。

識別緩慢的用戶端作業

除了識別要最佳化的伺服器處理序,Application Insights 還可以從用戶端瀏覽器的角度來進行分析。 此資訊可協助您識別用戶端元件是否有改善空間,甚至識別不同瀏覽器或不同位置的問題。

  1. 選取 [調查] 底下的 [瀏覽器],然後選取 [瀏覽器效能]。 或者,選取 [調查] 底下的 [效能],然後透過選取右上角的 [伺服器/瀏覽器] 切換按鈕,切換至 [瀏覽器] 索引標籤,以開啟瀏覽器效能摘要。 此檢視會從瀏覽器的觀點提供各種應用程式遙測的視覺效果摘要。

    此螢幕擷取畫面顯示瀏覽器摘要。

  2. 選取其中一個作業名稱、選取右下方的 [範例] 按鈕,然後選取作業。 端對端交易詳細資料會在右側開啟,而您可在其中檢視 [網頁檢視屬性]。 您可以檢視要求頁面的用戶端詳細資料,包括瀏覽器類型及其位置。 這項資訊有助於判斷是否有和特定類型的用戶端相關的效能問題。

    此螢幕擷取畫面顯示 [網頁檢視屬性]。

使用用戶端的記錄資料

就像針對伺服器效能收集的資料一樣,Application Insights 讓所有用戶端資料均可透過使用記錄進行深入分析。

  1. 返回瀏覽器摘要,然後選取記錄圖示在記錄 (分析) 中檢視

  2. [記錄] 畫面隨即開啟,面板中每個檢視各有一個查詢。 第一個查詢顯示不同的頁面檢視過去的持續時間。

    此螢幕擷取畫面顯示 [記錄] 畫面。