共用方式為


針對 Application Insights Profiler 進行疑難解答

本文提供使用 Azure Application Insights Profiler 的疑難解答步驟和資訊。

請確定您使用適當的 Profiler 端點

目前,唯一需要修改端點的區域是 Azure GovernmentAzure China

應用程式設定 美國政府雲端 中國雲端
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

確定您的應用程式以正確的版本執行

.NET Framework 4.6.2 版之後支援 Profiler。

如果您的 Web 應用程式是 ASP.NET Core 應用程式,則必須在 最新支援的 ASP.NET Core 執行時間上執行

請確定您使用正確的 Azure 服務方案

免費或共用的App Service方案目前不支援 Profiler。 升級至其中一個基本方案,讓 Profiler 開始運作。

注意事項

不支援 Azure Functions 取用方案。 如需詳細資訊,請參閱 使用ApplicationInsights分析即時 Azure Functions 應用程式

請確定您在正確的時間範圍內搜尋 Profiler 數據

如果您嘗試檢視的數據超過數周,請嘗試限制時間篩選,然後再試一次。 追蹤會在七天后刪除。

請確定您可以存取閘道

檢查 Proxy 或防火牆並未封鎖您對 的存 https://gateway.azureserviceprofiler.net取。

確定 Profiler 正在執行或尚未逾時

只有當分析數據可以附加至 Profiler 執行時所發生的要求時,才會上傳分析數據。 分析工具會每小時收集兩分鐘的數據。 您也可以 啟動分析會話來觸發 Profiler。

分析工具會將追蹤訊息和自定義事件寫入 Application Insights 資源。 您可以使用這些事件來查看 Profiler 的執行方式。

若要搜尋 Profiler 傳送至 Application Insights 資源的追蹤訊息和自定義事件,請遵循下列步驟:

  1. 在您的 Application Insights 資源中,從頂端功能表欄選取 [ 搜尋 ]。

    從 Application Insights 資源選取搜尋按鈕的螢幕快照。

  2. 使用搜尋字串 stopprofiler OR startprofiler OR upload OR ServiceProfilerSample 來尋找相關數據。

    來自上述搜尋字串之搜尋結果的螢幕快照。

    上述搜尋結果包含兩個 AI 資源的兩個搜尋範例:

    • 如果應用程式在 Profiler 執行時未收到要求,訊息會說明上傳因為沒有活動而取消。

    • 分析工具會在偵測到 Profiler 執行時所發生的要求時,啟動並傳送自定義事件。 ServiceProfilerSample如果顯示自定義事件,表示已擷取配置檔,而且可在 [Application Insights 效能] 窗格中使用。

    如果未顯示任何記錄,則 Profiler 不會執行或花費太多時間來回應。 請確定 您的 Azure 服務上已啟用 Profiler

平行線程中的雙重計數

當兩個或多個平行線程與要求相關聯時,堆棧查看器中的總時間計量可能會超過要求的持續時間。 在此情況下,總線程時間會超過實際經過的時間。

例如,一個線程可能正在等候另一個線程完成。 查看器會嘗試偵測這種情況,並省略此等候。 在此情況下,它可能會顯示過多的資訊,而不是忽略潛在的重要資訊。

當您在追蹤中看到平行線程時,請判斷正在等候哪些線程,以便識別要求的熱路徑。 通常,快速進入等候狀態的線程只會等候其他線程。 專注於其他線程,並忽略等候線程的時間。

針對特定 Azure 服務上的 Profiler 進行疑難解答

Azure 應用程式服務

若要讓分析工具正常運作,請確定下列事項:

  • 您的 Web 應用程式已啟用具有正確設定Application Insights

  • ApplicationInsightsProfiler3 webjob 正在執行。 若要檢查 webjob,請遵循下列步驟:

    1. 存取 Kudu 服務

      在 Azure 入口網站中,移至您的 App Service。 從左側功能表中選取 [ 進階工具 ],然後選取 [ 執行]

    2. 在頂端功能表中,選取 [工具>WebJobs 儀錶板][WebJobs] 窗格隨即開啟。

      如果 ApplicationInsightsProfiler3 未顯示,請重新啟動 App Service 應用程式。

      WebJobs 窗格的螢幕快照,其中顯示作業的名稱、狀態和上次運行時間。

    3. 若要檢視 Webjob 的詳細數據,包括記錄檔,請選取 ApplicationInsightsProfiler3 連結。 [ 連續 WebJob 詳細數據] 窗格隨即開啟。

      [連續 WebJob 詳細數據] 窗格的螢幕快照。

如果 Profiler 仍然無法為您運作,您可以下載記錄並 提交 Azure 支援票證

檢查診斷服務網站擴充功能的狀態頁面

如果您透過入口網站中的 [ Application Insights] 窗格 啟用 Profiler,則會由診斷服務網站延伸模組管理。 您可以前往 來檢查此擴 https://<site-name>.scm.azurewebsites.net/DiagnosticServices充功能的狀態頁面。

注意事項

狀態頁面連結的網域會根據雲端而有所不同。 此網域會與 App Service 的 Kudu 管理網站相同。

狀態頁面會顯示 Profiler 和 快照調試 程式代理程式的安裝狀態。 如果發生非預期的錯誤,則會顯示狀態頁面,並顯示如何修正錯誤。

