バージョンアップ情報
OpenTelemetry情報
OpenTelemetryとは
OpenTelemetryは、分散アプリケーションのトレーシング、メトリクス、ログの収集のための統一的な仕様、API、SDK、ツール群を提供するオープンソースプロジェクトです。
クラウドネイティブな環境では、刻々と変化するアプリケーションやシステムの状態を監視し、情報を収集するObservability(可観測性)が重要になってきます。
OpenTelemetryは、これらのシグナルの収集や送信を標準化し、効果的かつ統一的に行うことが可能です。
OpenTelemetryは、分散アプリケーションのトレーシングを提供するOpenTracingと、分散トレーシングとメトリクス収集を統合的に扱うことを目的としていたOpenCensusという2つのプロジェクトの統合によって2019年に発足したプロジェクトです。
現在、OpenTracing と OpenCensus はどちらも Archived(開発終了)となっており、OpenTelemetry が業界のデファクトスタンダードとして定着しています。
また、2019年にCNCF(Cloud Native Computing Foundation)プロジェクトとして受け入れられ、2021年の「Incubating」昇格を経て、CNCFプロジェクトの一部として多くの企業やコントリビューターの支援を受けながら成長を続け、2026 年5月には「Graduated」プロジェクトに昇格しました。
様々な言語やランタイムに対応するライブラリやエージェントが提供されるなど、プロジェクトは引き続き成長を続けています。
主な特徴
OpenTelemetry は、クラウドネイティブ環境における可観測性(Observability)を実現する、業界デファクトスタンダードの統合フレームワークです。
システムの状態把握に不可欠な分散トレーシング、メトリクス、ログという 3つのシグナルを、統一された規格で扱える点が最大の特徴です。
ベンダーに依存しない API を提供し、さまざまな言語環境で簡単にシグナルを送出する仕組みを導入できるほか、収集したデータは Collector によって OTLP 経由で柔軟に処理・送信されます。
これにより、特定の監視ツールへのロックインを避け、環境に合わせた効率的な運用基盤を自由に構築できます。
OpenTelemetry を構成する 6 つの主要な特徴について説明します。
|
分散トレーシング |
分散アプリケーション内の異なるコンポーネント間のリクエストフローを追跡し、それらのリクエストがどのように相互作用しているかを可視化します。 |
|---|---|
|
メトリクス収集 |
アプリケーションのパフォーマンスデータやリソース利用率などのメトリクスを収集し、監視することが出来ます。 |
|
ログ記録 |
アプリケーション内で発生するログメッセージを収集します。 |
|
インストルメンテーション |
様々な言語で共通のインストルメンテーションを行うことが可能です。 |
|
API |
OpenTelemetry APIは様々なプログラミング言語に対して一貫したトレースデータ、メトリクスデータ、ログデータの生成と収集をするためのベンダーニュートラルなインターフェースを提供します。 |
|
OpenTelemetry Collector |
Collectorは、アプリケーションから収集されたトレースデータやメトリクスデータ、ログデータを受け取り、適切な処理をしてバックエンドに転送する役割を担います。 |
メリット・デメリット
メリット・必要性
- ベンダーロックインを回避し、複数の監視・分析ツールと連携可能
- クラウドネイティブ/マイクロサービス環境での可観測性を統一的に実現
- 様々な言語やプラットフォームに対応
- 活発なオープンソースコミュニティにより継続的に進化
- AI/LLMなど新たなユースケースにも対応
デメリット・注意点・課題
- 一部言語や機能はまだ安定版でない場合があるため、導入時は公式サポート状況の確認が必要
- Collectorやエージェントの構成が複雑になる場合がある
- 既存システムへの導入時はインストルメンテーションの影響範囲に注意
- トレース、メトリクス、ログなどの主要な仕様については安定版が公開されており後方互換性が考慮されるが、改良や改善は継続的に進行中のため、バージョンアップの際には仕様変更に追従が必要
類似プロダクト
以下はOpenTelemetryに対応している代表的なオープンソースソフトウェアとなります。
|
プロダクト名 |
主な特徴 |
|---|---|
|
Jaeger |
分散トレーシング特化、UIが充実 |
|
Prometheus |
メトリクス収集・監視に特化 |
|
Zipkin |
シンプルな分散トレーシング |
|
Grafana |
Tempo(トレーシング)やMimir(メトリクス)、Loki(ログ)との連携が可能 |
OpenTelemetry対応アプリケーションの例
OpenTelemetryはさまざまなアプリケーションでも利用されています。
例えば、OpenStandiaでサポート提供しているKeycloakはOpenTelemetryに対応しており、認証・認可処理に関するトレースやメトリクスを出力し、対応する監視基盤へ送信できます。
OpenTelemetryに対応しているライブラリ、アプリケーション/サービス、ベンダーは上記以外にも多数あります。
詳しくは下記のURLを参照ください。
ユースケース
OpenTelemetryは、クラウドコンピューティングやマイクロサービス、分散システムのObservabilityを確保することを目的として利用されます。
OpenTelemetryを導入するにあたり、アプリケーションを実装する開発者とテレメトリーデータを収集する運用担当者の各役割に応じたアプローチがあります。
|
観点 |
アプリケーション開発 |
システム運用 |
|---|---|---|
|
関心領域 |
アプリケーション内部のロジック |
システム全体の健全性と構成 |
|
知りたいこと |
処理のどの行・関数で遅延やエラーが起きたか |
どのサービス・インフラに問題が起きているか |
|
主なユースケース |
|
|
|
主なアプローチ |
|
|
|
主なコンポーネント |
OpenTelemetry SDK / API |
OpenTelemetry Collector / Operator |
|
主な対象スコープ |
関数、DBクエリ、外部APIコール |
マイクロサービス群、ノード、クラスター |
AI分野での活用例
近年、AIシステムの可観測性向上のため、OpenTelemetryをベースとしたOpenLLMetryなどのライブラリが利用されています。
OpenLLMetryは大規模言語モデル(LLM)の推論やAPI呼び出しのトレースをOpenTelemetry形式で出力し、AIサービスの品質管理や障害解析に役立てられています。
これにより、プロンプトから回答生成までの処理フローやパフォーマンス可視化が容易になり、生成AI特有の可観測性の課題(例:トークン消費、モデルバージョン差異など)への対応に役立ちます。
動作環境
OpenTelemetryの主な動作環境を下記に記載します。
言語
- C++
- C#/.NET(ゼロコード計装対応)
- Erlang/Elixir
- Go(ゼロコード計装対応)
- Java(ゼロコード計装対応)
- JavaScript(ゼロコード計装対応)
- PHP(ゼロコード計装対応)
- Python(ゼロコード計装対応)
- Ruby
- Rust
- Swift
プラットフォーム
- AWS
- Google Cloud
- Microsoft Azure
コンテナ
- Docker
- Kubernetes
OpenTelemetryのライセンス
OpenTelemetryのライセンスは、Apache License 2.0(Apache License, Version 2.0)のもとで公開されています。
営利、非営利を問わず、ライセンス条件の範囲内で誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

