你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
OpenTelemetry 概述
Microsoft 很高兴能够在未来使用 OpenTelemetry 检测遥测数据。 作为我们的客户,你曾要求提供非供应商特定的工具,并且我们很高兴能够与 OpenTelemetry 社区达成合作,跨语言创建一致的 API 和 SDK。
Microsoft 与两个以前常用的开源遥测项目 OpenCensus 和 OpenTracing 的项目利益干系人合作。 我们互帮互助,携手创建了 OpenTelemetry 这一项目。 OpenTelemetry 包括所有主要云和应用程序性能管理 (APM) 供应商发布的内容,并由云原生计算基金会 (CNCF) 运营。 Microsoft 是 CNCF 的白金成员。
概念
遥测数据(为观察应用程序而进行收集的数据)可以分为三种类型或包含三种构成要素:
- 分布式跟踪
- 指标
- 日志
最初,OpenTelemetry 社区采用分布式跟踪。 指标和日志方面的工作仍在进行中。 完整的可观测性情景包含所有三个支柱构成要素,但目前我们针对 .NET、Python 和 JavaScript 推出的基于 Azure Monitor OpenTelemetry 的导出器预览版产品/服务仅包含分布式跟踪。
以下源介绍三大支柱:
- OpenTelemetry 社区网站
- OpenTelemetry 规范
- Cindy Sridharan 的分布式系统可观测性
我们将在以下部分介绍一些遥测收集的基础知识。
检测应用程序
就基础级别而言,“检测”只是使应用程序能够捕获遥测数据。
有两种检测应用程序的方法:
- 手动检测
- 自动检测(自动检测)
手动检测指针对 OpenTelemetry API 进行编码。 在用户的上下文中,它通常是指在应用程序中安装语言特定的 SDK。 手动检测包中包含我们适用于 .NET、Python 和 JavaScript 的基于 Azure Monitor OpenTelemetry 的导出程序预览版产品/服务。
重要
“手动”并不意味着需要编写复杂的代码来定义分布式跟踪的范围(尽管这仍不失为一种选择)。 使用由 OpenTelemetry 贡献者维护的丰富且不断扩充的一组检测库,可以轻松地跨通用框架和库捕获遥测信号。
根据客户的反馈信息,我们将在 Azure Monitor 中提供 OpenTelemetry 检测库的子集。 我们也在努力使用 OpenTelemetry 检测最常用的 Azure 服务 SDK。
自动检测通过配置启用遥测数据收集,而不会涉及应用程序的代码。 虽然非常方便,但其可配置性较低。 并且只提供部分语言版本。 基于 Azure Monitor OpenTelemetry 的自动检测产品/服务包含基于 Java 3.X OpenTelemetry 的 GA 产品/服务。 我们将继续根据客户反馈做出相应投资。 OpenTelemetry 社区还尝试使用 C# 和 Python 自动检测,但 Azure Monitor 主要用于在短期内创建简单有效的手动检测。
发送遥测数据
可以通过两种方式将数据发送给 Azure Monitor(或任何供应商):
- 通过直接导出程序发送
- 通过代理发送
直接导出程序会将正在进行的遥测(从应用程序的代码)直接发送到 Azure Monitor 引入终结点。 此方法的主要优点是加入过程非常简单。
Azure Monitor 中所有当前支持的基于 OpenTelemetry 的产品/服务均使用直接导出程序。
或者通过代理发送遥测,这将通过开放遥测协议 (OTLP) 为 OpenTelemetry 支持的任何语言提供发送到 Azure Monitor 的路径。 接收 OTLP 后,客户就能够观察用我们支持的语言之外的语言编写的应用程序。
注意
有些客户已开始使用 OpenTelemetry-Collector 作为代理替代服务,即使 Microsoft 尚未正式支持“通过代理”的应用程序监视方法。 与此同时,开源社区提供了 OpenTelemetry-Collector Azure Monitor 导出程序,一些客户正在使用该导出程序将数据发送到 Azure Monitor Application Insights。
术语
有关术语,请参阅 OpenTelemetry 规范中的术语表。
由于 OpenTelemetry 上的行业整合,Application Insights 中的一些旧术语会引起混淆问题。 下表突出显示这些差异。 最后,Application Insights 术语将替换为 OpenTelemetry 术语。
Application Insights | OpenTelemetry |
---|---|
自动收集器 | 检测库 |
通道 | 导出程序 |
无代码/基于代理 | 自动检测 |
跟踪 | 日志 |
后续步骤
以下网站包含用于启用和配置 Microsoft 的基于 OpenTelemetry 产品/服务的语言指南。 解释了每个产品/服务的可用功能和限制,以便你可以确定 OpenTelemetry 是否适合你的项目。