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 プロジェクトは終了します。 これは、古いプロジェクトが凍結され、新しいプロジェクトが下位互換性を使用して既存のツールを XNUMX 年間サポートし続けることを意味します。

プロジェクト概要

OpenTracing と OpenCensus の統合: コンバージェンスへの道

合併するんだよ! 最終的な目標は、OpenTracing プロジェクトと OpenCensus プロジェクトを XNUMX つの共通プロジェクトに統合することです。
新しいプロジェクトの中核は、これらのインターフェイスをいわゆる形式で実装する従来のライブラリのアセンブリを含む、クリーンで思慮深いインターフェイスのセットになります。 SDK。 おまけに、インフラストラクチャの共通部分を含む、データとワイヤ プロトコルの推奨標準が追加される予定です。
その結果、ほとんどの主要な OSS および商用バックエンド ソフトウェアと互換性のある、マイクロサービスやその他の種類の最新の分散システムの監視に適した完全なテレメトリ システムが実現します。

主なイベント

24.04/XNUMX — 参考候補者が審査のために提出されました。
8.05 — チームが結成され、すべての言語で作業を開始します。
20.05 — Kubecon Barcelona でプロジェクトが正式に開始。
6.09 - C#、Golang、Java、NodeJS、Python での実装は、対応するものと同等になります。
6.11 - OpenTracing および OpenCensus プロジェクトが正式に完了。
20.11 — サンディエゴの Kubecon での Observability Summit でのプロジェクトの完了を記念するお別れパーティー。

収束のタイムライン

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 日までに完了)

古いプロジェクトを新しいプロジェクトに置き換えることによって、現在の言語エコシステムの同等性を達成する必要があります。

  • 言語を超えた仕様に基づいた、トレース、メトリクス、およびコンテキスト伝播のためのインターフェイス定義。
  • これらのインターフェイスを実装し、Trace-Data をエクスポートする、すぐに使用できる SDK。 可能な限り、SDK は OpenCensus から既存の実装を移植することによって作成されます。
  • 現在 OpenTracing および OpenCensus でカバーされている人気のあるライブラリのツールキット。

また、下位互換性も重視しており、既存のプロジェクトからのスムーズな移行を確保したいと考えています。

  • 新しい SDK は、現在の OpenTracing インターフェイスと下位互換性があります。 これらにより、従来の OpenTracing ツールを同じプロセス内で新しいツールと並行して実行できるようになり、ユーザーは時間をかけて作業を移行できるようになります。
  • 新しい SDK の準備ができたら、現在の OpenCensus ユーザー向けにアップグレード プランが作成されます。 OpenTracing と同様に、従来のツールも新しいツールと並行して動作し続けることができます。
  • XNUMX 月までに、OpenTracing と OpenCensus は両方とも変更の受け付けを終了します。 従来のツールとの下位互換性は XNUMX 年間サポートされます。

すべての言語に対してクラス最高の SDK を作成するには多くの作業が必要ですが、それが私たちに最も必要なことです。

目標: 基本的な文書化 (6 月 XNUMX 日までに完了)

オープンソース プロジェクトの成功にとって重要な要素はドキュメントです。 私たちは一流のドキュメントとトレーニング ツールを求めており、当社のテクニカル ライターはプロジェクトで最も積極的な開発者です。 ソフトウェアを適切に監視する方法を開発者に教えることは、私たちが世界に与えたい最も重要な影響の XNUMX つです。

開始するには、次のドキュメントが最低限必要です。

  • プロジェクトの方向性。
  • 可観測性101。
  • 仕事の始まり。
  • 言語ガイド (それぞれ個別)。

あらゆるレベルのライターを歓迎します! 私たちの新しいサイトは Hugo に基づいており、通常のマークアップを使用しているため、貢献するのは非常に簡単です。

目標: レジストリ v1.0 (6 月 XNUMX 日までに完了)

レジストリ - もう XNUMX つの重要なコンポーネント、改良版 OpenTracing レジストリ.

  • ライブラリ、プラグイン、インストーラー、その他のコンポーネントを簡単に見つけることができます。
  • レジストリ コンポーネントの管理が簡単。
  • 各言語で利用できる SDK 機能を確認できます。

デザイン、インターフェイス、UX に興味がある場合は、個人参加のための優れたプロジェクトをご用意しています。

目標:ソフトウェアのテストとリリースのためのインフラストラクチャ(6月XNUMX日までに完了)

信頼できる安全なコードを提供し続けるために、私たちは高品質のソフトウェア テストとリリース パイプラインを構築する設計に取り組んでいます。 テスト、特性評価、ソフトウェア リリースのパイプラインを担当できるかどうかをお知らせください。 私たちは本番の準備のレベルを明確に示しており、テストインフラストラクチャの成熟度が私たちにとっての主な決定要因となります。

目標: OpenTracing プロジェクトと OpenCensus プロジェクトを終了する (6 月 XNUMX 日までに完了)

新しいプロジェクトが古いプロジェクトと同等になった場合、6 月 2 日に古いプロジェクトの閉鎖を開始する予定です。 XNUMX か月後、すべての言語を同等にして、OpenTracing プロジェクトと OpenCensus プロジェクトを終了する予定です。 これは次のように理解されるべきです。

  • リポジトリは凍結され、それ以上の変更は行われません。
  • 現在のツールキットには XNUMX 年間のサポート期間が予定されています。
  • ユーザーは同じツールを使用して新しい SDK にアップグレードできます。
  • 段階的なアップデートが可能となります。

今すぐ参加

これは大規模なプロジェクトであるため、どんなご協力も歓迎いたします。 可観測性について学ぶことに興味があるなら、今がその時です。

出所: habr.com

コメントを追加します