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にある自身のスキーマファイルを読み込む。
- バックエンドは、自身のスキーマファイルに応じてテレメトリーをストレージに保管する。
- バックエンドのダッシュボードは、自身のスキーマファイルに応じてストレージからテレメトリーを取得する。