言語SDK
データは通常、OpenTelemetry (OTel) コレクターを介して ClickStack に送信されます。これは、言語 SDK から直接、またはインフラストラクチャメトリックやログを収集するエージェントとして機能する中間の OpenTelemetry コレクターを通じて行われます。
言語 SDK は、アプリケーション内からテレメトリを収集する責任があります。特に、トレースとログを収集し、OTLP エンドポイントを介して OpenTelemetry コレクターにエクスポートし、ClickHouse への取り込みを処理します。
ブラウザベースの環境では、SDK は、ユーザーセッションのリプレイを可能にするために、UI イベント、クリック、ナビゲーションを含むセッションデータを収集する責任もあります。
仕組み
- アプリケーションは ClickStack SDK(例:Node.js、Python、Go)を使用します。これらの SDK は、拡張された機能と使いやすさの向上を備えた OpenTelemetry SDK に基づいています。
- SDK は OTLP(HTTP または gRPC)を介してトレースとログを収集し、エクスポートします。
- OpenTelemetry コレクターはテレメトリを受信し、構成されたエクスポーターを介して ClickHouse に書き込みます。
対応言語
ClickStack は、拡張されたテレメトリと機能を持つ独自の言語 SDK を提供していますが、既存の OpenTelemetry SDK をシームレスに使用することもできます。
| 言語 | 説明 | リンク |
|---|---|---|
| AWS Lambda | AWS Lambda 関数の計測 | ドキュメント |
| ブラウザ | ブラウザベースのアプリケーション用の JavaScript SDK | ドキュメント |
| Elixir | Elixir アプリケーション | ドキュメント |
| Go | Go アプリケーションとマイクロサービス | ドキュメント |
| Java | Java アプリケーション | ドキュメント |
| NestJS | NestJS アプリケーション | ドキュメント |
| Next.js | Next.js アプリケーション | ドキュメント |
| Node.js | サーバーサイドアプリケーション用の JavaScript 実行環境 | ドキュメント |
| Deno | Deno アプリケーション | ドキュメント |
| Python | Python アプリケーションとウェブサービス | ドキュメント |
| React Native | React Native モバイルアプリケーション | ドキュメント |
| Ruby | Ruby on Rails アプリケーションとウェブサービス | ドキュメント |
API キーによるセキュリティ
OTel コレクターを介して ClickStack にデータを送信するには、SDK で取り込み API キーを指定する必要があります。これは、SDK の init 関数を使用するか、OTEL_EXPORTER_OTLP_HEADERS 環境変数を設定することで行うことができます。
この API キーは HyperDX アプリケーションによって生成され、Team Settings → API Keys のアプリ内で利用可能です。
ほとんどの 言語 SDK や OpenTelemetry をサポートするテレメトリライブラリでは、アプリケーション内で OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定するか、SDK の初期化時に指定するだけで済みます。
Kubernetes との統合
すべての SDK は、Kubernetes 環境で実行されているときに Kubernetes メタデータ(ポッド名、ネームスペースなど)との自動関連付けをサポートしています。これにより、次のことが可能になります。
- サービスに関連するポッドとノードの Kubernetes メトリックを表示する
- アプリケーションのログとトレースをインフラストラクチャメトリックと関連付ける
- Kubernetes クラスター全体のリソース使用量とパフォーマンスを追跡する
この機能を有効にするには、OpenTelemetry コレクターを構成してリソースタグをポッドに転送する必要があります。詳細な設定手順については、Kubernetes 統合ガイドを参照してください。