通常、データは OpenTelemetry (OTel) collector を介して ClickStack に送信されます。送信元は言語 SDKs から直接の場合もあれば、エージェントとして動作する中間の OpenTelemetry collector (たとえばインフラストラクチャのメトリクスやログを収集するもの) を経由する場合もあります。
言語 SDKs は、アプリケーション内部からテレメトリー、特に トレース と ログ を収集し、このデータを OTLP エンドポイント経由で OpenTelemetry collector にエクスポートする役割を担います。OpenTelemetry collector は、そこから ClickHouse へのインジェストを処理します。
ブラウザベースの環境では、SDKs が セッションデータ (UI イベント、クリック、ナビゲーションなど) の収集も担い、ユーザーセッションのリプレイを可能にすることもあります。
- アプリケーションは ClickStack SDK (例: Node.js、Python、Go) を使用します。これらの SDK は OpenTelemetry SDKs をベースにしており、追加機能と使いやすさの改善が加えられています。
- SDK は OTLP (HTTP または gRPC) 経由でトレースとログを収集し、エクスポートします。
- OpenTelemetry collector はテレメトリーを受信し、設定されたエクスポーターを通じて ClickHouse に書き込みます。
OpenTelemetry 互換性ClickStack は、より充実したテレメトリーと機能を備えた独自の言語 SDK を提供していますが、既存の OpenTelemetry SDK もそのままシームレスに利用できます。
:::Not required for Managed ClickStack
Managed ClickStack では API key は必要ありません。
:::
OTel collector 経由で ClickStack にデータを送信するには、SDK でインジェスト API key を指定する必要があります。これは、SDK の init 関数または OTEL_EXPORTER_OTLP_HEADERS 環境変数で設定できます。
このAPI keyは ClickStack UI (HyperDX) アプリケーションによって生成され、アプリの Team Settings → API Keys から確認できます。
OpenTelemetry をサポートするほとんどの 言語 SDKs やテレメトリーライブラリでは、アプリケーションで OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定するか、SDK の初期化時に指定するだけで済みます。
すべての SDK は、Kubernetes 環境で実行されている場合、Kubernetes のメタデータ (ポッド名、ネームスペース など) との自動相関をサポートしています。これにより、次のことが可能になります。
- サービスに関連付けられたポッドやノードの Kubernetes メトリクスを表示する
- アプリケーションのログやトレースをインフラストラクチャのメトリクスと相関付ける
- Kubernetes クラスター全体にわたってリソース使用量とパフォーマンスを追跡する
この機能を有効にするには、resource タグをポッドに転送するよう OpenTelemetry Collector を設定します。詳しい設定手順については、Kubernetes インテグレーションガイド を参照してください。