OpenTelemetry仕様がv1.0.0に到達した。このマイルストンには、安定性の向上と後方互換性の保証に加えて、多くの言語で使用可能なAPIとSDKのリリース候補が含まれている。また、今回のリリースで、トレースAPIとトラッキングSDKが安定版となった。
OpenTelemetryはAPIセット、ライブラリ、エージェント、さらには分散トレースとメトリクスをキャプチャする収集サービスを提供している。上位レベルにおいては、クライアントはシグナルでオーガナイズされ、個々のシグナルが可観測性の形式を表現する。トレーシング(tracing)、メトリクス(metrics)、バッゲージ(baggage)という、3つの分離したシグナルがある。
トレースはイベントセットを表現するもので、単一操作(Webサイトのボタンのクリックのような)によって生成され、アプリケーション内のさまざまなコンポーネントから集約される。OpenTelemetryの中では、バッゲージは名前と値のペアを表す。ひとつのサービスのイベントを、同じトランザクション内のそれ以前のサービスが提供する詳細情報によってインデックス付けするために、バッゲージが使用される。例えばプロバイダが、リクエストを担当するAPIユーザに関するコンテキストを含めることができる。
今回のリリースは、OpenTelemetryクライアントのトレース関連部分によって、新たなレベルの安定性に到達している。OpenTelemetry .NETでは、OpenTelemetry仕様の1.0バージョンを実装した1.0バージョンが先日公開された。このリリースにはトレーシング、バッゲージ、コンテキスト用の.NET API、およびプロパゲータ(propagator)、サンプリングや処理やエクスポートをコントロールするSDKが含まれる。Jaeger、Zipkin、およびOpenTelemetry Protocol(OTLP)用のエクスポータ(exporter)もある。入門ガイドとサンプルも含まれている。
OpenTelemetry .NETの今後のリリースでは、ASP.NET、ASP.NET core、HTTPクライアント、SQLクライアント、gRPCクライアント用実装ライブラリの安定版が提供されるものと期待される。メトリクスAPIを.NETランタイム自体に組み込む計画もある。これはトレースAPIの構成方法と同じで、.NET Activity APIをOpenTelemetryトレースAPIとして使用することが可能になる。
リリース時点ではErlang、Java、Python用のAPIおよびSDKのリリース候補(RC)も用意されており、その他の言語も数か月以内に追加される予定である。
OpenTelemetryのトレース関連部分の安定性が向上したことを受けて、トレースAPIとSDKはexperimental(試験的)からstable(安定版)リリースへと移行した。今後のマイナーバージョンとの互換性に関するコミットメントに加えて、次期メジャーリリース以降もサポートの継続されることが保証されている。APIは最低3年間、プラグインインターフェースとコンストラクタは最低1年間、それぞれサポートされる。
Lightstepで開発者教育ディレクタを務めるTed Young氏によると、"トレースはOpenTelemetryで最初に安定した部分だが、メトリクスやログ、セマンティックコンベンションは今後も進化を続ける"。ただし、これらのコンポーネントがトレースの到達した安定性に影響を与えることはない。これらはマイナーバージョンの一部としてリリースされる予定である。
メトリクスの方向に関する情報を提供するため、PrometheusやOpenMetrics、Micrometerなどの関連プロジェクトに対してアドバイスを求めている。StanzaがOpenTelemetry Collectorに寄贈されたことで、Young氏は、OpenTelemetry Collectorが"最高クラスのログプロセッサになることは間違いない"と感じている。StanzaはFluentDやLogstashなどと同じ、ログトランスポートと処理のためのエージェントである。おもなオペレーティングシステムすべての上でスタンドアロンで実行可能な他、任意のGo言語アプリケーションに直接組み込むこともできる。この統合に伴い、Stanzaの現行のリポジトリは廃止され、OpenTelemetry Log Collectionリポジトリ内で開発が継続されるようになる。
メトリクスの開発が安定版に移行すれば、OpenTelemetryプロジェクトの一般公開(GA)が宣言される計画である。今回のリリースの一部として、プロジェクトのチャットがSlackから、CNCF Slackインスタンス内のOpenTelemetryチャネルに移行する。さらに詳細な説明とダウンロードは、OpenTelemetry GitHubページにある。