バージョンアップ情報
OpenTelemetry情報
OpenTelemetryとは
OpenTelemetryは、分散アプリケーションのトレーシングとメトリクス収集のための統一的な規格化とAPIを提供するオープンソースプロジェクトです。クラウドネイティブな環境では、刻一刻と変わる環境内部のアプリケーションやシステムの状態を監視し、情報を収集するObservability(可観測性)が重要になってきます。OpenTelemetryは、これらのシグナルの収集や送信を標準化し、効果的かつ統一的に行うことが可能です。
OpenTelemetryは、分散アプリケーションのトレーシングを提供するOpenTracingと、分散トレーシングとメトリクス収集を統合的に扱うことを目的としていたOpenCensusという2つのプロジェクトの統合によって2020年に発足したプロジェクトです。2021年には、CNCFプロジェクトの一部となり、多くの企業やコントリビューターの支援を受けながら、様々な言語やランタイムに対応するライブラリやエージェントが提供されるなど、プロジェクトは成長を続けています。
主な特徴
OpenTelemetryは以下のような特徴を備えています。
分散トレーシング |
分散アプリケーション内の異なるコンポーネント間のリクエストフローを追跡し、それらのリクエストがどのように相互作用しているかを可視化します。これにより、ボトルネックや遅延の原因を特定してトラブルシューティングや最適化を行いやすくします。 |
---|---|
メトリクス収集 |
アプリケーションのパフォーマンスデータやリソース利用率などのメトリクスを収集し、監視することが出来ます。 |
ログ記録 |
アプリケーション内で発生するログメッセージを取集します。ログはエラーの特定やトラブルシューティングに不可欠な情報であり、OpenTelemetry はその収集と送信をサポートします。 |
インストルメンテーション |
様々な言語で共通のインストルメンテーションを行うことが可能です。また、一部の言語では、自動的にインストルメンテーションを行う機能を提供しています。 |
API |
OpenTelemetryAPIは様々なプログラミング言語に対して一貫したトレースデータやメトリクスデータの生成と収集をするためのインタフェースを提供します。これにより統一的にトレースとメトリクスを扱うことが可能です。 |
Collector |
Collectorは、アプリケーションから収集されたトレースデータやメトリクスデータを受け取り、適切な処理をしてバックエンドに転送する役割を担います。また、Collectorはデータのフィルタ、変換、集約なども行います。 |
ユースケース
OpenTelemetryは、クラウドコンピューティングやマイクロサービス、分散システムのObservabilityを確保することを目的として利用されます。
動作環境
OpenTelemetryの主な動作環境を下記に記載します。
言語
- C++
- .NET
- Erlang/Elixir
- Go
- Java
- JavaScript
- PHP
- Python
- Ruby
- Rust
- Swift
プラットフォーム
- AWS
- Google Cloud Platform
- Microsoft Azure
OpenTelemetryのライセンス
OpenTelemetryのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Prometheus
プロメテウス。GO言語で書かれたオープンソースのモニタリングツールです。
-
Logstash
ログスタッシュ。Elastic社により開発された、データ収集ツールです。
-
サポート対象
Jaeger
イエーガー。GoogleのDapperやOpenZipkinを参考にUber Technologies社によって開発され、その後オープンソース化されたGo言語の分散トレーシングシステムです。
-
サポート対象
Fluentd
フルエントディ。様々なデバイスやシステムからログ収集を行い、NoSQLデータベースやテキストなど様々フォーマットに変換・格納するログコネクタです。