OpenTelemetryとは
OpenTelemetryはオブザーバビリティフレームワークであり、トレース、メトリクス、ログのようなテレメトリーデータを作成・管理するためにデザインされたツールキットです。 重要なことは、OpenTelemetryはベンダーやツールにとらわれないということです。 つまり、JaegerやPrometheusのようなオープンソースツールや、商用製品を含む、さまざまなオブザーバビリティバックエンドで使用できるということです。
OpenTelemetryは、JaegerやPrometheusや他の商用ベンダーのようなオブザーバビリティバックエンドではありません。 OpenTelemetryはテレメトリの生成、収集、管理、そしてエクスポートにフォーカスしています。 OpenTelemetryの主な目的は、あなたのアプリケーションやシステムを、その言語、インフラ、ランタイム環境に関係なく、簡単に計装できるようにすることです。 テレメトリーの保存と可視化は、意図的に他のツールに任せているということを理解するのが重要です。
オブザーバビリティとはなにか
オブザーバビリティとは、システムの出力を調べることによって、システムの内部状態を理解する能力のことです。 ソフトウェアの文脈では、これは、トレース、メトリクス、ログを含むテレメトリーデータを調べることによって、システムの内部状態を理解できることを意味します。
システムをオブザーバビリティがある状態にするには、計装されていなければなりません。 つまり、コードがトレース、メトリクス、またはログを出力しなければなりません。 計装されたデータは、オブザーバビリティバックエンドに送信されなければなりません。
なぜOpenTelemetryなのか
クラウドコンピューティング、マイクロサービスアーキテクチャー、複雑化するビジネス要件の台頭により、ソフトウェアとインフラのオブザーバビリティの必要性はかつてないほど高まっています。
OpenTelemetryは、2つの重要な原則に従いながら、オブザーバビリティの需要を満たしています。
- あなたが生成したデータはあなたのものです。ベンダーのロックインはありません。
- APIと規約は1セットだけ覚えれば良いです。
この2つの原則を組み合わせることで、現代のコンピューティングの世界で必要とされる柔軟性をチームや組織に与えられます。
もっと知りたければ、OpenTelemetryのミッション、ビジョン、バリューを見てください。
OpenTelemetryの主要コンポーネント
OpenTelemetryは以下の主要コンポーネントで構成されています。
- 全コンポーネントの仕様
- テレメトリーデータの形式を定義する標準プロトコル
- 共通のテレメトリーデータ型のための標準の命名スキーマを定義するセマンティック規約
- テレメトリーデータの生成方法を定義するAPI
- 仕様、API、テレメトリーデータのエクスポートを実装する各言語向けSDK
- 共通ライブラリやフレームワークの計装を実装するライブラリエコシステム
- コード変更の必要なくテレメトリーデータを生成する自動計装コンポーネント
- テレメトリーデータの受信、処理、送信のためのプロキシとなるOpenTelemetryコレクター
- OpenTelemetry Operator for Kubernetes、OpenTelemetry Helm Charts、FaaS向けコミュニティアセットといったその他さまざまなツール
OpenTelemetryは、デフォルトでオブザーバビリティを提供するために、OpenTelemetryが統合されたさまざまなライブラリ、サービス、アプリによって使用されています。
OpenTelemetryは多くのベンダーによってサポートされており、その多くはOpenTelemetryの商用サポートを提供し、プロジェクトに直接貢献しています。
拡張性
OpenTelemetryは拡張できるように設計されています。どのように拡張できるかの例をいくつか挙げます。
- OpenTelemetryコレクターにレシーバーを追加して、独自のデータソースからのテレメトリーデータをサポートする
- カスタム計装ライブラリをSDKにロードする
- 特定のユースケースに合わせたSDKまたはコレクターのディストリビューションの作成
- OpenTelemetryプロトコル(OTLP)をまだサポートしていないカスタムバックエンド用の新しいエクスポーターの作成
- 非標準のコンテキスト伝播形式用のカスタムプロパゲーターの作成
ほとんどのユーザーはOpenTelemetryを拡張する必要はないかもしれませんが、このプロジェクトはほぼすべてのレベルで拡張できるように設計されています。
歴史
OpenTelemetryは、Cloud Native Computing Foundation (CNCF)プロジェクトであり、OpenTracingとOpenCensusの2つのプロジェクトが統合された成果物です。 これらのプロジェクトはどちらも、コードを計装し、オブザーバビリティバックエンドにテレメトリーデータを送信する方法の標準がないという問題を解決するために作られました。 どちらのプロジェクトも、独立してこの問題を完全には解決できなかったので、協力するためにOpenTelemetryプロジェクトとして合併し、単一のソリューションを提供しながら、それぞれの強みを組み合わせました。
現在OpenTracingまたはOpenCensusを使っている場合は、移行ガイドでOpenTelemetryへの移行方法を確認してください。
次のステップ
- Getting started — 早速始めてみましょう!
- OpenTelemetryの概念について学ぶ
[i18n] feedback_title
[i18n] feedback_question
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!