Application Insights 概述

Azure Monitor Application Insights 是 Azure Monitor 的一项功能,适用于实时 Web 应用程序的应用程序性能监视 (APM)。

显示应用程序映射的 Azure Monitor Application Insights 用户界面的屏幕截图。


体验

Application Insights 提供了许多体验来增强应用程序的性能、可靠性和质量。

调查

  • 应用程序仪表板:一目了然地评估应用程序的运行状况和性能。
  • 应用程序映射:应用程序体系结构和组件的交互的直观概述。
  • 实时指标:实时分析仪表板,用于深入了解应用程序活动和性能。
  • 事务搜索:跟踪和诊断事务以识别问题并优化性能。
  • 可用性视图:主动监视和测试应用程序终结点的可用性和响应能力。
  • 故障视图:识别和分析应用程序中的故障,以最大程度地减少停机时间。
  • 性能视图:查看应用程序性能指标和潜在瓶颈。

监视

  • 警报:监视应用程序的各个方面并触发各种操作。
  • 指标:深入了解指标数据,以了解使用模式和趋势。
  • 诊断设置:将平台日志和指标的流式导出配置到你选择的目标位置。
  • 日志:检索、合并和分析收集到 Azure 监视日志中的所有数据。
  • 工作簿:创建可视化应用程序监视数据的交互式报表和仪表板。

使用情况

  • 用户、会话和事件:确定用户与 Web 应用的交互时间、位置和方式。
  • 漏斗图:分析转换率,以确定用户在漏斗图中的进度或下降位置。
  • :可视化网站上的用户路径,以识别高参与区域和退出点。
  • 队列:按共享特征对用户进行分组,以简化趋势识别、分段和性能故障排除。

代码分析

  • Profiler:捕获、标识和查看应用程序的性能跟踪。
  • 代码优化:利用 AI 创建更好、更高效的应用程序。
  • 快照调试程序:在 .NET 应用程序中发生异常时自动收集调试快照

逻辑模型

逻辑模型图直观显示 Application Insights 的组件及其交互方式。

显示数据在 Application Insights 服务各层中流动路径的示意图。

注意

必须调整防火墙设置,以便数据到达引入终结点。 有关详细信息,请查看 Azure Monitor 使用的 IP 地址


支持的语言

本部分概述了支持的场景。

有关检测应用程序以启用 Application Insights 的详细信息,请参阅数据收集基础知识

自动检测(启用而不更改代码)

手动检测

OpenTelemetry 分发版

客户端 JavaScript SDK

Application Insights SDK (Classic API)

支持的平台和框架

本部分列出了所有受支持的平台和框架。

Azure 服务集成(门户启用、Azure 资源管理部署)

记录框架

导出和数据分析

不受支持的软件开发工具包 (SDK)

存在许多社区支持的 Application Insights SDK,但 Azure 仅支持本文中列出的检测选项。


常见问题解答

本部分提供常见问题的解答。

如何检测应用程序?

有关检测应用程序以启用 Application Insights 的详细信息,请参阅数据收集基础知识

如何使用 Application Insights?

通过检测应用程序启用 Application Insights 后,建议先查看实时指标应用程序映射

Application Insights 收集哪些遥测数据?

从服务器 Web 应用:

客户端网页

  • 应用中未捕获到的异常,包括以下相关信息

    • 堆栈跟踪
    • 异常详细信息和错误随附的消息
    • 错误的行号与列号
    • 引发错误的 URL
    • 应用发出的网络依赖项请求:XML HTTP 请求 (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 门户?

建议使用 Azure Monitor OpenTelemetry 发行版

引入架构终结点协议是公开提供的。

收集遥测数据需要多长时间?

大多数 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 问题和答案论坛

将常规问题发布到 Azure 问题和答案论坛

Stack Overflow

使用 azure-application-insights 标记将编码问题发布到 Stack Overflow

反馈社区

反馈社区中为工程团队留下产品反馈意见。


后续步骤