即時計量︰延遲僅 1 秒的監視與診斷
使用 Application Insights 的即時計量來監視 Web 應用程式。 選取並篩選計量和性能計數器,以即時監看,並檢查來自範例失敗要求和例外狀況的堆棧追蹤。 即時計量體驗是結合 .NET Profiler 和 快照調試程式時的強大診斷工具。
您可以使用即時計量:
- 藉由監看效能和失敗計數,在發行修正程式時進行驗證。
- 監看測試負載的影響,並即時診斷問題。
- 藉由選取並篩選您想要監看的計量,專注於特定測試工作階段或篩選出已知問題。
- 在發生例外狀況時取得其追蹤。
- 試驗篩選,以尋找最相關的 KPI。
- 即時監看任何 Windows 效能計數器。
- 輕鬆識別有問題的伺服器,並將所有 KPI/即時摘要篩選到只有該伺服器。
開始使用
- 遵循語言特定指導方針來啟用即時計量:
- ASP.NET:不支援。
- ASP.NET Core:預設為啟用。
- Java:預設為啟用。
- Node.js:預設為啟用。
- Python:將
enable_live_metrics=True
傳遞至configure_azure_monitor
。 如需詳細資訊,請參閱 Azure 監視器 OpenTelemetry Distro 文件。
在 Azure 入口網站中開啟您應用程式的 Application Insights 資源。 選取 [即時計量],其列在左側功能表中的 [調查] 底下。
如果您使用自定義篩選,請啟用 Microsoft Entra 驗證來保護控制通道。
即時計量與計量瀏覽器和 Log Analytics 有何不同?
功能 | 即時資料流 | 計量瀏覽器和 Log Analytics |
---|---|---|
Latency | 在一秒內顯示資料。 | 在幾分鐘後進行彙總。 |
沒有保留 | 資料在圖表上就會保存,之後便會捨棄該資料。 | 資料會保留 90 天。 |
[視需要] | 只有在即時計量窗格開啟時,才會串流處理資料。 | 每當安裝並啟用 SDK 時都會傳送資料。 |
免費 | 即時資料流資料不需要任何費用。 | 依定價付費。 |
取樣 | 傳輸所有選取的計量和計數器。 取樣失敗和堆疊追蹤。 | 可取樣事件。 |
控制通道 | 篩選控制項訊號會傳送至 SDK。 建議您保護這個通道。 | 對入口網站的單向通訊。 |
選取並篩選您的計量
這些功能適用於 ASP.NET、ASP.NET Core 及 Azure Functions (v2)。
您可以從入口網站對任何 Application Insights 遙測套用任意篩選,以即時監視自定義效能指標。 選取您將滑鼠移過任何圖表時所顯示的篩選控制項。 下列圖表是使用 [URL] 和 [持續時間] 屬性的篩選條件來繪製自訂要求計數 KPI。 利用資料流預覽區段來驗證您的篩選條件,該區段會顯示在任何時間點中符合您所指定準則的遙測即時摘要。
您可以監視與計數不同的值。 選項取決於資料流類型,可以是任何 Application Insights 遙測 (例如要求、相依性、例外狀況、追蹤、事件或計量), 也可以是您自己的自訂度量。
除了 Application Insights 遙測之外,您也可以監視任何 Windows 效能計數器。 請從資料流選項中加以選取,並提供效能計數器的名稱。
即時計量會在兩個地方進行彙總︰在每一部伺服器上的本機進行,以及在所有伺服器上進行。 您可以選取個別下拉式清單中的其他選項,在任一位置變更預設值。
範例遙測:自定義實時診斷事件
依預設,事件的即時摘要會顯示失敗要求和相依性呼叫、例外狀況、事件以及追蹤的範例。 選取篩選圖示可查看任一時間點所套用的準則。
如同計量,您可以將任意準則指定為任何的 Application Insights 遙測類型。 在此範例中,我們要選取特定的要求失敗及事件。
注意
目前針對以例外狀況訊息為基礎的準則,請使用最外部的例外狀況訊息。 在上述範例中,若要篩選出有內部例外狀況訊息 (接在 "<--" 分隔符號之後) 的良性例外狀況:「用戶端已中斷連線」,請使用訊息不含「讀取要求內容時發生錯誤」準則。
若要查看即時摘要中某個項目的詳細資料,請選取該項目。 您可以選取 [暫停] 或向下捲動並選取項目來將摘要暫停。 在您捲動回到頂端後,或是選取暫停時所收集的項目計數器,即時摘要就會繼續進行。
依伺服器執行個體篩選
如果您想要監視特定伺服器角色執行個體,可以依伺服器篩選。 若要篩選,請在 [伺服器] 下方選取伺服器名稱。
保護控制通道
藉由啟用 Microsoft Entra 驗證來保護即時計量控制通道,以防止未經授權的機密資訊洩漏進入自定義篩選。
注意
在 2025 年 9 月 30 日,用來將即時計量遙測串流至 Application Insights 的 API 金鑰將會淘汰。 在該日期之後,使用 API 金鑰的應用程式無法再將即時計量資料傳送至 Application Insights 資源。 針對串流至 Application Insights 的即時計量,必須使用 Application Insights 的 Microsoft Entra 驗證 (部分機器翻譯) 完成驗證的遙測擷取。
支援功能表
語言 | 基本計量 | 效能計量 | 自訂篩選 | 樣本遙測 | 依處理程序分割 CPU |
---|---|---|---|---|---|
.NET Framework | 支援 (LTS) | 支援 (LTS) | 支援 (LTS) | 支援 (LTS) | 支援 (LTS) |
.NET Core (目標 =.NET Framework) | 支援 (LTS) | 支援 (LTS) | 支援 (LTS) | 支援 (LTS) | 支援 (LTS) |
.NET Core (目標 =.NET Core) | 支援 (LTS) | 支援* | 支援 (LTS) | 支援 (LTS) | 不支援 |
Azure Functions v2 | 支援 | 支援 | 支援 | 已支援 | 不支援 |
Java | 支援 (2.0.0 版以上) | 支援 (2.0.0 版以上) | 不支援 | 支援 (3.2.0 版以上) | 不支援 |
Node.js | 支援 (1.3.0 版以上) | 支援 (1.3.0 版以上) | 不支援 | 支援 (1.3.0 版以上) | 不支援 |
Python | 支援 (Distro 版本 1.6.0+) | 不支援 | 不支援 | 不支援 | 不支援 |
基本計量包括要求、相依性和例外狀況率。 效能計量 (效能計數器) 包括記憶體和 CPU。 遙測範例顯示失敗要求和相依性、例外狀況、事件和追蹤的一連串詳細資訊。
PerfCounter 支援會因未以 .NET Framework 為目標的 .NET Core 版本而略有不同:
- 在適用於 Windows 的 Azure App Service 中執行時,可支援 PerfCounter 計量 (ASP.NET Core SDK 2.4.1 版或更高版本)。
- 應用程式在任何 Windows 電腦上執行以 .NET Core LTS 或更新版本為目標的應用程式時,支援 PerfCounters。
- 當應用程式在 Linux、Windows、適用於 Linux 的應用程式服務或容器等「任何位置」執行時,可支援最新版的 PerfCounter,但僅限於以 .NET Core LTS 或更高版本為目標的應用程式。
疑難排解
下一節將討論即時計量體驗的常見疑難解答案例。
遺漏即時計量數據
即時計量體驗會使用與其他 Application Insights 遙測不同的 IP 位址。 請確定這些 IP 位址在您的防火牆中為開啟狀態。 也請檢查是否已開啟您伺服器防火牆中即時計量的連出連接埠 (部分機器翻譯)。
如 Azure TLS 1.2 移轉公告 (英文) 中所述,即時計量現在僅支援 TLS 1.2。 如果您使用的是舊版 TLS,即時計量窗格將不會顯示任何資料。 針對以 .NET Framework 4.5.1 為基礎的應用程式,請參閱在用戶端上啟用傳輸層安全性 (TLS) 1.2 - Configuration Manager 以支援較新的 TLS 版本。
驗證 Application Insights 已啟用,且您的應用程式使用最新版的 Azure 監視器 OpenTelemetry 散發版本。 如果您使用 the.NET 傳統 API,請安裝 Application Insights NuGet 套件。
授權連線的伺服器:無法使用此選項
我們強烈勸阻使用不安全的通道。
如果您選擇嘗試自定義篩選,而不設定已驗證的通道,則必須在每一個新的工作階段或新伺服器上線時授權連線的伺服器。 此外,使用不安全的通道會在六個月後自動停用。
對話框會顯示警告:「您可以使用自定義篩選來串流計量和事件,這些篩選會傳送回您的應用程式。 請避免輸入潛在的敏感性資訊(例如客戶標識符),直到您設定已驗證的通道為止。 不過,如果您辨識並信任下列所有伺服器,您可以嘗試自定義篩選而不進行驗證。 此選項不適用於 ##/##/### 之後。 未驗證連線的伺服器:”
若要修正此警告,請參閱 保護控制通道。
受監視的伺服器實例數目低
即時計量所顯示的受監視伺服器執行個體數目可能會低於為應用程式配置的實際執行個體數目。 這種不相符的原因是許多新式 Web 伺服器會卸除一段時間未收到要求以節省資源的應用程式。 由於即時計量只會計算目前正在執行應用程式的伺服器數目,因此已卸載處理序的伺服器將不會包含在總計中。
遺失 .NET 設定
確認您使用的是最新版的 NuGet 套件 Microsoft.ApplicationInsights.PerfCounterCollector。
編輯
ApplicationInsights.config
檔案:- 確認連接字串指向您使用的 Application Insights 資源。
- 尋找
QuickPulseTelemetryModule
設定選項。 如果不存在,請加以新增。 - 尋找
QuickPulseTelemetryProcessor
設定選項。 如果不存在,請加以新增。
<TelemetryModules> <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector. QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/> </TelemetryModules> <TelemetryProcessors> <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector. QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/> </TelemetryProcessors>
重新啟動應用程式。
「資料暫時無法存取」狀態訊息
流覽至即時計量時,您可以看到具有狀態消息的橫幅:「數據暫時無法存取。 狀態的更新會張貼於此處 https://aka.ms/aistatus」
遵循 [Azure 狀態] 頁面的連結,並檢查是否有會影響 Application Insights 的啟動中斷。 如果發生中斷,請驗證防火牆和瀏覽器延伸模組不會封鎖即時計量的存取。 例如,某些熱門的廣告封鎖程式延伸模組會封鎖與 *.monitor.azure.com
的連線。 若要使用 Live Metrics 的完整功能,請停用廣告封鎖程式延伸模組,或將網域 *.livediagnostics.monitor.azure.com
的排除規則新增至您的廣告封鎖程式、防火牆等。
對於 livediagnostics.monitor.azure.com 的非預期大量要求
Application Insights SDK 會使用 REST API 與 QuickPulse 端點通訊,這會為您的 Web 應用程式提供即時計量。 根據預設,SDK 會每隔五秒輪詢端點一次,以檢查您是否在 Azure 入口網站 中檢視即時計量窗格。
如果您開啟即時計量,SDK 會切換至較高的頻率模式,而且每秒都將新的計量傳送至 QuickPulse。 您可以藉此使用 1 秒的延遲來監視和診斷即時應用程式,但也會產生更多網路流量。 若要還原一般流量,請瀏覽離開即時計量窗格。
注意
Application Insights 不會追蹤 SDK 對 QuickPulse 端點進行的 REST API 呼叫,而且不會影響相依性呼叫或其他計量。 不過,您可能會在其他網路監視工具中看到這些呼叫。