OpenTelemetryとは
最終更新
最終更新
このページではOpenTelemetryの概要について記載しています。
OpenTelemetryはメトリクスやログ、トレースの情報を収集・送信するツール郡の総称です。
その中にはSDKやプロトコルも含まれています。
例えば、Vaxilaを使うためには以下を使用します。
SDK (各言語、フレームワーク用にデータを作成する)
Collector (データを外部に送信する。例えばVaxilaへの送信)
OpenTelemetryはアプリケーション内部の情報を収集することができます。
そのため、各言語・フレームワークに合わせたSDKが作成されています。
SDKを使用することで、下図のようにリクエストにどのような操作があったかを把握することができるようになります。
メジャーな言語に向けては公式のものが用意されているほか、有志が作成しているものもあります。 また、フレームワークやCIツールなど個別のニーズにも対応したものもあります。
例えば、以下のフレームワークに対応しています
Ruby On Rails (ruby)
Django (Python)
Gin (Go)
Express (Node.js)
OpenTelemetryに対応しているツールはとても多いため、フレームワークにとどまらず、次のような操作も記録することができます。
発行されたSQL
AWS との通信
キューで処理されたジョブ
下のページから対応しているツールを検索することができます。その数に驚くはずです。
SDKの計装方法は以下のページを参照してください。
Collector (OpenTelemetry Collector) はSDKから送られてきたデータをまとめ、外部に送信するツールです。エージェントやゲートウェイとして利用できます。
Collectorのデータの送信先をVaxilaのエンドポイントに設定することで、データをVaxilaに送信することができます。
Collectorに関する細かい動作は、以下のページが参考になります。
Collectorのインストール方法については以下のページを参考にしてください
Vaxilaを使用する場合、Collectorを使わずに、SDKから直接Vaxilaにデータを送信することができます。
どちらが適しているかは負荷状況や言語によりますが、一般的に以下のトレードオフがあります。
Collectorを経由する:「SDKからCollectorへの非同期通信」&「CollectorからVaxilaへの非同期通信」と送信が二重になるので、安定する
SDKから直接送信する:SDKを使うだけで動くので実装が簡単
Collectorを使用する場合は、以下のページも参照してください。