OpenTelemetryとは

このページではOpenTelemetryの概要について記載しています。

OpenTelemetryについて

OpenTelemetryはメトリクスやログ、トレースの情報を収集・送信するツール郡の総称です。

その中にはSDKやプロトコルも含まれています。

例えば、Vaxilaを使うためには以下を使用します。

  • SDK (各言語、フレームワーク用にデータを作成する)

  • Collector (データを外部に送信する。例えばVaxilaへの送信)

SDKについて

OpenTelemetryはアプリケーション内部の情報を収集することができます。

そのため、各言語・フレームワークに合わせたSDKが作成されています。

SDKを使用することで、下図のようにリクエストにどのような操作があったかを把握することができるようになります。

メジャーな言語に向けては公式のものが用意されているほか、有志が作成しているものもあります。 また、フレームワークやCIツールなど個別のニーズにも対応したものもあります。

例えば、以下のフレームワークに対応しています

OpenTelemetryに対応しているツールはとても多いため、フレームワークにとどまらず、次のような操作も記録することができます。

  • 発行されたSQL

  • AWS との通信

  • キューで処理されたジョブ

下のページから対応しているツールを検索することができます。その数に驚くはずです。

SDKでの計装方法

SDKの計装方法は以下のページを参照してください。

インストール・実装

Collectorについて

Collector (OpenTelemetry Collector) はSDKから送られてきたデータをまとめ、外部に送信するツールです。エージェントやゲートウェイとして利用できます。

Collectorのデータの送信先をVaxilaのエンドポイントに設定することで、データをVaxilaに送信することができます。

Collectorに関する細かい動作は、以下のページが参考になります。

Collectorのインストール方法

Collectorのインストール方法については以下のページを参考にしてください

OpenTelemetry Collector を導入する

Collectorを使うかどうかの判断について

Vaxilaを使用する場合、Collectorを使わずに、SDKから直接Vaxilaにデータを送信することができます。

どちらが適しているかは負荷状況や言語によりますが、一般的に以下のトレードオフがあります。

  • Collectorを経由する:「SDKからCollectorへの非同期通信」&「CollectorからVaxilaへの非同期通信」と送信が二重になるので、安定する

  • SDKから直接送信する:SDKを使うだけで動くので実装が簡単

Collectorを使用する場合は、以下のページも参照してください。

OpenTelemetry Collector を導入する

最終更新