Application Insights 概述
Azure Monitor Application Insights 是 Azure Monitor 的一项功能,适用于实时 Web 应用程序的应用程序性能管理 (APM)。
体验
Application Insights 提供了许多体验来增强应用程序的性能、可靠性和质量。
调查
- 应用程序仪表板:一目了然地评估应用程序的运行状况和性能。
- 应用程序映射:应用程序体系结构和组件的交互的直观概述。
- 实时指标:实时分析仪表板,用于深入了解应用程序活动和性能。
- 事务搜索:跟踪和诊断事务以识别问题并优化性能。
- 可用性视图:主动监视和测试应用程序终结点的可用性和响应能力。
- 故障视图:识别和分析应用程序中的故障,以最大程度地减少停机时间。
- 性能视图:查看应用程序性能指标和潜在瓶颈。
监视
- 警报:监视应用程序的各个方面并触发各种操作。
- 指标:深入了解指标数据,以了解使用模式和趋势。
- 诊断设置:将平台日志和指标的流式导出配置到你选择的目标位置。
- 日志:检索、合并和分析收集到 Azure 监视日志中的所有数据。
- 工作簿:创建可视化应用程序监视数据的交互式报表和仪表板。
使用情况
- 用户、会话和事件:确定用户与 Web 应用的交互时间、位置和方式。
- 漏斗图:分析转换率,以确定用户在漏斗图中的进度或下降位置。
- 流:可视化网站上的用户路径,以识别高参与区域和退出点。
- 队列:按共享特征对用户进行分组,以简化趋势识别、分段和性能故障排除。
代码分析
逻辑模型
逻辑模型图直观显示 Application Insights 的组件及其交互方式。
注意
必须调整防火墙设置,以便数据到达引入终结点。 有关详细信息,请查看 Azure Monitor 使用的 IP 地址。
支持的语言
本部分概述了支持的场景。
有关检测应用程序以启用 Application Insights 的详细信息,请参阅数据收集基础知识。
自动检测(启用而不更改代码)
手动检测
OpenTelemetry 分发版
Application Insights SDK (Classic API)
客户端 JavaScript SDK
支持的平台和框架
本部分列出了所有受支持的平台和框架。
Azure 服务集成(门户启用、Azure 资源管理部署)
- Azure 虚拟机和 Azure 虚拟机规模集
- Azure 应用服务
- Azure Functions
- Azure Spring Apps
- Azure 云服务,包括 Web 角色和辅助角色
记录框架
ILogger
- Log4Net、NLog 或 System.Diagnostics.Trace
Log4J
、Logback 或 java.util.logging- LogStash 插件
- Azure Monitor
导出和数据分析
不受支持的 SDK
存在许多社区支持的 Application Insights SDK。 Azure Monitor 仅在使用本文中列出的受支持检测选项时提供支持。
我们正在不断地评估扩展其他语言支持的机会。 有关最新动态,请参阅 Azure Application Insights 更新。
常见问题
本部分提供常见问题的解答。
如何检测应用程序?
有关检测应用程序以启用 Application Insights 的详细信息,请参阅数据收集基础知识。
如何使用 Application Insights?
通过检测应用程序启用 Application Insights 后,建议先查看实时指标和应用程序映射。
Application Insights 收集哪些遥测数据?
从服务器 Web 应用:
- HTTP 请求。
- 依赖项。 对 SQL 数据库的调用、对外部服务的 HTTP 调用、Azure Cosmos DB、Azure 表存储、Azure Blob 存储和 Azure 队列存储。
- 异常和堆栈跟踪。
- 性能计数器:使用以下功能时可以使用性能计数器:
- 自定义编码的事件和指标。
- 跟踪日志(如果配置相应的收集器)。
从客户端网页:
应用中未捕获到的异常,包括以下相关信息
- 堆栈跟踪
- 异常详细信息和错误随附的消息
- 错误的行号与列号
- 引发错误的 URL
应用发出的网络依赖项请求:XHR 和 FETCH(默认已禁用提取集合)请求,包括以下相关信息:
- 依赖项源的 URL
- 用于请求依赖项的命令和方法
- 请求持续时间
- 请求的结果代码和成功状态
- 发出请求的用户的 ID(如果有)
- 发出请求的关联上下文(如果有)
用户信息(例如位置、网络、IP)
设备信息(例如,浏览器、OS、版本、语言、型号)
本节信息
注意
对于某些应用程序(例如单页应用程序 [SPA]),可能不会记录持续时间,并且默认其为 0。
有关详细信息,请参阅 Application Insights 中的数据收集、保留和存储。
从其他源中(如果有配置):
应该部署多少个 Application Insights 资源?
若要了解需要多少 Application Insights 资源才能涵盖不同环境中的应用程序或组件,请参阅 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 收集有关应用的遥测数据,包括 Web 服务器遥测数据、网页遥测数据和性能计数器。 此数据可用于监视应用的性能、运行状况和使用情况。 创建新的 Application Insights 资源时,可以选择存储位置。
保留和存储
数据发送到 Application Insights Log Analytics 工作区。 可以选择原始数据的保持期(从 30 天到 730 天)。 聚合数据保留 90 天,调试快照保留 15 天。
隐私
Application Insights 默认不处理敏感数据,只要你不将敏感数据以纯文本形式放在 URL 中,并确保自定义代码不收集个人或其他敏感详细信息即可。 在开发和测试过程中,检查 IDE 和浏览器调试输出窗口中的已发送数据。
有关此主题的存档信息,请参阅 Application Insights 中的数据收集、保留和存储。
什么是 Application Insights 定价模型?
Application Insights 通过 Log Analytics 工作区进行计费,并在工作区中引入了其日志数据。 默认的即用即付 Log Analytics 定价层包括每个计费帐户每月 5 GB 的免费数据限额。 详细了解 Azure Monitor 日志定价选项。
Azure Web 应用和 Application Insights 之间是否有数据传输费用?
- 如果 Azure Web 应用托管在具有 Application Insights 集合终结点的数据中心内,则不收取费用。
- 如果主机数据中心没有集合终结点,则应用的遥测会产生 Azure 传出费用。
此答案取决于终结点的分布,而不是托管 Application Insights 资源的位置。
如果 Application Insights 资源监视不同区域中的 Azure 资源(即遥测数据生成者),是否会产生网络成本?
是的,这可能会产生更多的网络成本,具体取决于遥测数据的来源和目标区域。 有关详细信息,请参阅 Azure 带宽定价。
帮助和支持
Azure 技术支持
有关 Azure 支持问题,可打开 Azure 支持票证。
Azure Q&A 问答论坛
将常规问题发布到 Azure Q&A 问答论坛。
Stack Overflow
使用 azure-application-insights
标记将编码问题发布到 Stack Overflow。
反馈社区
在反馈社区中为工程团队留下产品反馈意见。
疑难解答
查看 Application Insights 的专用故障排除文章。