你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

OpenTelemetry 概述

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

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

概念

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

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

最初,OpenTelemetry 社区采用分布式跟踪。 指标和日志方面的工作仍在进行中。 完整的可观测性情景包含所有三个支柱构成要素,但目前我们针对 .NET、Python 和 JavaScript 推出的基于 Azure Monitor OpenTelemetry 的导出器预览版产品/服务仅包含分布式跟踪。

以下源介绍三大支柱:

我们将在以下部分介绍一些遥测收集的基础知识。

检测应用程序

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

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

  • 手动检测
  • 自动检测(自动检测)

手动检测指针对 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 是否适合你的项目。