要点このガイドでは、HyperDX Chrome拡張機能を使用して、任意のWebサイトに ClickStack Browser SDK を注入する方法を説明します。対象アプリケーションのソースコードを変更する必要はありません。拡張機能を一度設定すれば、あとはサイトを閲覧するだけで、ClickStack でセッションリプレイを確認できます。所要時間: 10〜15分
概要
chrome-extension:// スクリプト挿入を試み、CSP によって拡張機能由来のスクリプトがブロックされた場合は、インライン挿入にフォールバックします。
制御可能なデモアプリケーションをインストルメントする Session Replay Demo とは異なり、この方法は Chrome で開いた 任意の URL で機能します。通常のユーザーとしてサイトを操作することで、セッションデータを生成できます。
セッションリプレイの背景や、ClickStack における位置づけについては、Session Replay 機能ページを参照してください。
前提条件
- Google Chrome または Chromium ベースのブラウザー (Edge、Brave など)
- ClickStack をローカルで実行する場合は、Docker がインストールされていること
- ポート 4317、4318、8080 が使用可能であること (ローカルの ClickStack 用)
デモを実行する
拡張機能のリポジトリをクローンする
拡張機能をインストールする
- Chrome を開き、
chrome://extensionsにアクセスします。 - デベロッパー モード を有効にします (右上) 。
- パッケージ化されていない拡張機能を読み込む をクリックします。
- クローンした
hyperdx-chrome-extensionディレクトリを選択します。
ClickStack を起動する
すでに ClickStack または HyperDX のインジェスト エンドポイントがある場合は、拡張機能を設定する に進んでください。ローカルの ClickStack 環境では、OpenTelemetry Collector を起動します。{{CLICKHOUSE_ENDPOINT}} と {{CLICKHOUSE_PASSWORD}} は ClickHouse の接続情報に置き換えてください。API key を取得する
ローカルの ClickStack では、API key が不要な場合があります。http://localhost:4318 上のセルフホスト collector にテレメトリーを送信する場合は、拡張機能のこのフィールドを空のままにしてください。ClickStack Cloud または HyperDX Cloud へインジェストする場合は、HyperDX を開いて Team Settings → API Keys に移動し、Ingestion API Key をコピーします。拡張機能を設定する
Chrome のツールバーにある HyperDX Browser Extension アイコンをクリックし、各設定を入力します。| Field | ローカル ClickStack の例 | 注記 |
|---|---|---|
| Enable HyperDX Monitoring | On | 挿入全体を切り替えるマスタートグル |
| Service Name | my-frontend-app | 必須 — ClickStack 上でサービスを識別します |
| API Key | (空) | Cloud へのインジェストでは必須。一部のセルフホスト構成では任意 |
| Collector URL | http://localhost:4318 | OTLP HTTP エンドポイント。Cloud のデフォルトは https://in-otel.hyperdx.io |
| Environment | development | 任意 — deployment.environment resource attribute を設定します |
| Trace Propagation Targets | /api\.myapp\.domain/i, /localhost/i | 任意 — トレースヘッダー伝播用の JavaScript 正規表現パターンをカンマ区切りで指定します |
| Only inject on matching URLs | Off | インストルメントするサイトを限定する場合に有効化 |
| Capture console logs | Off | ブラウザーのコンソール出力を転送する場合に有効化 |
| Advanced network capture | Off | 詳細なネットワークリクエストをキャプチャする場合に有効化 |
http://localhost:4318 を指し、トレース伝播は API と localhost の URL に限定されています。サイトを閲覧してセッションを生成する
Chrome で任意の Web サイトまたはローカルアプリケーションを開きます。たとえば、フロントエンドの開発サーバーなら http://localhost:3000 です。通常どおりにページを操作します。リンクをクリックし、フォームを送信し、エラーをトリガーし、ビュー間を移動します。設定が正しければ、拡張機能はページの読み込みごとに Browser SDK を自動的にインジェクトします。セッションリプレイを表示する
http://localhost:8080 の HyperDX に戻り、左側のサイドバーから Client Sessions に移動します。セッションが継続時間とイベント数とともに一覧表示されるはずです。▶️ ボタンをクリックしてリプレイします。タイムラインの詳細レベルを調整するには、Highlighted モードと All Events モードを切り替えます。URL フィルタリング
| Pattern | Matches |
|---|---|
http://homedepot.com/* | homedepot.com で HTTP のみ |
*://homedepot.com/* | homedepot.com で HTTP と HTTPS |
*://*.homedepot.com/* | www.homedepot.com などのサブドメイン |
https://localhost:3000/* | ポート 3000 のローカル開発サーバー |
挿入を確認する
トラブルシューティング
HyperDX にセッションが表示されない
HyperDX にセッションが表示されない
- ブラウザーのコンソールで
[HyperDX Extension]のログメッセージやエラーを確認します - Enable HyperDX Monitoring がオンになっていて、Service Name が設定されていることを確認します
- ClickStack が実行中で、collector の URL が正しいことを確認します (例:
http://localhost:4318) - Client Sessions ビューで時間範囲を調整します (Last 15 minutes を試してください)
- ブラウザーを強制再読み込みします:
Cmd+Shift+R(Mac) またはCtrl+Shift+R(Windows/Linux)
chrome-extension://invalid/ エラー
chrome-extension://invalid/ エラー
chrome://extensions で拡張機能を再読み込みしてから、タブを強制再読み込みします。これは、タブを開いたまま拡張機能が更新または再読み込みされた場合に発生します。サイトで挿入されない
サイトで挿入されない
- 監視が有効になっていて、サービス名が設定されていることを確認します
- Only inject on matching URLs がオンの場合は、現在のページ URL がいずれかのパターンに一致していることを確認します
- 一部のサイトでは、CSP によって拡張機能由来のスクリプトとインラインスクリプトの両方の挿入がブロックされるため、そのページではインジェクトできない場合があります
HyperDX: コンソールで apiKey が見つからない
HyperDX: コンソールで apiKey が見つからない
API key フィールドが空の場合は想定どおりの動作です。Cloud エンドポイントを使う場合は HyperDX で発行したインジェスト API key を追加してください。セルフホストの collector が認証なしのローカルトラフィックを受け入れる場合は、無視して構いません。
プライバシー
詳細はこちら
- Session Replay — 機能概要、SDK オプション、プライバシー制御
- Browser SDK リファレンス — すべての SDK オプションと高度な設定
- Session Replay Demo — デモアプリケーションをソースコードからインストルメントする
- ClickStack はじめに — ClickStack をデプロイし、最初のデータを取り込む
- GitHub 上の HyperDX Chrome拡張機能 — ソースコードと issue トラッカー