Application Insights 概觀
Application Insights 是 Azure 監視器的延伸模組,並提供應用程式效能監視 (也稱為 “APM”) 功能。 APM 工具很適合用來監視應用程式從開發、透過測試,以及以下列方式進入生產環境:
- 「主動」了解應用程式的執行方式。
- 「以回應方式」檢閱應用程式執行資料,以判斷事件的原因。
除了收集計量和應用程式遙測資料之外,還描述應用程式活動和健康情況,Application Insights 也可用來收集和儲存應用程式追蹤記錄資料。
記錄追蹤與其他遙測相關聯,以提供活動的詳細檢視。 將追蹤記錄新增至現有應用程式只需要提供記錄的目的地;記錄架構很少需要變更。
Application Insights 提供其他功能,包括但不限於:
- 即時計量 – 即時觀察已部署應用程式的活動,而不會影響主機環境
- 可用性 – 也稱為「綜合交易監視」,探查您的應用程式外部端點,以測試一段時間的整體可用性和回應性
- GitHub 或 Azure DevOps 整合 – 在 Application Insights 資料的內容中建立 GitHub 或 Azure DevOps 工作項目
- 使用方式 – 了解哪些功能受使用者歡迎,以及使用者如何使用您的應用程式並與其互動
- 智慧型偵測 – 透過主動式遙測分析自動失敗和異常偵測
此外,Application Insights 也支援分散式追蹤,也稱為「分散式元件相互關聯」。 這項功能可讓您對指定執行或交易的端對端流程進行搜尋和視覺化。 追蹤活動端對端的能力對於已建置為分散式元件或微服務的應用程式而言,越來越重要。
應用程式對應允許應用程式架構的高階由上而下檢視,以及元件健康情況和回應性的視覺化參考。
若要了解涵蓋整個環境的應用程式或元件所需的 Application Insights 資源數目,請參閱 Application Insights 部署規劃指南。
如何使用 Application Insights?
Application Insights 可透過自動檢測 (代理程式) 或將 Application Insights SDK 新增至應用程式程式碼來啟用。 支援多種語言,而且應用程式可以在 Azure、內部部署上或由另一個雲端裝載。 若要找出哪種類型的檢測最適合您,請參考如何檢測應用程式?。
Application Insights 代理程式或 SDK 會先處理遙測和計量,再將資料傳送至 Azure,然後內嵌並進一步處理資料,資料才會儲存在 Azure 監視器記錄 (Log Analytics) 中。 基於這個理由,必須使用 Azure 帳戶才能使用 Application Insights。
開始使用 Application Insights 的最簡單方式是透過 Azure 入口網站和內建的視覺體驗。 進階使用者可以直接查詢基礎資料,以透過 Azure 監視器儀表板和活頁簿建置自訂視覺效果。
請考量從高階檢視的應用程式對應開始。 使用 [搜尋] 體驗,依類型和日期時間快速縮小遙測和資料範圍,或搜尋資料 (例如記錄追蹤),並感興趣的特定相互關聯作業作為篩選條件。
使用效能檢視跳到分析 – 深入了解您的應用程式或 API 和下游相依性如何執行,並尋找代表性範例以探索端對端。 而且,主動處理失敗檢視 – 了解哪些元件或動作會產生失敗,並將錯誤和例外狀況分級。 內建檢視有助於主動追蹤應用程式健康情況和回應式根本原因分析。
建立 Azure 監視器警示,以便在您的應用程式或元件組件偏離已建立的基準時發出潛在問題的訊號。
Application Insights 定價是以使用量為基礎;您只需支付您使用的內容。 如需定價的詳細資訊,請參閱 Azure 監視器定價頁面,以及如何將成本最佳化。
如何檢測應用程式?
自動檢測是慣用的檢測方法。 它不需要任何開發人員投資,也不會造成與更新 SDK 相關的未來額外負荷。 這也是用來檢測您沒有原始程式碼存取權之應用程式的唯一方式。
您只需要在下列情況下安裝 Application Insights SDK:
若要使用 SDK,您可以在應用程式中安裝小型檢測套件,然後在網頁中檢測 Web 應用程式、任何背景元件和 JavaScript。 應用程式及其元件不需要裝載於 Azure 中。 此檢測會監視您的應用程式,並使用唯一的權杖,將遙測資料導向至 Application Insights 資源。 對應用程式效能的影響很小;追蹤呼叫是非封鎖且批次處理,以便在個別的執行緒中傳送。
整合式自動檢測適用於 Azure App Service .NET、Azure App Service .NET Core、Azure Functions 和 Azure 虛擬機器。
Azure 監視器 Application Insights 代理程式適用於在內部部署虛擬機器中執行的工作負載。
這裡提供所有自動檢測支援環境、語言和資源提供者的詳細檢視。
對於其他案例,需要 Application Insights SDK。
您也可以預覽 Open Telemetry 供應項目。
支援的語言
本節概述支援的案例。
支援的平台和架構
本節列出所有支援的平臺和架構。
Azure 服務整合 (入口網站啟用、Azure Resource Manager 部署)
- Azure 虛擬機器和 Azure 虛擬機器擴展集
- Azure App Service
- Azure Functions
- Azure Spring Apps
- Azure 雲端服務包含 Web 與背景工作角色
自動檢測 (啟用,不需變更程式碼)
手動檢測/SDK (需要一些程式碼變更)
- ASP.NET
- ASP.NET Core
- Node.js
- Python
- JavaScript - Web
- React
- React Native \(英文\)
- Angular
- Windows 桌面應用程式、服務和背景工作角色
- 通用 Windows app (App Center)
- Android (App Center)
- iOS (App Center)
注意
OpenTelemetry 型檢測可在 C#、Node.js 和 Python 中以預覽形式提供使用。 請檢閱各語言官方文件開頭所說明的限制。 如果您需要完整功能體驗,請使用現有的 Application Insights SDK。
記錄架構
- ILogger
- Log4Net、NLog 或 System.Diagnostics.Trace
- Log4J、Logback 或 java.util.logging
- LogStash 外掛程式 (英文)
- Azure 監視器
匯出和資料分析
不支援的 SDK
有數個其他社群支援的 Application Insights SDK 存在。 不過,Azure 監視器僅在您使用此頁面所列之支援的檢測選項時才提供支援。 我們會持續評估擴充支援其他語言的機會。 請隨時留意適用於 Application Insights 的 Azure 更新,以取得最新的 SDK 消息。
常見問題集
檢閱常見問題集。
疑難排解
檢閱 Application Insights 的專用 疑難排解文章 。
說明及支援
Microsoft Q&A 問題論壇
將一般問題張貼至 Microsoft Q & A 解答論壇。
Stack Overflow
使用 Application Insights 標籤,將程式碼撰寫問題張貼至 Stack Overflow。
使用者心聲
在 UserVoice 上為工程小組留下產品意見反應。