使用 Application Insights 尋找和診斷執行時間例外狀況

Application Insights 會從您的應用程式收集遙測,以協助識別和診斷執行時間例外狀況。 本教學課程會引導您對應用程式完成此程序。 您會了解如何:

  • 修改專案以啟用例外狀況追蹤。
  • 識別應用程式不同元件的例外狀況。
  • 檢視例外狀況的詳細資料。
  • 將例外狀況的快照集下載至 Visual Studio 以進行偵錯。
  • 使用查詢語言分析失敗要求的詳細資料。
  • 建立新的工作專案以更正錯誤的程式碼。

必要條件

若要完成本教學課程:

  • 使用下列工作負載安裝 Visual Studio 2019
    • ASP.NET 和 Web 開發
    • Azure 開發
  • 下載並安裝 Visual Studio 快照集偵錯工具 \(英文\)。
  • 啟用 Visual Studio 快照集偵錯工具
  • 將 .NET 應用程式部署至 Azure 並啟用 Application Insights SDK
  • 修改開發或測試環境中的程式碼,以產生例外狀況,因為教學課程會追蹤應用程式中的例外狀況識別。

登入 Azure

登入 Azure 入口網站

分析失敗

Application Insights 會收集應用程式中的所有失敗。 它可讓您檢視其跨不同作業的頻率,以協助您專注于影響最高的這些問題。 然後,您可以向下切入這些失敗的詳細資料,以找出根本原因。

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

  2. 若要開啟 [失敗]窗格,請選取 [調查] 功能表下的 [失敗],或選取[失敗的要求] 圖表。

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

  3. [ 失敗的要求] 窗格會顯示失敗的要求計數,以及應用程式每個作業受影響的使用者數目。 藉由依使用者排序此資訊,您可以識別最影響使用者的失敗。 在此範例中, GET Employees/CreateGET Customers/Details 可能是因為大量失敗和受影響的使用者而要調查的候選項目。 選取作業會顯示右窗格中此作業的詳細資訊。

    顯示 [失敗的要求] 窗格的螢幕擷取畫面。

  4. 縮小時間範圍,以將失敗率突然增加的期間放大顯示。

    顯示 [失敗的要求] 視窗的螢幕擷取畫面。

  5. 選取具有篩選結果數目的按鈕,以查看相關的範例。 建議的範例具有來自所有元件的相關遙測,即使取樣可能在任何元件中都生效也一樣。 選取搜尋結果以查看失敗的詳細資料。

    顯示失敗要求範例的螢幕擷取畫面。

  6. 失敗要求的詳細資料會顯示甘特圖,顯示此交易中有兩個相依性失敗,這也會造成交易總持續時間的 50% 以上。 此體驗會在與這項作業識別碼相關的分散式應用程式元件上呈現所有遙測。 您可以選取任何專案,以查看其右側的詳細資料。

    顯示失敗要求詳細資料的螢幕擷取畫面。

  7. 作業詳細資料也會顯示格式例外狀況,這似乎造成失敗。 您可以看到這是因為不正確郵遞區號。 您可以開啟偵錯快照集,以查看 Visual Studio 中的程式碼層級偵錯資訊。

    顯示例外狀況詳細資料的螢幕擷取畫面。

識別失敗的程式碼

快照集偵錯工具會收集您應用程式中最常見之例外狀況的快照集,以協助您診斷生產環境中的根本原因。 您可以檢視入口網站中的偵錯快照集,以查看呼叫堆疊並檢查每個呼叫堆疊框架的變數。 之後,您可以下載快照集並在 Visual Studio 2019 Enterprise 中開啟原始程式碼,以偵錯原始程式碼。

  1. 在例外狀況的屬性中,選取 [ 開啟偵錯快照集]。

  2. [ 偵錯快照集] 窗格隨即開啟,其中包含要求的呼叫堆疊。 選取任何方法,即可在要求時檢視所有區域變數的值。 從此範例中的頂端方法開始,您可以看到沒有值的區域變數。

    顯示 [偵錯快照集] 窗格的螢幕擷取畫面。

  3. 具有有效值的第一個呼叫是 ValidZipCode。 您可以看到郵遞區號是以無法轉譯成整數的字母來提供。 此問題似乎是必須更正之程式碼中的錯誤。

    此螢幕擷取畫面顯示必須更正之程式碼中的錯誤。

  4. 然後,您可以將此快照集下載到 Visual Studio,您可以在其中找到必須更正的實際程式碼。 若要這樣做,請選取 [ 下載快照集]。

  5. 快照集就會載入到 Visual Studio。

  6. 您可以立即在 Visual Studio Enterprise 中執行偵錯工作階段,以快速地識別造成例外狀況的程式碼。

    顯示程式碼中例外狀況的螢幕擷取畫面。

使用分析資料

Application Insights 收集的所有資料都會儲存在 Azure Log Analytics 中,其提供豐富的查詢語言,可讓您以各種方式分析資料。 您可以使用這項資料來分析產生您研究例外狀況的要求。

  1. 選取程式碼上方的 CodeLens 資訊,以檢視 Application Insights 所提供的遙測。

    顯示 CodeLens 中程式碼的螢幕擷取畫面。

  2. 選取 [分析影響 ] 以開啟 Application Insights Analytics。 其會填入數個查詢,提供失敗要求的詳細資料,例如受影響的使用者、瀏覽器和區域。

    顯示包含數個查詢之 Application Insights 視窗的螢幕擷取畫面。

加入工作項目

如果您將 Application Insights 連線到追蹤系統,例如 Azure DevOps 或 GitHub,您可以直接從 Application Insights 建立工作專案。

  1. 返回 Application Insights 中的 [例外狀況屬性] 窗格。

  2. 選取 [新增工作專案]。

  3. [ 新增工作專案] 窗格隨即開啟,其中包含已填入例外狀況的詳細資料。 您可以先新增詳細資訊,再儲存。

    顯示 [新增工作專案] 窗格的螢幕擷取畫面。

下一步

既然您已瞭解如何識別執行時間例外狀況,請前進到下一個教學課程,以瞭解如何識別和診斷效能問題。