使用 Azure Application Insights 尋找並診斷執行階段例外狀況

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

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

Prerequisites

若要完成本教學課程:

登入 Azure

https://portal.azure.com 上登入 Azure 入口網站。

分析失敗

Application Insights 會收集應用程式中的任何失敗,並可讓您檢視錯誤在不同作業間的發生頻率,以協助您專注於影響最大的部分。 您可以再向下鑽研這些失敗的詳細資料,以識別根本原因。

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

  2. 若要開啟 [失敗] 面板中,請選取 [調查] 功能表下方的 [失敗],或按一下 [失敗的要求] 圖形。

    Failed requests

  3. 針對應用程式的每個作業,[失敗的要求] 面板會顯示失敗的要求計數和受影響的使用者數目。 您可以依使用者排序這項資訊,以識別對使用者影響最大的失敗。 在此範例中,GET Employees/CreateGET Customers/Details 是可能的調查候選項目,因其失敗的數目和受影響的使用者為數眾多。 選取作業會在右面板顯示關於此作業的進一步資訊。

    Failed requests panel

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

    Failed requests window

  5. 按一下附有篩選結果數目的按鈕,以查看相關範例。 「建議」範例會包含來自所有元件的相關遙測資料,儘管取樣的標的可能是其中任一元件。 按一下搜尋結果可查看失敗的詳細資料。

    Failed request samples

  6. 失敗要求的詳細資料會顯示甘特圖,說明此交易中有兩個相依性失敗,而這也造就了該交易 50% 以上的總持續時間。 此體驗顯示了所有遙測資料,來源包括與此作業識別碼相關的分散式應用程式的各個元件。 深入了解新的體驗。 您可以選取任何項目,以在右側查看其詳細資料。

    Failed request details

  7. 作業詳細資料亦顯示 FormatException 似乎是導致失敗的原因。 您可以看到這是因為郵遞區號不正確。 您可以在 Visual Studio 中開啟偵錯快照集,以查看程式碼層級的偵錯資訊。

    Exception details

識別失敗的程式碼

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

  1. 在例外狀況的內容中,按一下 [開啟偵錯快照集] 。

  2. [偵錯快照集] 面板隨即開啟,並顯示要求的呼叫堆疊。 按一下任一方法,即可檢視所有區域變數在要求時的值。 從這個範例最上方的方法開始,我們可以看到沒有值的區域變數。

    Debug snapshot

  3. 具有有效值的第一個呼叫是 ValidZipCode,我們可以看到提供的郵遞區號含有無法轉譯成整數的字母。 這似乎是程式碼中需要修正的錯誤。

    Screenshot that shows an error in the code that needs to be corrected.

  4. 您可以接著選擇將此快照集下載至 Visual Studio,以在其中尋找需要修正的實際程式碼。 若要這麼做,請按一下 [下載快照集] 。

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

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

    Exception in code

使用分析資料

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

  1. 按一下程式碼上方的 CodeLens 資訊,可檢視 Application Insights 所提供的遙測。

    Code

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

    Screenshot shows Application Insights window which includes several queries.

新增工作項目

如果您將 Application Insights 與追蹤系統 (例如 Azure DevOps 或 GitHub) 連結,即可直接從 Application Insights 建立工作項目。

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

  2. 按一下 [新增工作項目] 。

  3. [新增工作項目] 面板隨即開啟,並顯示關於例外狀況的詳細資料。 您可以新增任何額外的資訊,然後再將它儲存。

    New Work Item

後續步驟

由於您已學會如何識別執行階段例外狀況,請前進到下一個教學課程,了解如何識別並診斷效能問題。