OpenTelemetryの概要と歴史
OpenTelemetry(オープンテレメトリー、略称: OTel)は、ソフトウェアシステムの可観測性を向上させるために設計されたオープンソースのフレームワークです。このプロジェクトは、動作中のシステムから収集されるテレメトリーデータ(トレース、メトリクス、ログ)を生成、収集、処理、外部にエクスポートするプロセスを標準化します。計装とは、アプリケーションの挙動を測定するためのコードやライブラリを組み込むことを指し、OTelはそれを簡素化する役割を果たします。
特徴とベンダーニュートラル性
OpenTelemetryの大きな特徴は、特定の監視ベンダーに依存しない単一の標準を提供する点です。これにより、利用者は異なる監視ツールを使用する際でも、アプリケーション側の計装コードを再度書き直す必要がなくなります。OpenTelemetryは
Cloud Native Computing Foundation(CNCF)の元でホストされ、2019年にOpenTracingとOpenCensusという先行プロジェクトの統合により誕生しました。そして、2026年5月にはCNCFの最高レベルの成熟度区分である「Graduated」(卒業)に認定されました。
歴史の経緯
OpenTelemetryは、分散システムの計装を目的とした二つの先行プロジェクト、OpenTracingとOpenCensusに起源を持ちます。OpenTracingは分散トレーシング用のAPIの標準化を目指して2016年に始まり、OpenCensusは
Googleが社内の計測ライブラリを元にしたもので、メトリクスの収集と分散トレーシングの双方に対応していました。これらのプロジェクトは、それぞれの特性が重なり合うため、利用者に選択の混乱を招いていました。
2019年5月、両者は統合され、OpenTelemetryとして新たに発表されました。この統合の目的は、テレメトリーデータの質を高め、移植性のある単一の計装機構を提供することでした。これにより、OpenTracingはその役割をOTelに引き渡し、2021年にはCNCFのアーカイブプロジェクトにされました。
標準化と安定性
2021年2月にOpenTelemetryの仕様のバージョン1.0.0が公開され、以後トレースに関する仕様が安定版として確立されました。同年8月にはCNCFの成熟度区分「Incubating」(インキュベーター)に昇格し、以降メトリクスやログの仕様も安定版に到達しました。2026年5月には、CNCFがOpenTelemetryの「Graduated」達成を発表し、これにより参加した企業数やコントリビューター数が大きく増加したことが確認されました。
基本構成要素
OpenTelemetryは、テレメトリーデータをシグナルと呼ばれる単位で扱います。主なシグナルはトレース、メトリクス、ログの3つで、これらは共通のコンポーネントに基づいて構築されています。主な構成要素は以下の通りです。
- - API: 計装コードが呼び出すインターフェース。アプリケーションやライブラリが計測コードを実装します。
- - SDK: APIを実装するためのライブラリで、テレメトリーデータの加工やエクスポート方法の設定を行います。
- - OTLP(OpenTelemetry Protocol): データの送受信のための標準プロトコルです。
- - Collector: テレメトリーデータの受信、加工、送出を行うプログラムです。このコンポーネントは特定のベンダーに依存せず、異なるデータ形式を受け取り、複数の出力先に振り分けることができます。
また、OpenTelemetryでは、セマンティック規約によってデータの名前や属性が統一され、自動計装によってコードを書き換えずに計装を有効化する仕組みも提供されています。
対応プログラミング言語とベンダーの対応
OpenTelemetryのAPIやSDKは多数のプログラミング言語に対応しており、公式ドキュメントには
C++、C#、
Java、
Pythonなどの実装があります。ただし、各言語の成熟度によっては、シグナルの安定版が異なるため、導入前に確認が必要です。
主要な監視・
オブザーバビリティ製品の中には、OpenTelemetryによるデータ取り込みに対応しているものが多く、
DatadogやAWS、
Google Cloudなどがその一例です。これらのプラットフォームは、OpenTelemetryとの相互運用性のための機能を提供しています。
採用状況と展望
CNCFの発表によれば、OpenTelemetryは実質的な
オブザーバビリティの標準として評価されています。日本語圏でも、技術メディアやカンファレンスでの解説記事が続々と発表され、今後の技術進化において重要な位置を占めることが期待されています。