コンテンツにスキップ

OpenTelemetry@テレメトリー収集ツール

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. OpenTelemetryの仕組み

アーキテクチャ

OpenTelemetryは、テレメトリーソース (例:サードパーティパッケージ、otelクライアントパッケージなど) 、テレメトリーサブスクライバー (例:OpenTelemetry Collectorなど) といったコンポーネントから構成されている。

OpenTelemetryを導入することにより、テレメトリーごとに異なるインスツルメント化ツール (テレメトリーを収集できる状態にするツール) を使用せずに、一括してインスツルメント化できるようになる。

open-telemetry_architecture


02. テレメトリーソース

サードパーティパッケージ

サードパーティパッケージは、otelクライアントパッケージの1個であるAPIパッケージをコールし、テレメトリーデータを作成する。


otelクライアントパッケージ

otelクライアントパッケージは、APIパッケージ、SDKパッケージ、セマンティック変換パッケージ、プラグイン、といったコンポーネントから構成されている。

アプリケーションをインスツルメント化する。

otelクライアントパッケージは、テレメトリーデータをAPIパッケージから受け取り、バックエンドやプロキシ (例:OpenTelemetry Collector、Grafana Alloy)にこれを渡す。

もし、サービスメッシュツール (例:Istio、Linkerdなど) のサイドカーモデルとOpenTelemetryの両方を採用する場合、otelクライアントパッケージの代わりにサイドカーを使用することになるため、otelクライアントパッケージは不要になる。

open-telemetry_client-package


03. テレメトリースキーマ

テレメトリースキーマとは

テレメトリーの構造やデータ型を定義したもの。

コンポーネント (テレメトリーソース、テレメトリーサブスクライバー) 間でテレメトリーを変換できる。


仕組み

以下の仕組みでスキーマファイルを使用し、テレメトリーを収集できる。

それぞれのテレメトリーファイルのバージョンが異なっていても、それぞれのコンポーネントがテレメトリーを互換的に処理する。

  1. テレメトリーソースは、スキーマURLにある自身のスキーマファイルを読み込む。
  2. テレメトリーソースは、自身のスキーマファイルに応じてテレメトリーを作成する。
  3. テレメトリーソースは、テレメトリーをバックエンドに送信する。
  4. バックエンドは、スキーマURLにある自身のスキーマファイルを読み込む。
  5. バックエンドは、自身のスキーマファイルに応じてテレメトリーをストレージに保管する。
  6. バックエンドのダッシュボードは、自身のスキーマファイルに応じてストレージからテレメトリーを取得する。

open-telemetry_schema