應用程式監視 Azure App 服務 概觀

現在比以往更容易根據 ASP.NET、ASP.NET Core、Java 和 Node.js在 Azure App 服務 上執行的 Web 應用程式進行監視。 先前,您需要手動檢測您的應用程式,但最新的擴充功能/代理程式現在預設會內建到 App Service 映射中。

啟用 Application Insights

有兩種方式可針對 App Service 上裝載的應用程式啟用監視:

  • 自動結構應用程式監視 (ApplicationInsightsAgent)。

    這個方法最容易啟用,不需要變更程式碼或進階設定。 通常稱為「運行時間」監視。 針對 App Service,建議您至少啟用此層級的監視。 根據您的特定案例,您可以評估是否需要透過手動檢測進行更進階的監視。

    當您啟用自動檢測時,它會使用預設設定來啟用Application Insights(也包含取樣)。 即使您在 Azure AppInsights 中設定:取樣:將會忽略此設定的所有數據 100%。

    如需支援自動結構案例的完整清單,請參閱 支援的環境、語言和資源提供者

    自動結構監視支援下列平臺:

  • 藉由安裝 Application Insights SDK,透過程式代碼 手動檢測應用程式。

    此方法更容易自定義,但需要下列方法:SDK for .NET Core、.NETNode.js、Python 和適用於Java的獨立代理程式。 此方法也表示您必須自行管理最新版套件的更新。

    如果您需要進行自定義 API 呼叫,以追蹤預設不會使用自動結構監視擷取的事件/相依性,則必須使用此方法。 若要深入了解,請參閱自訂事件和計量的 Application Insights API

如果偵測到自動結構監視和手動 SDK 型檢測,在 .NET 中只會接受手動檢測設定,而在 Java 中,只有自動結構會發出遙測。 這種做法是防止傳送重複的數據。

注意

快照調試程式和分析工具僅適用於 .NET 和 .NET Core。

版本資訊

本節包含搭配 Application Insights 進行運行時間檢測的 Azure Web Apps 擴充功能版本資訊。

若要尋找您目前使用的擴充功能版本,請移至 https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights

版本資訊

2.8.44

2.8.43

  • 將 .NET/.NET Core、JAVA 和 Node.js 套件分成不同的 App Service Windows 網站延伸模組。

2.8.42

  • JAVA 延伸模組:已從 2.5.1 升級至 Java Agent 3.2.0
  • Node.js 延伸模組:已將 AI SDK 從 2.1.7 更新為 2.1.8。 已新增使用者和系統指派 Microsoft Entra 受控識別的支援。
  • .NET Core:已使用 .NET 啟動勾點新增獨立式部署和 .NET 6.0 支援。

2.8.41

  • Node.js 延伸模組:已將 AI SDK 從 2.1.3 更新為 2.1.7
  • .NET Core:已移除不支援的版本 (2.1)。 支援的版本是 3.1 和 5.0。

2.8.40

  • JAVA 延伸模組:已從 3.0.2 升級至 Java Agent 3.1.1 (GA)
  • Node.js 延伸模組:已將 AI SDK 從 1.8.8 更新為 2.1.3

2.8.39

  • .NET Core:已新增 .NET Core 5.0 支援。

2.8.38

  • JAVA 延伸模組:已從 2.5.1 升級至 Java Agent 3.0.2 (GA)
  • Node.js 延伸模組:已將 AI SDK 從 1.8.7 更新為 1.8.8
  • .NET Core:已移除不支援的版本 (2.0、2.2、3.0)。 支援的版本是 2.1 和 3.1。

2.8.37

  • AppSvc Windows 延伸模組:讓 .NET Core 與任何版本的 System.Diagnostics.DiagnosticSource.dll 搭配使用。

2.8.36

  • AppSvc Windows 延伸模組:在 .NET Core 中啟用與 AI SDK 的 Inter-op。

2.8.35

  • AppSvc Windows 延伸模組:已新增 .NET Core 3.1 支援。

2.8.33

  • .NET、.NET Core、Java 和 Node.js 代理程式與 Windows 延伸模組:主權雲端支援。 連接字串可以用來將資料傳送至主權雲端。

