アプリケーションをインストルメントする
@hyperdx/browser) が必要です。これは、セッション記録、コンソールキャプチャ、ネットワークリクエストのキャプチャ機能を OpenTelemetry SDK に拡張したものです。セッションリプレイが不要でトレースだけが必要な場合は、OTel 互換の任意のブラウザ SDK を ClickStack で利用できます。
以下の例では ClickStack Browser SDK を使用します。アプリケーションにセッションリプレイを追加するには、パッケージをインストールし、SDK を初期化するだけで完了します。あとは、すべてのユーザー操作が自動的にキャプチャされるため、追加のコード変更は不要です。
- NPM
- Yarn
- スクリプトタグ
tracePropagationTargets オプションは、セッションリプレイをバックエンドのトレースと関連付けるうえで重要です。これを API ドメインに設定すると、フロントエンドからバックエンドまでの完全な分散トレーシングを有効にできます。プライバシー制御、custom actions、React エラーバウンダリ、ソースマップなどを含む SDK オプションの一覧については、Browser SDK reference を参照してください。セッションリプレイの表示
セッションからトレースへ
tracePropagationTargets 設定が traceparent ヘッダーを介してブラウザのスパンとサーバーのスパンを関連付け、ユーザーのクリックからデータベースに至るまで一貫した分散トレースを構築するためです。フロントエンドとバックエンドの両方をインストルメントする方法を含め、実際の手順を詳しく知りたい場合は、Instrumenting your NextJS application with OpenTelemetry and ClickStackを参照してください。

トレースからセッションへ
セッションデータの保存方法
hyperdx_sessions テーブルに保存されます。各セッションイベントは 1 行として保存され、イベントのペイロードを含む Body フィールドと、イベントのメタデータを格納する LogAttributes マップを持ちます。Body と LogAttributes の両カラムには、リプレイの再構築に使用される実際のセッションイベントの詳細が格納されます。
テーブルスキーマの詳細については、ClickStack で使用されるテーブルとスキーマ を参照してください。
試してみる
- ライブデモ — clickpy.clickhouse.com にアクセスしてアプリを操作し、その後 play-clickstack.clickhouse.com の ClickPy Sessions ログソースで自分のセッションリプレイを確認します。ClickPy をどのようにインストルメントしたかの詳細については、ブログ記事 Instrumenting your NextJS application with OpenTelemetry and ClickStack を参照してください。
- ローカルデモ — Session replay demo では、ClickStack をローカルで実行し、リプレイを表示するところまで含めて、デモアプリケーションを段階的にインストルメントする手順を説明しています。
さらに詳しく
- Session replay demo — ステップごとの手順を備えた、対話型のローカルデモアプリケーション
- Browser SDK Reference — SDK の全オプション、source maps、custom actions、高度な設定
- Search — セッションやイベントを絞り込むための検索構文
- Dashboards — セッションデータやトレースデータから可視化やダッシュボードを作成
- Alerts — エラー、レイテンシ、その他のシグナルに対するアラートを設定
- ClickStack Architecture — ClickHouse、HyperDX、OTel collector がどのように連携するか