合并 OpenTracing 和 OpenCensus:融合之路

合并 OpenTracing 和 OpenCensus:融合之路

作者:Ted Young、Pritam Shah 和技术规范委员会(Carlos Alberto、Bogdan Drutu、Sergei Kanzhelev 和 Yuri Shkuro)。

该联合项目获得了以下名称: http://opentelemetry.io

非常非常简短:

  • 我们正在为遥测监控功能创建一套新的统一库和规范。 它将合并 OpenTracing 和 OpenCensus 项目,并提供受支持的迁移路径。
  • Java 的参考实现将于 24 月 8 日提供,其他语言的实现工作将于 2019 年 XNUMX 月 XNUMX 日全面开始。 查看时间表 可以在这里.
  • 到 2019 年 XNUMX 月,计划与 C#、Golang、Java、NodeJS 和 Python 的现有项目实现同等水平。 我们面前有很多工作,但如果我们并行工作,我们就能应对。 如果您有兴趣参与该项目,请注册并告诉我们您希望如何做出贡献。
  • 一旦每种语言的实现成熟,相应的 OpenTracing 和 OpenCensus 项目将关闭。 这意味着旧项目将被冻结,新项目将利用向后兼容性继续支持现有工具两年。

项目概述

合并 OpenTracing 和 OpenCensus:融合之路

我们正在进行合并! 最终目标是将 OpenTracing 和 OpenCensus 项目整合到一个公共项目中。
新项目的核心将是一组干净且周到的接口,包括以所谓的形式实现这些接口的传统库的组装。 SDK。 锦上添花的是数据和有线协议的推荐标准,包括基础设施的公共部分。
结果将是一个完整的遥测系统,适用于监控微服务和其他类型的现代分布式系统,与大多数主要的 OSS 和商业后端软件兼容。

主要活动

24.04/XNUMX — 参考候选人提交审核。
8.05 — 团队成立并开始以所有语言工作。
20.05 — 该项目在巴塞罗那 Kubecon 正式启动。
6.09 - C#、Golang、Java、NodeJS 和 Python 的实现与同类实现相当。
6.11 - OpenTracing 和 OpenCensus 项目正式完成。
20.11 — 为纪念在圣地亚哥 Kubecon 举行的可观测性峰会上项目的完成而举办的告别派对。

融合时间表

合并 OpenTracing 和 OpenCensus:融合之路

每种语言的迁移包括生产就绪的 SDK 构建、流行库的工具、文档、CI、向后兼容性工具以及相关 OpenCensus 和 OpenTracing 项目的关闭(“日落”)。 我们在 2019 年 XNUMX 月设定了一个雄心勃勃的目标——实现 C#、Golang、Java、NodeJS 和 Python 语言的平等。 我们将推迟日落日期,直到所有语言都准备就绪。 但最好避免这种情况。
查看目标时,请考虑您的个人参与,请填写以下信息让我们知道 报名表格,或者在项目的 Gitter 聊天中打招呼 开放式追踪 и 开放人口普查。 您可以将图表视为信息图 这里.

目标:跨语言规范初稿(8 月 XNUMX 日完成)

即使在使用不同语言并行工作时,协调一致的工作也很重要。 跨语言规范为项目提供了指导。 这听起来平淡无奇,但它保证了对一个连贯的系统的支持,无论编程语言如何,都让人感觉很熟悉。

X 语言规范初稿的强制性要求:

  • 一般术语的定义。
  • 用于描述分布式事务、统计数据和指标的模型。
  • 对实施过程中出现的重要问题进行了澄清。

这个目标阻碍了剩下的工作,初稿必须在8月XNUMX日之前完成。

目标:数据规范初稿(6 月 XNUMX 日完成)

数据规范定义了跟踪和指标的通用数据格式,以便所有进程导出的数据都可以由相同的遥测基础设施处理,而不管数据生成过程如何。 这包括跨语言规范中描述的跟踪模型的数据模式。 还包括跟踪用于捕获的常见操作的元数据定义,例如 HTTP 请求、错误和数据库查询。 这些 语义约定 就是一个例子。

第一份草案基于当前的 OpenCensus 数据格式,并将包含以下内容:

  • 实现跨语言规范的数据模式。
  • 常见操作的元数据定义。
  • JSON 和 Protobuf 定义。
  • 参考客户的实施。

请注意,还有一种在带内分发跟踪的有线协议,我们也希望对其进行标准化。 发行形式 跟踪上下文 通过 W3C 开发。

目标:所有主要支持语言的平等(6 月 XNUMX 日完成)

我们必须通过用新项目替换旧项目来实现当前语言生态系统的平等。

  • 基于跨语言规范的跟踪、指标和上下文传播的接口定义。
  • 一个即用型 SDK,可实现这些接口并导出跟踪数据。 在可能的情况下,将通过从 OpenCensus 移植现有实现来创建 SDK。
  • 目前 OpenTracing 和 OpenCensus 中涵盖的流行库的工具包。

我们还重视向后兼容性,并希望确保现有项目的顺利过渡。

  • 新的 SDK 将向后兼容当前的 OpenTracing 接口。 它们将允许旧版 OpenTracing 工具与新工具在同一流程中运行,从而允许用户随着时间的推移迁移他们的工作。
  • 当新的 SDK 准备就绪时,将为当前 OpenCensus 用户创建升级计划。 与 OpenTracing 一样,旧工具将能够继续与新工具一起工作。
  • 到 XNUMX 月,OpenTracing 和 OpenCensus 将停止接受更改。 将支持与旧版工具的向后兼容性两年。

为每种语言创建一流的 SDK 需要大量工作,而这正是我们最需要的。

目标:基本文档(6 月 XNUMX 日之前完成)

任何开源项目成功的一个关键因素是文档。 我们需要一流的文档和培训工具,而我们的技术作家是该项目中最活跃的开发人员。 教导开发人员如何正确监控软件是我们希望对世界产生的最重要的影响之一。

以下文档是入门所需的最低限度的文档:

  • 项目导向。
  • 可观察性 101.
  • 入门
  • 语言指南(每个单独)。

欢迎各个级别的作家! 我们的新网站基于 Hugo,使用常规标记,因此很容易做出贡献。

目标:Registry v1.0(6 月 XNUMX 日完成)

注册表 - 另一个关键组件,改进版本 OpenTracing 注册表.

  • 很容易找到库、插件、安装程序和其他组件。
  • 轻松管理注册表组件。
  • 您可以了解每种语言提供哪些 SDK 功能。

如果您对设计、界面和用户体验感兴趣,我们有一个优秀的项目可供个人参与。

目标:软件测试和发布的基础设施(6 月 XNUMX 日完成)

为了确保我们继续提供您可以信赖的安全代码,我们致力于构建高质量的软件测试和发布管道。 如果您可以负责测试、特性描述和软件发布的流程,请告知我们。 我们明确表明生产准备水平,测试基础设施的成熟度将是我们的主要决定因素。

目标:关闭 OpenTracing 和 OpenCensus 项目(6 月 XNUMX 日完成)

如果新项目与旧项目持平,我们计划从 6 月 2 日开始关闭旧项目。 XNUMX 个月后,在所有语言平等的情况下,我们计划关闭 OpenTracing 和 OpenCensus 项目。 应该这样理解:

  • 存储库将被冻结,并且不会进行进一步的更改。
  • 当前的工具包计划有两年的支持期。
  • 用户将能够使用相同的工具升级到新的 SDK。
  • 逐步更新将是可能的。

现在加入

我们欢迎任何帮助,因为这是一个巨大的项目。 如果您有兴趣学习可观察性,现在正是时候!

来源: habr.com

添加评论