Application Insights 概述

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

A screenshot of the Azure Monitor Application Insights user interface displaying an application map.

体验

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

调查

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

监视

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

使用情况

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

代码分析

  • Profiler:捕获、标识和查看应用程序的性能跟踪。
  • 快照调试程序:在 .NET 应用程序中发生异常时自动收集调试快照

逻辑模型

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

Diagram that shows the path of data as it flows through the layers of the Application Insights service.

注意

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


支持的语言

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

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

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

手动检测

OpenTelemetry 分发版

Application Insights SDK (Classic API)

客户端 JavaScript SDK

支持的平台和框架

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

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

记录框架

导出和数据分析

不受支持的 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 中的数据收集、保留和存储

帮助和支持

Azure 技术支持

有关 Azure 支持问题,可打开 Azure 支持票证

Azure Q&A 问答论坛

将常规问题发布到 Azure Q&A 问答论坛

Stack Overflow

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

反馈社区

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

疑难解答

查看 Application Insights 的专用故障排除文章

后续步骤