Azure Monitor Application Insights 的数据收集基本信息

在监视应用程序之前,需要先对其进行检测。

以下部分将介绍 Azure Monitor Application Insights 的一些数据收集基本信息。

检测选项

就基础级别而言,“检测”只是使应用程序能够捕获遥测数据。

有两种检测应用程序的方法:

  • 自动检测
  • 手动检测

自动检测通过配置启用遥测数据收集,而不会触及应用程序的代码。 虽然非常方便,但其可配置性较低。 并且只提供部分语言版本。 请参阅自动检测支持的环境和语言。 当自动检测可用时,这是启用 Azure Monitor Application Insights 的最简单方法。

手动检测对 Application Insights 或 OpenTelemetry API 进行编码。 在用户的上下文中,它通常是指在应用程序中安装语言特定的 SDK。 这意味着必须自行管理更新到最新包版本的工作。 如果需要进行自定义依赖项调用或 API 调用,而自动检测默认情况下不会捕获这些调用,则可以使用此选项。 手动检测有两种选择:

虽然我们认为 OpenTelemetry 是发展的方向,但没有停止从旧 SDK 收集数据的计划。 还有一段距离才能让 Azure OpenTelemetry 发行版与 Application Insights SDK 实现功能奇偶一致性。 在许多情况下,客户会在相当长的一段时间内继续选择使用 Application Insights SDK。

重要

“手动”并不意味着需要编写复杂的代码来定义分布式跟踪的范围(尽管这仍不失为一种选择)。 发行版中打包的检测可供轻松地在通用框架和库中捕获遥测信号。 我们正在积极使用 OpenTelemetry 来检测最热门的 Azure服务 SDK,以便使用 Azure Monitor OpenTelemetry 发行版的客户可以使用这些信号。

遥测类型

遥测数据(为观察应用程序而进行收集的数据)可以分为三种类型或包含三种构成要素:

  • 分布式跟踪
  • 指标
  • 日志

完整的可观测性故事包括所有三个支柱,Application Insights 根据我们的数据模型将这些支柱进一步分解为表。 我们的 Application Insights SDK 或 Azure Monitor OpenTelemetry 发行版包括在 Azure 上支持应用程序性能监视所需的一切。 包本身可以免费安装,只需为在 Azure Monitor 中引入的数据付费。

以下源介绍三大支柱:

遥测路由

可以通过两种方式将数据发送给 Azure Monitor(或任何供应商):

  • 通过直接导出程序发送
  • 通过代理发送

直接导出程序会将正在进行的遥测(从应用程序的代码)直接发送到 Azure Monitor 引入终结点。 此方法的主要优点是加入过程非常简单。

当前可用的 Application Insights SDK 和 Azure Monitor OpenTelemetry 发行版依赖于直接导出程序

注意

有关 Azure Monitor 在 OpenTelemetry-Collector 上的位置,请参阅 OpenTelemetry 常见问题解答

提示

如果计划使用 OpenTelemetry-Collector 进行采样或其他数据处理,则可以在 Azure Monitor 中内置这些相同的功能。 基于工作区的 Application Insights 资源受益于引入时转换。 要启用,请按照教程中的详细信息进行操作,跳过显示如何设置诊断设置的步骤,因为在以工作区为中心的 Application Insights 中,已经配置了诊断设置。 如果筛选量不到总容量的 50%,则不会产生额外费用。 50% 之后,会产生费用,但远低于每 GB 收费的标准。

OpenTelemetry

Microsoft 很高兴能够在未来使用 OpenTelemetry 检测遥测数据。 作为我们的客户,你曾要求提供非供应商特定的工具,并且我们很高兴能够与 OpenTelemetry 社区达成合作,跨语言创建一致的 API 和 SDK。

Microsoft 与两个以前常用的开源遥测项目 OpenCensusOpenTracing 的项目利益干系人合作。 我们互帮互助,携手创建了 OpenTelemetry 这一项目。 OpenTelemetry 包括所有主要云和应用程序性能管理 (APM) 供应商发布的内容,并由云原生计算基金会 (CNCF) 运营。 Microsoft 是 CNCF 的白金成员。

有关术语,请参阅 OpenTelemetry 规范中的术语表

由于 OpenTelemetry 上的行业整合,Application Insights 中的一些旧术语会引起混淆问题。 下表突出显示这些差异。 OpenTelemetry 术语将替换 Application Insights 术语。

Application Insights OpenTelemetry
自动收集器 检测库
通道 导出程序
无代码/基于代理 自动检测
跟踪 日志
请求 服务器跨度
依赖项 其他跨度类型(客户端、内部等)
操作 ID 跟踪 ID
ID 或父级操作 ID Span ID

常见问题解答

在哪里可以找到 Application Insights SDK 版本及其名称的列表?

GITHub 上托管的 SDK 版本和名称的列表。 有关详细信息,请参阅 SDK 版本

后续步骤

选择启用方法:

有关详细信息,请查看 Azure Monitor Application Insights 常见问题解答OpenTelemetry 常见问题解答