您可以使用 App Service 的 Kudu 管理網站來取得此狀態頁面的基底 URL。 如果要執行這項操作,請依照下列步驟執行:

  1. 從 Azure 入口網站開啟您的 App Service 應用程式。

  2. 選取 [進階工具>] [移]

  3. 一旦進入 Kudu 管理網站,請附加 /DiagnosticServices 至 URL,然後按 Enter

    其結尾會像這樣: https://<kudu-url>/DiagnosticServices。 它會顯示類似下列的狀態頁面:

    [診斷服務狀態] 頁面的螢幕快照。

注意事項

Application Insights Profiler 的無程式代碼安裝遵循 .NET Core 支持原則。 如需支援運行時間的詳細資訊,請參閱 .NET Core 支持原則

手動安裝

當您設定 Profiler 時,更新會套用至 Web 應用程式的設定。 如有必要,您可以 手動套用更新

太多作用中的分析會話

在 Azure App Service 中,一次只能有 一個分析會話的限制。 此限制會在所有應用程式和 App Service 方案中執行的部署位置的 VM 層級強制執行。

此限制同樣適用於透過 診斷和解決問題、Kudu 和 Application Insights Profiler 啟動的分析會話。

如果 Profiler 嘗試在另一個已執行的工作階段時啟動工作階段,則會在應用程式記錄檔和 ApplicationInsightsProfiler3 的連續 WebJob 記錄中記錄錯誤。

您可能會在記錄中看到下列其中一個訊息:

  • Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
  • Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E

錯誤碼 0xE111005E 表示無法啟動分析會話,因為另一個會話已在執行中。

若要避免此錯誤,請將某些 Web 應用程式移至不同的 App Service 方案,或停用某些應用程式上的 Profiler。 如果您使用部署位置,請務必停止任何未使用的位置。

部署錯誤:目錄不是空的 'D:\home\site\wwwroot\App_Data\jobs'

如果您將 Web 應用程式重新部署至已啟用 Profiler 的 Web Apps 資源,您可能會看到下列訊息:

目錄不是空的 'D:\home\site\wwwroot\App_Data\jobs'

如果您從腳本或 Azure Pipelines 執行 Web Deploy,就會發生此錯誤。 若要解決此問題,請將下列部署參數新增至Web Deploy工作:

  • -skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*'

  • -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$'

  • -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'

  • -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

這些參數會刪除 Application Insights Profiler 所使用的資料夾,並解除封鎖重新部署程式。 它們不會影響目前正在執行的 Profiler 實例。

分析工具是否正在執行?

分析工具會在 Web 應用程式中以連續 WebJob 的形式執行。 您可以在 Azure 入口網站開啟 Web 應用程式資源。 在 [WebJobs] 窗格中,檢查 ApplicationInsightsProfiler 的狀態。 如果未執行,請開啟 [記錄 ] 以取得詳細資訊。

虛擬機和雲端服務

若要查看 Azure 診斷是否已正確設定 Profiler,請遵循下列步驟:

  1. 確認已部署的 Azure 診斷組態內容符合您的預期。

  2. 請確定 Azure 診斷會在 Profiler 命令行上傳遞適當的 iKey

  3. 檢查 Profiler 記錄檔,以查看 Profiler 是否執行但傳回錯誤。

若要檢查用來設定 Azure 診斷的設定,請遵循下列步驟:

  1. 登入虛擬機。

  2. 在此位置開啟記錄檔。 您的電腦上的外掛程式版本可能較新。

    • 針對 VM:

      C:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log

    • 針對雲端服務:

      C:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log

  3. 在 檔案中,搜尋字串 WadCfg 以尋找傳遞至 VM 以設定 Azure 診斷的設定。

  4. 檢查 Profiler iKey 所使用的 是否正確。

  5. 檢查啟動 Profiler 的命令行。 命令行自變數位於下列檔案中, (磁碟驅動器可能是 c:d: ,而且目錄可能會隱藏) :

    • 針對 VM:

      C:\ProgramData\ApplicationInsightsProfiler\config.json

    • 針對雲端服務:

      D:\ProgramData\ApplicationInsightsProfiler\config.json

  6. 請確定 Profiler iKey 命令行上的 正確。

  7. 使用在上述 config.json 檔案中找到的路徑,檢查名為 BootstrapN.log 的 Profiler 記錄檔。 它會顯示下列資訊:

    • 偵錯資訊,指出 Profiler 正在使用的設定。
    • 來自 Profiler 的狀態和錯誤訊息。

    您可以從下列方向找到檔案:

    • 針對 VM:

      C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler

    • 針對雲端服務:

      C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler

  8. 如果您的應用程式接收要求時正在執行 Profiler,則會顯示「從 iKey 偵測到的活動」訊息。

  9. 上傳追蹤時,會顯示「開始上傳追蹤」訊息。

編輯網路 Proxy 或防火牆規則

如果您的應用程式透過 Proxy 或防火牆連線到因特網,您可能需要更新規則以與 Profiler 服務通訊。

Application Insights Profiler 所使用的IP會包含在 Azure 監視器服務標籤中。 如需詳細資訊,請參閱 服務標籤檔

如果所有其他失敗

在 Azure 入口網站中提交支援票證。 包含錯誤訊息中的相互關聯標識碼。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群