TL;DR

サービスから送られるテレメトリデータを作成・管理するために設計された、ツールやコンポーネントの集まり。各言語の API や SDK が含まれる。

なぜ必要か

使いたいサービスが OpenTelemetry に対応していれば、アプリケーションに OpenTelemetry を入れるだけで、さまざまなメトリクスのサービスを少ない手間で使える。

公式ドキュメントによると、OpenTelemetry は特定のベンダーに依存しない。生成したデータはユーザが所有するので、ベンダーロックインを避けられる。また、1 組の API と規約を覚えればよい。

仕組み

扱うシグナルは、トレース、メトリクス、ログである。主な構成要素は次のとおり。

  • 全体の仕様(Specification)
  • テレメトリデータの形を定める OTLP プロトコル
  • テレメトリの名前付けを標準化するセマンティック規約
  • テレメトリを生成する API と、仕様を実装してデータをエクスポートする各言語の SDK
  • よく使われるフレームワーク向けの計装ライブラリと、コードを変えずに使える自動計装
  • データを受け取り、加工してエクスポートするプロキシの Collector

OpenTracing と OpenCensus を統合してできた CNCF のプロジェクトである。

例

対応しているサービスには Jaeger などがある。対応サービスの一覧は公式サイトにある。

注意点

OpenTelemetry 自体はオブザーバビリティのバックエンドではない。データの保存や可視化は、他のツールに任せる。

関連

出典