OpenTelemetry@監視ツール¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. OpenTelemetryの仕組み¶
アーキテクチャ¶
OpenTelemetry は、テレメトリーソース (例:サードパーティパッケージ、otel クライアントパッケージなど) 、テレメトリーサブスクライバー (例:OpenTelemetry Collector など) といったコンポーネントから構成されている。
OpenTelemetry を導入することにより、テレメトリーごとに異なるインスツルメント化ツール (テレメトリーを収集できる状態にするツール) を使用せずに、一括してインスツルメント化できるようになる。

02. テレメトリーソース¶
サードパーティパッケージ¶
サードパーティパッケージは、otel クライアントパッケージの 1 個である API パッケージをコールし、テレメトリーデータを作成する。
otelクライアントパッケージ¶
otel クライアントパッケージは、API パッケージ、SDK パッケージ、セマンティック変換パッケージ、プラグイン、といったコンポーネントから構成されている。
アプリケーションをインスツルメント化する。
otel クライアントパッケージは、テレメトリーデータを API パッケージから受け取り、バックエンドやプロキシ (例:OpenTelemetry Collector、Grafana Alloy)にこれを渡す。
もし、サービスメッシュツール (例:Istio、Linkerd など) のサイドカーモデルと OpenTelemetry の両方を採用する場合、otel クライアントパッケージの代わりにサイドカーを使用することになるため、otel クライアントパッケージは不要になる。

03. テレメトリースキーマ¶
テレメトリースキーマとは¶
テレメトリーの構造やデータ型を定義したもの。
コンポーネント (テレメトリーソース、テレメトリーサブスクライバー) 間でテレメトリーを変換できる。
仕組み¶
以下の仕組みでスキーマファイルを使用し、テレメトリーを収集できる。
それぞれのテレメトリーファイルのバージョンが異なっていても、それぞれのコンポーネントがテレメトリーを互換的に処理する。
- テレメトリーソースは、スキーマ URL にある自身のスキーマファイルを読み込む。
- テレメトリーソースは、自身のスキーマファイルに応じてテレメトリーを作成する。
- テレメトリーソースは、テレメトリーをバックエンドに送信する。
- バックエンドは、スキーマ URL にある自身のスキーマファイルを読み込む。
- バックエンドは、自身のスキーマファイルに応じてテレメトリーをストレージに保管する。
- バックエンドのダッシュボードは、自身のスキーマファイルに応じてストレージからテレメトリーを取得する。
