Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

言語 SDKs

通常、データは OpenTelemetry (OTel) collector を介して ClickStack に送信されます。送信元は言語 SDKs から直接の場合もあれば、エージェントとして動作する中間の OpenTelemetry collector (たとえばインフラストラクチャのメトリクスやログを収集するもの) を経由する場合もあります。

言語 SDKs は、アプリケーション内部からテレメトリー、特に トレースログ を収集し、このデータを OTLP エンドポイント経由で OpenTelemetry collector にエクスポートする役割を担います。OpenTelemetry collector は、そこから ClickHouse へのインジェストを処理します。

ブラウザベースの環境では、SDKs が セッションデータ (UI イベント、クリック、ナビゲーションなど) の収集も担い、ユーザーセッションのリプレイを可能にすることもあります。

動作の仕組み

  1. アプリケーションは ClickStack SDK (例: Node.js、Python、Go) を使用します。これらの SDK は OpenTelemetry SDKs をベースにしており、追加機能と使いやすさの改善が加えられています。
  2. SDK は OTLP (HTTP または gRPC) 経由でトレースとログを収集し、エクスポートします。
  3. OpenTelemetry collector はテレメトリーを受信し、設定されたエクスポーターを通じて ClickHouse に書き込みます。

対応言語


言語 説明 リンク
AWS Lambda AWS Lambda 関数をインストルメントする ドキュメント
Browser ブラウザベースのアプリケーション向け JavaScript SDK ドキュメント
Elixir Elixir アプリケーション ドキュメント
Go Go アプリケーションとマイクロサービス ドキュメント
Java Java アプリケーション ドキュメント
NestJS NestJS アプリケーション ドキュメント
Next.js Next.js アプリケーション ドキュメント
Node.js サーバーサイドアプリケーション向け JavaScript ランタイム ドキュメント
Deno Deno アプリケーション ドキュメント
Python Python アプリケーションと Web サービス ドキュメント
React Native React Native モバイルアプリケーション ドキュメント
Ruby Ruby on Rails アプリケーションと Web サービス ドキュメント

API key による保護

OTel collector 経由で ClickStack にデータを送信するには、SDK でインジェスト API key を指定する必要があります。これは、SDK の init 関数または OTEL_EXPORTER_OTLP_HEADERS 環境変数で設定できます。

OTEL_EXPORTER_OTLP_HEADERS='authorization=<YOUR_INGESTION_API_KEY>'

このAPI keyは ClickStack UI (HyperDX) アプリケーションによって生成され、アプリの Team Settings → API Keys から確認できます。

OpenTelemetry をサポートするほとんどの 言語 SDKs やテレメトリーライブラリでは、アプリケーションで OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定するか、SDK の初期化時に指定するだけで済みます。

export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

Kubernetes インテグレーション

すべての SDK は、Kubernetes 環境で実行されている場合、Kubernetes のメタデータ (ポッド名、ネームスペース など) との自動相関をサポートしています。これにより、次のことが可能になります。

  • サービスに関連付けられたポッドやノードの Kubernetes メトリクスを表示する
  • アプリケーションのログやトレースをインフラストラクチャのメトリクスと相関付ける
  • Kubernetes クラスター全体にわたってリソース使用量とパフォーマンスを追跡する

この機能を有効にするには、resource タグをポッドに転送するよう OpenTelemetry Collector を設定します。詳しい設定手順については、Kubernetes インテグレーションガイド を参照してください。

Navigation