在监视应用程序之前,需要先对其进行检测。 在以下部分中,我们将介绍 Azure Monitor Application Insights 的一些数据收集基础知识。
在 Application Insights 中使用 OpenTelemetry (OTel) 检测应用程序可实现跨平台遥测收集标准化。 这提高了可观测性,简化了性能监视,并支持分布式跟踪、指标和日志分析。
Application Insights 的检测方法:OpenTelemetry 等
在基础层面,“工具化”只是使应用程序可以捕获遥测数据。
有两种检测应用程序的方法:
- 自动化仪表 (自动仪表)
- 手动检测
自动化检测通过配置实现遥测数据的收集,而无需修改应用程序的代码。 虽然非常方便,但其可配置性较低。 并且只提供部分语言版本。 请参阅自动检测支持的环境和语言。 当自动检测可用时,这是启用 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 SDKs 或 Azure Monitor OpenTelemetry 发行版包括了在 Azure 上实现应用程序性能监视所需的所有功能。 包本身可以免费安装,只需为在 Azure Monitor 中引入的数据付费。
以下源介绍三大支柱:
- OpenTelemetry 社区网站
- OpenTelemetry 规范
- Cindy Sridharan 的分布式系统可观测性
遥测路由
可以通过两种方式将数据发送给 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 与两个以前常用的开源遥测项目 OpenCensus 和 OpenTracing 的项目利益干系人合作。 我们互帮互助,携手创建了 OpenTelemetry 这一项目。 OpenTelemetry 包括所有主要云和应用程序性能管理 (APM) 供应商发布的内容,并由云原生计算基金会 (CNCF) 运营。 Microsoft 是 CNCF 的白金成员。
有关术语,请参阅 OpenTelemetry 规范中的术语表。
由于 OpenTelemetry 上的行业整合,Application Insights 中的一些旧术语会引起混淆问题。 下表突出显示这些差异。 OpenTelemetry 术语将替换 Application Insights 术语。
Application Insights | OpenTelemetry |
---|---|
自动收集器 | 仪器库 |
频道 | 出口商 |
无代码/基于代理 | 自动检测 |
跟踪 | 日志 |
请求 | 服务器跨度 |
依赖项 | 其他范围类型(客户端、内部等) |
操作 ID | 跟踪 ID |
ID 或父级操作 ID | 范围 ID |
常见问题解答
在哪里可以找到 Application Insights SDK 版本及其名称的列表?
GITHub 上托管的 SDK 版本和名称的列表。 有关详细信息,请参阅 SDK 版本。
后续步骤
选择您的启用策略:
- 自动检测
- Application Insights SDK
- Azure Monitor OpenTelemetry 发行版
有关详细信息,请查看 Azure Monitor Application Insights 常见问题解答和 OpenTelemetry 常见问题解答。