先日、OpenTelemetry Protocol (OTLP) 1.0.0がリリースされた。OTLPの仕様は、テレメトリソースと、コレクターのような中間ノード、テレメトリバックエンドの間でのテレメトリデータのエンコーディング、トランスポート、 配信メカニズムについて、記述をしている。これは、OpenTelemetryプロジェクトの範囲内で設計された、汎用テレメトリデータ配信プロトコルである。
OpenTelemetry(OTEL)は、OpenCensusプロジェクトと OpenTracingプロジェクトとの合併によって構成されたオープンソースのCloud Native Computing Foundation(CNCF)プロジェクトです。OTELは、トレース、メトリクス、ログなどのテレメトリデータを、計測・生成・収集・エクスポートするための、ベンダーに中立なオープンソースのObservabilityフレームワークである。このフレームワークは、分散トレースおよび分散メトリクスをキャプチャするための、APIや、ライブラリ、エージェント、そして収集サービスのセットを提供している。さらに、その仕様は2021年の初めに1.0.0バージョンのステータスに達し、InfoQによって報告された。
OpenTelemetry は、API を使用してアプリケーション コードの活用を容易にし、テレメトリデータを生成し、さまざまなSDK実装の間で、メトリクスの収集をシームレスにガイドする。。OTelは、開発者がコードを活用し、テレメトリデータをとらえることを可能にするため、言語固有の統合とライブラリを提供するものである。それらはたとえば、Java・Golang・.NET・Python用の、OTel SDKのようなものだ。これらのライブラリからのテレメトリデータは収集され、OpenTelemetry Collector に送信され、クライアントとサーバー間のデータ交換に OTLP を利用する。OTLPは、トレース、メトリクス、ログのデータモデルに厳密に準拠したシリアル化スキーマを定義している。
OpenTelemetry Collectorは中央リポジトリとして機能しており、様々なソースから収集された テレメトリデータを受信、処理、エクスポートし、個々のアプリケーションのローカルエージェント、複数のアプリケーションのゲートウェイとしても機能する。
Open Telemetryダイアグラム(出典:OpenTelemetryドキュメント)
OTLPは、データがどのようにシリアル化、逆シリアル化され、また、どのようにネットワーク・サービス間で転送されるか、という役割を担う。このプロトコルは、データモデルに 厳密に準拠し、連続したスキーマを明確にし、他のテレメトリ・プロトコルでの問題を解決することを目的としている。
ハニカムの開発責任者であるMartin Thwaites氏は、InfoQにて次のように語っている。
OTLPはOpenTelemetryの中核であり、以前よりもパワフルになっている。v1 への移行は、これを次のレベルに引き上げることです。すでに、ほとんどのベンダーが、OTLPプロトコルを使ったデータの受け入れに適応している。V1によって、OLTPは切望されていた信頼が得られ、このサポート追加によって、最後に残されたわずかな困難も、乗り越えることが十分期待されるだろう。
さらに、彼は次のように述べた。
重要なのは、より多くの相互運用性が向上して、独自のプロトコルライブラリを、自分たちのスタックに追加する必要が減っていく点だ。このことは、自分たちのアプリケーションで何が起こっているのかを、いっそう可視化したいという人々にとって、この上ない利点となる。
最後に、OpenTelemetryプロジェクトは現在CNCFのインキュベーション・プロジェクトである。