Application Insights 概述

Application Insights 是 Azure Monitor 的一项功能,此功能提供可扩展应用程序性能管理 (APM) 和实时 Web 应用监视。 开发人员和 DevOps 专业人员可使用 Application Insights 执行以下操作:

  • 自动检测性能异常。
  • 使用功能强大的分析工具帮助诊断问题。
  • 了解用户对应用执行的实际操作。
  • 帮助持续提高应用性能和可用性。

Application Insights:

  • 支持各种平台,包括 .NET、Node.js、Java 和 Python。
  • 适用于托管在本地、混合或任何公有云上的应用。
  • 与 DevOps 进程集成。
  • 具有与许多开发工具的连接点。
  • 可以通过与 Visual Studio App Center 集成来监视和分析移动应用的遥测数据。

Application Insights 的工作原理

若要使用 Application Insights,可以在应用中安装小型检测包 (SDK),或者使用 Application Insights 代理启用 Application Insights。 有关支持 Application Insights 代理的语言和平台,请参阅支持的语言

可以检测 Web 应用、所有后台组件以及 Web 页面中的 JavaScript。 应用及其组件无需托管在 Azure 中。

此检测使用唯一的检测密钥来监视应用,并将遥测数据定向到 Application Insights 资源。 应用性能受到的影响小。 跟踪调用是非阻塞式的,以批量方式进行并在单独的线程中发送。

可以从主机环境(如性能计数器、Azure 诊断或 Docker 日志)中拉取遥测。 还可以对定期向 Web 服务发送综合请求的 Web 测试进行设置。 所有这些遥测流都将集成到 Azure Monitor 中。 在 Azure 门户中,可以对原始数据应用强大的分析和搜索工具。

下图显示了应用中的 Application Insights 检测如何向 Application Insights 资源发送遥测。

Diagram that shows Application Insights instrumentation in an app sending telemetry to an Application Insights resource.

如何使用 Application Insights

可采用多种方式开始使用 Application Insights。 从最适合你的方式开始,之后可增添其他内容。

必备条件

  • 需要一个 Azure 帐户。 Application Insights 托管在 Azure 中,并将其遥测发送到 Azure 以进行分析和演示。 如果没有 Azure 订阅,可以注册试用版。 如果组织已经拥有 Azure 订阅,管理员可以将你添加到该订阅

  • 基本 Application Insights 定价计划不产生任何费用,直到应用得到大量使用。

入门

若要在运行时使用 Application Insights,可以在服务器上检测 Web 应用。 此方法非常适合已部署的应用,因为它可避免对应用代码进行任何更新。

有关详细信息和说明,请参阅以下文章:

还可以在开发时将 Application Insights 添加到应用代码。 使用此方法可对其进行自定义并将其添加到遥测集合。

有关详细信息和说明,请参阅以下文章:

有关所有支持的语言、平台和框架,请参阅支持的语言

监视

设置 Application Insights 后,监视应用。

  • 设置可用性 Web 测试
  • 为团队聊天室使用默认应用程序仪表板来跟踪负载、响应能力和性能。 监视依赖项、页面加载和 AJAX 调用。
  • 发现速度最慢且失败率较高的请求。
  • 在部署新版本时查看实时流,快速掌握任何降级情况。

检测和诊断

当收到警报,或发现问题时:

  • 评估受到影响的的用户的数量。
  • 将失败与异常、依赖项调用和跟踪关联起来。
  • 检查探查器、快照、堆栈转储和跟踪日志。

衡量、学习和生成

  • 规划以衡量客户使用新用户体验或业务功能的方式。
  • 将自定义遥测写入代码。
  • 测量有效性(针对部署的每个新功能)。
  • 使下一个开发周期基于遥测的证据。

Application Insights 的监视对象

Application Insights 可帮助开发团队了解应用性能和使用情况。 Application Insights 监视:

  • 请求速率、响应时间和失败率

    了解最受欢迎的页面、时段以及用户的位置。 查看哪些页面效果最好。 当存在较多请求时,如果响应时间长且失败率高,则可能存在资源问题。

  • 依赖项速率、响应时间和失败率:显示外部服务是否正降低性能

  • 例外

    分析聚合的统计信息,或选择特定实例并钻取堆栈跟踪和相关请求。 Application Insights 报告服务器和浏览器异常。

  • 页面查看次数和负载性能(由用户的浏览器报告)

  • 来自网页的 AJAX 调用,包括速率、响应时间和失败率

  • 用户和会话计数

  • Windows 或 Linux 服务器计算机中的性能计数器,例如 CPU、内存和网络使用情况

  • Docker 或 Azure 中的主机诊断

  • 应用中的诊断跟踪日志,便于将跟踪事件与请求相关联

  • 客户端或服务器代码中用于跟踪业务事件(如已售商品)的自定义事件和指标

在何处查看 Application Insights 数据

可采用许多方式探索 Application Insights 遥测。 有关详细信息,请参阅以下文章:

后续步骤

疑难解答

常见问题解答

查看常见问题解答