2.8.31

  • ASP.NET Core 代理程式已修正 Application Insights SDK 的問題。 如果運行時間載入了不正確的 版本 System.Diagnostics.DiagnosticSource.dll,則無程式代碼擴充功能不會當機應用程式並回復。 若要修正此問題,客戶應該從 bin 資料夾中移除 System.Diagnostics.DiagnosticSource.dll ,或藉由設定 ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24來使用舊版的擴充功能。 如果未啟用,則不會啟用應用程式監視。

2.8.26

  • ASP.NET Core 代理程式:已修正與已更新 Application Insights SDK 相關的問題。 如果 bin 資料夾中已有ApplicationInsights.dll,代理程式就不會嘗試載入 AiHostingStartup 。 它會透過 Assembly<AiHostingStartup> 解決反映相關問題。GetTypes()。
  • 已知問題:載入另一個 DiagnosticSource dll 版本時,可能會擲回例外狀況 System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'。 例如,如果 System.Diagnostics.DiagnosticSource.dll 存在於 publish 資料夾中,就可能發生此情況。 作為緩和措施,請在應用程式服務中設定應用程式設定,以使用舊版延伸模組:ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24。

2.8.24

  • 重新封裝 2.8.21 版。

2.8.23

  • 已新增 ASP.NET Core 3.0 無程式碼監視支援。
  • 已將 ASP.NET Core SDK 更新為 2.8.0 以供執行階段 2.1、2.2 和 3.0 版使用。 以 .NET Core 2.0 為目標的應用程式會繼續使用 SDK 2.1.1。

2.8.14

  • 已針對目標為 .NET Core 2.1、2.2 的應用程式,將 ASP.NET Core SDK 版本從 2.3.0 更新為最新版本 (2.6.1)。 以 .NET Core 2.0 為目標的應用程式會繼續使用 SDK 2.1.1。

2.8.12

  • ASP.NET Core 2.2 應用程式支援。

  • 已修正 ASP.NET Core 延伸模組中的錯誤 (bug),而此延伸模組即使在已經使用 SDK 檢測應用程式之後仍導致 SDK 插入。 針對 2.1 和 2.2 應用程式,應用程式資料夾中 ApplicationInsights.dll 的存在與否現在會導致延伸模組回復。 針對 2.0 應用程式,只有在 ApplicationInsights 已啟用 UseApplicationInsights() 呼叫時,才會回復延伸模組。

  • 永久修正 ASP.NET Core 應用程式的不完整 HTML 回應。 此修正程式現在已擴充為適用於 .NET Core 2.2 應用程式。

  • 已新增針對 ASP.NET Core 應用程式關閉 JavaScript 插入的支援 (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting)。 針對 ASP.NET Core,除非明確關閉,否則 JavaScript 插入預設為「退出」模式。 (預設設定是保留目前行為。)

  • 已修正 ASP.NET 核心延伸模塊錯誤,即使 ikey 不存在,也會導致插入。

  • 已修正 SDK 版本前置詞邏輯中導致遙測中 SDK 版本不正確的錯誤。

  • 已新增 ASP.NET Core 應用程式的 SDK 版本前置詞,以識別遙測的收集方式。

  • 已修正 SCM - ApplicationInsights 頁面,以正確顯示預先安裝的延伸模組版本。

2.8.10

  • 修正 ASP.NET Core 應用程式的不完整 HTML 回應。

常見問題集

本節提供常見問題的答案。

Application Insights 在我的專案中修改什麼?

詳細數據取決於項目類型。 針對 Web 應用程式:

  • 將這些檔案新增至您的專案:
    • ApplicationInsights.config
    • ai.js
  • 安裝下列 NuGet 套件:
    • Application Insights API:核心 API
    • 適用於 Web 應用程式的 Application Insights API:用來從伺服器傳送遙測
    • 適用於 JavaScript 應用程式的 Application Insights API:用來從用戶端傳送遙測
  • 這些套件包含下列元件:
    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • 將專案插入:
    • Web.config
    • packages.config
  • (僅適用於新專案,您可以 手動將 Application Insights 新增至現有的專案。將代碼段插入用戶端和伺服器程序代碼,以使用Application Insights資源識別碼將其初始化。 例如,在MVC應用程式中,程式代碼會插入主頁面 Views/Shared/_Layout.cshtml

下一步

瞭解如何為在 App Service 上執行的 .NET Core.NET、JavaNodejsPython 應用程式啟用自動結構應用程式監視。