OpenTelemetryとは

OpenTelemetryが何であり、何でないかについての簡単な説明。

OpenTelemetryはオブザーバビリティフレームワークであり、トレースメトリクスログのようなテレメトリーデータを作成・管理するためにデザインされたツールキットです。 重要なことは、OpenTelemetryはベンダーやツールにとらわれないということです。 つまり、JaegerPrometheusのようなオープンソースツールや、商用製品を含む、さまざまなオブザーバビリティバックエンドで使用できるということです。

OpenTelemetryは、JaegerやPrometheusや他の商用ベンダーのようなオブザーバビリティバックエンドではありません。 OpenTelemetryはテレメトリの生成、収集、管理、そしてエクスポートにフォーカスしています。 OpenTelemetryの主な目的は、あなたのアプリケーションやシステムを、その言語、インフラ、ランタイム環境に関係なく、簡単に計装できるようにすることです。 テレメトリーの保存と可視化は、意図的に他のツールに任せているということを理解するのが重要です。

オブザーバビリティとはなにか

オブザーバビリティとは、システムの出力を調べることによって、システムの内部状態を理解する能力のことです。 ソフトウェアの文脈では、これは、トレース、メトリクス、ログを含むテレメトリーデータを調べることによって、システムの内部状態を理解できることを意味します。

システムをオブザーバビリティがある状態にするには、計装されていなければなりません。 つまり、コードがトレースメトリクス、またはログを出力しなければなりません。 計装されたデータは、オブザーバビリティバックエンドに送信されなければなりません。

なぜOpenTelemetryなのか

クラウドコンピューティング、マイクロサービスアーキテクチャー、複雑化するビジネス要件の台頭により、ソフトウェアとインフラのオブザーバビリティの必要性はかつてないほど高まっています。

OpenTelemetryは、2つの重要な原則に従いながら、オブザーバビリティの需要を満たしています。

  1. あなたが生成したデータはあなたのものです。ベンダーのロックインはありません。
  2. APIと規約は1セットだけ覚えれば良いです。

この2つの原則を組み合わせることで、現代のコンピューティングの世界で必要とされる柔軟性をチームや組織に与えられます。

もっと知りたければ、OpenTelemetryのミッション、ビジョン、バリューを見てください。

OpenTelemetryの主要コンポーネント

OpenTelemetryは以下の主要コンポーネントで構成されています。

OpenTelemetryは、デフォルトでオブザーバビリティを提供するために、OpenTelemetryが統合されたさまざまなライブラリ、サービス、アプリによって使用されています。

OpenTelemetryは多くのベンダーによってサポートされており、その多くはOpenTelemetryの商用サポートを提供し、プロジェクトに直接貢献しています。

拡張性

OpenTelemetryは拡張できるように設計されています。どのように拡張できるかの例をいくつか挙げます。

  • OpenTelemetryコレクターにレシーバーを追加して、独自のデータソースからのテレメトリーデータをサポートする
  • カスタム計装ライブラリをSDKにロードする
  • 特定のユースケースに合わせたSDKまたはコレクターのディストリビューションの作成
  • OpenTelemetryプロトコル(OTLP)をまだサポートしていないカスタムバックエンド用の新しいエクスポーターの作成
  • 非標準のコンテキスト伝播形式用のカスタムプロパゲーターの作成

ほとんどのユーザーはOpenTelemetryを拡張する必要はないかもしれませんが、このプロジェクトはほぼすべてのレベルで拡張できるように設計されています。

歴史

OpenTelemetryは、Cloud Native Computing Foundation (CNCF)プロジェクトであり、OpenTracingOpenCensusの2つのプロジェクトが統合された成果物です。 これらのプロジェクトはどちらも、コードを計装し、オブザーバビリティバックエンドにテレメトリーデータを送信する方法の標準がないという問題を解決するために作られました。 どちらのプロジェクトも、独立してこの問題を完全には解決できなかったので、協力するためにOpenTelemetryプロジェクトとして合併し、単一のソリューションを提供しながら、それぞれの強みを組み合わせました。

現在OpenTracingまたはOpenCensusを使っている場合は、移行ガイドでOpenTelemetryへの移行方法を確認してください。

次のステップ