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 部署規劃指南。
必須調整防火牆設定,資料才能到達擷取端點。 如需詳細資訊,請參閱 Azure 監視器所使用的 IP 位址。
如何使用 Application Insights?
Application Insights 可透過 自動結構 (代理程式) ,或將 Application Insights SDK 或 Azure 監視器 OpenTelemetry Distro 新增至應用程式程式碼來啟用。 支援許多語言。 應用程式可能位於 Azure、內部部署或由另一個雲端裝載。 若要找出哪種類型的檢測最適合您,請參閱如何?檢測應用程式?。
Application Insights 代理程式或 SDK 會在將資料傳送至 Azure 之前預先處理遙測和計量。 然後會先擷取並進一步處理,再將其儲存在 Azure 監視器記錄中, (Log Analytics) 。 基於這個理由,必須使用 Azure 帳戶才能使用 Application Insights。
開始使用 Application Insights 的最簡單方式是透過 Azure 入口網站和內建的視覺體驗。 進階使用者可以直接查詢基礎資料,以透過 Azure 監視器儀表板和活頁簿建置自訂視覺效果。
請考慮從高階檢視 的應用程式對應 開始。 使用 搜尋 體驗,依類型和日期時間快速縮小遙測和資料的範圍。 或者,您可以搜尋資料 (例如,使用記錄追蹤) ,並篩選為感興趣的指定相互關聯作業。
兩個檢視特別有用:
- 效能檢視:深入瞭解您的應用程式或 API 和下游相依性如何執行。 您也可以找到代表性的範例來 探索端對端。
- 失敗檢視:瞭解哪些元件或動作會產生失敗,並分級錯誤和例外狀況。 內建檢視有助於主動追蹤應用程式健康情況,以及回應式根本原因分析。
建立 Azure 監視器警示 ,以在您的應用程式或元件元件偏離已建立的基準時發出潛在問題的訊號。
Application Insights 定價是以取用為基礎。 您只需依據使用量付費。 如需定價的詳細資訊,請參閱:
如何檢測應用程式?
自動結構 是慣用的檢測方法。 它不需要任何開發人員投資,也不會造成與更新 SDK 相關的未來額外負荷。 這也是用來檢測您沒有原始程式碼存取權之應用程式的唯一方式。
只有在下列情況時才需要安裝 Application Insights SDK:
若要使用 SDK,您可以在應用程式中安裝小型檢測套件,然後在網頁內檢測 Web 應用程式、任何背景元件和 JavaScript。 應用程式及其元件不必裝載於 Azure 中。
此檢測會監視您的應用程式,並使用唯一的權杖,將遙測資料導向至 Application Insights 資源。 對應用程式效能的影響很小。 追蹤呼叫是非封鎖,且會批次處理在個別執行緒中傳送。
整合式自動結構適用于Azure App 服務 .NET、Azure App 服務 .NET Core、Azure Functions和Azure 虛擬機器。
Azure 監視器 Application Insights 代理程式適用于在內部部署虛擬機器中執行的工作負載。
如需所有自動結構支援的環境、語言和資源提供者的詳細檢視,請參閱 什麼是 Azure 監視器 Application Insights 的自動結構?。
對於其他案例,需要 Application Insights SDK。
您也可以使用 OpenTelemetry供應專案。
支援的語言
本節概述支援的案例。
支援的平台和架構
本節列出所有支援的平臺和架構。
Azure 服務整合 (入口網站啟用、Azure Resource Manager 部署)
- Azure 虛擬機器和 Azure 虛擬機器擴展集
- Azure App Service
- Azure Functions
- Azure Spring Apps
- Azure 雲端服務包含 Web 與背景工作角色
自動結構 (啟用而不變更程式碼)
手動檢測/SDK (需要一些程式碼變更)
注意
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 監視器只會提供支援。
我們會持續評估擴充支援其他語言的機會。 如需最新的 SDK 新聞,請參閱 Application Insights 的 Azure 更新。
常見問題集
本節提供常見問題的答案。
Application Insights 會收集哪些遙測?
從伺服器 Web 應用程式:
- HTTP 要求。
- 相依項目。 對 SQL 資料庫的呼叫、外部服務的 HTTP 呼叫、Azure Cosmos DB、Azure 資料表儲存體、Azure Blob 儲存體和 Azure 佇列儲存體。
- 例外狀況和堆疊追蹤。
- 效能計數器:如果您使用 Azure 監視器 Application Insights 代理程式、 VM 或虛擬機器擴展集的 Azure 監視,或 收集的 Application Insights 寫入器。
- 您以程式碼撰寫的自訂事件和計量。
- 追蹤記錄 - 如果您設定適當的收集器。
從 用戶端網頁:
應用程式中的「未攔截到的例外狀況」,包括下列項目的相關資訊:
- 堆疊追蹤
- 錯誤隨附的例外狀況詳細資料和訊息
- 錯誤的行和資料行數
- 引發錯誤的 URL
應用程式 XHR 所發出的網路相依性要求和擷取 (擷取集合預設為停用,) 要求包含下列資訊:
- 相依性來源的 URL
- 用來要求相依性的命令和方法
- 要求的持續時間
- 要求的結果碼和成功狀態
- 提出要求的使用者識別碼 (如果有的話)
- 提出要求的相互關聯內容 (如果有的話)
使用者資訊 (例如位置、網路、IP)
例如,瀏覽器、OS、版本、語言、模型) 等裝置資訊 (
工作階段資訊
注意
對於某些應用程式,例如單頁應用程式 (SPA) ,可能不會記錄持續時間,而且預設為 0。
如需詳細資訊,請參閱 Application Insights 中的資料收集、保留和儲存。
從其他來源 (如果您設定它們的話):
如何使用 PowerShell 管理 Application Insights 資源?
您可以使用 Azure 資源監視器 來撰寫 PowerShell 腳本 ,以:
- 建立和更新 Application Insights 資源。
- 設定定價方案。
- 取得檢測金鑰。
- 新增計量警示。
- 新增可用性測試。
您無法設定計量瀏覽器報表或設定連續匯出。
如何查詢 Application Insights 電錶?
使用 REST API 來執行 Log Analytics 查詢。
我是否可以將遙測資料傳送給 Application Insights 入口網站?
我們建議您使用 SDK 並使用 SDK API。 SDK 有適用於各種平台的各種變體。 這些 SDK 會處理像是緩衝、壓縮、節流和重試等進程。 不過,擷取結構描述和端點通訊協定是公用的。
收集遙測資料需要花費多少時間?
大部分的 Application Insights 資料有 5 分鐘以內的延遲。 某些資料可能需要較長的時間,這通常適用于較大的記錄檔。 請參閱 Application Insights 服務等級協定。
疑難排解
檢閱 Application Insights 的專用 疑難排解文章 。
說明及支援
Azure 技術支援
針對 Azure 支援問題,請開啟 Azure 支援票證。
Microsoft Q&A 問題論壇
將一般問題張貼至 Microsoft Q & A 解答論壇。
Stack Overflow
使用 Application Insights 標籤將程式碼問題張貼至 Stack Overflow 。
意見反應社群
在意見反應 社群中,為工程小組留下產品意見反應。