コンテンツにスキップ

Web アプリケーションの導入


このページの設定を完了すると、Browser RUM SDK はページの View、リソースリクエスト、フロントエンドエラー、ユーザー操作を自動的に収集し、Guance にデータを送信します。

導入経路の選択

まずアプリケーションの形態に応じて導入口を選択します。View の重複設定や、サーバーサイドレンダリングの段階でブラウザ API にアクセスすることを避けられます。

アプリケーション形態 推奨導入口 説明
Webpack、Vite、Rollup などのビルドツールを使用する NPM での導入 バージョン管理がしやすく、必要な機能だけを組み込める推奨方法です。
フロントエンドのビルドフローがない CDN 非同期読み込み ページの解析をブロックしませんが、初期化前のリクエストとエラーを捕捉できない可能性があります。
ページの最も初期段階のエラーとリクエストを収集する必要がある CDN 同期読み込み 早期に初期化できますが、ページの読み込み時間を消費します。
基本的な RUM のみが必要で、フロントエンドのバンドルサイズを重視する 軽量版 RUM SDK 通常の RUM 収集を維持しつつ、Session Replay と送信データの圧縮を含みません。
React、Vue、Angular のシングルページアプリケーション フロントエンドフレームワークプラグインの導入 Router の View とフレームワークエラーを自動管理します。
Next.js、Nuxt SSR フレームワークでの導入 サーバーサイドとブラウザ環境を区別し、View の重複を回避します。
Electron Electron アプリでの導入 renderer process でのみ初期化します。

導入情報の準備

  1. 「RUM > アプリ一覧 > アプリを作成 > Web」に移動します。
  2. アプリを作成し、コンソールで生成された applicationId、env、version などの設定を取得します。
  3. データ送信方法を選択します:

  4. パブリック OpenWay:site と clientToken を取得します。DataKit のデプロイは不要です。

  5. DataKit 直結:datakitOrigin を準備します。DataKit で RUM コレクター を有効にし、パブリックネットワークからアクセス可能で、IP 地理情報データベースがインストールされた状態 に設定する必要があります。
2 つの送信方法を同時に設定しないでください

パブリック OpenWay では site と clientToken を使用します。DataKit 直結では datakitOrigin を使用します。現在の導入方法に必要なフィールドのみを設定してください。

送信方法

{
  applicationId: "<APPLICATION_ID>",
  datakitOrigin: "<DATAKIT_ORIGIN>"
}

{
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>"
}

SDK の導入

導入方法
説明
NPM での導入 SDK コードをフロントエンドプロジェクトにバンドルし、バージョンを固定しやすくします。SDK 初期化前のリクエストやエラーを捕捉できない可能性があります。
CDN 非同期読み込み CDN で SDK スクリプトを非同期に読み込むため、ページの読み込みパフォーマンスに影響しません。初期化前のリクエストやエラー収集を逃す可能性があります。
CDN 同期読み込み CDN で SDK スクリプトを同期読み込みするため、すべてのエラーとパフォーマンス指標を完全に収集できます。ただし、ページの読み込みパフォーマンスに影響する可能性があります。

NPM での導入

フロントエンドプロジェクトに SDK をインストールして読み込みます:

npm install @cloudcare/browser-rum @cloudcare/browser-core

プロジェクトで SDK を初期化します:

import { datafluxRum } from "@cloudcare/browser-rum"

datafluxRum.init({
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>",
  service: "web-app",
  env: "production",
  version: "1.0.0",
  sessionSampleRate: 100,
  trackUserInteractions: true
})

CDN 同期読み込み

HTML ファイルにスクリプトを追加します:

<script
  src="https://static.guance.com/browser-sdk/v3/dataflux-rum.js"
  type="text/javascript"
></script>
<script>
  window.DATAFLUX_RUM &&
    window.DATAFLUX_RUM.init({
      applicationId: "<APPLICATION_ID>",
      site: "<PUBLIC_OPENWAY_URL>",
      clientToken: "<CLIENT_TOKEN>",
      service: "web-app",
      env: "production",
      version: "1.0.0",
      sessionSampleRate: 100,
      trackUserInteractions: true
    })
</script>

CDN 非同期読み込み

HTML ファイルにスクリプトを追加します:

<script>
  ;(function (h, o, u, n, d) {
    h = h[d] = h[d] || {
      q: [],
      onReady: function (c) {
        h.q.push(c)
      },
    }
    d = o.createElement(u)
    d.async = 1
    d.src = n
    n = o.getElementsByTagName(u)[0]
    n.parentNode.insertBefore(d, n)
  })(
    window,
    document,
    "script",
    "https://static.guance.com/browser-sdk/v3/dataflux-rum.js",
    "DATAFLUX_RUM"
  )
  DATAFLUX_RUM.onReady(function () {
    DATAFLUX_RUM.init({
      applicationId: "<APPLICATION_ID>",
      site: "<PUBLIC_OPENWAY_URL>",
      clientToken: "<CLIENT_TOKEN>",
      service: "web-app",
      env: "production",
      version: "1.0.0",
      sessionSampleRate: 100,
      trackUserInteractions: true
    })
  })
</script>

上記の例はパブリック OpenWay を使用しています。DataKit 直結を使用する場合は、site と clientToken を削除し、代わりに datakitOrigin を設定してください。

軽量版 RUM SDK

RUM SDK 3.3.3 から軽量版が利用できます。軽量版はフル版と同じ初期化方法に対応し、View、Resource、Long Task、Error、Action、ユーザーとグローバル Context、カスタムイベント、分散型トレーシングなどの通常の RUM 機能をサポートします。ページ録画が不要で、フロントエンドのバンドルサイズを抑えたいアプリケーションに適しています。

NPM での導入

通常の RUM パッケージを同じバージョンの軽量パッケージに置き換えます:

npm install @cloudcare/browser-rum-slim @cloudcare/browser-core
import { datafluxRum } from "@cloudcare/browser-rum-slim"

datafluxRum.init({
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>",
  service: "web-app",
  env: "production",
  version: "1.0.0",
  sessionSampleRate: 100,
  trackUserInteractions: true
})

CDN での導入

同期読み込み・非同期読み込みの方法はフル版と同じです。スクリプトファイル名を軽量版の対応ファイルに置き換えるだけです。以下は同期読み込みの例です:

<script
  src="https://static.guance.com/browser-sdk/v3/dataflux-rum-slim.js"
  type="text/javascript"
></script>
<script>
  window.DATAFLUX_RUM &&
    window.DATAFLUX_RUM.init({
      applicationId: "<APPLICATION_ID>",
      site: "<PUBLIC_OPENWAY_URL>",
      clientToken: "<CLIENT_TOKEN>",
      service: "web-app",
      env: "production",
      version: "1.0.0",
      sessionSampleRate: 100,
      trackUserInteractions: true
    })
</script>

フル版との機能の違い

軽量版には以下の機能は含まれません:

  • Session Replay、および startSessionReplayRecording()、stopSessionReplayRecording()、isRecording() などの録画 API。
  • Canvas 2D、WebGL/WebGL2 の録画、および snapshotCanvas() などの Canvas API。
  • compressIntakeRequests による送信データの圧縮と、対応する Worker。

軽量版では、sessionReplaySampleRate、sessionReplayOnErrorSampleRate、replayCanvasEnabled は強制的に無効になり、compressIntakeRequests は強制的に false になります。導入時はこれらの設定を渡さないでください。また、workerUrl や replayCanvasWorkerUrl を設定する必要もありません。後でセッションリプレイ、Canvas 録画、圧縮送信が必要になった場合は、NPM パッケージまたは CDN ファイルをフル版に戻してください。他の基本初期化パラメータはそのまま使用できます。

導入の確認

  1. SDK を導入したページを開き、ページ遷移、ボタンクリック、API リクエストをそれぞれ 1 回実行します。
  2. ブラウザの開発者ツールの Network で /v1/write/rum をフィルタリングし、成功した送信リクエストが存在することを確認します。
  3. Console で、Application ID is not configured、datakitOrigin or site is not configured などの初期化エラーがないことを確認します。
  4. 「RUM > アプリ一覧」に移動し、該当する Web アプリを開いて、エクスプローラーで service、env、version をフィルタリングし、View、Resource、Action のデータが存在することを確認します。
View データが確認できれば基本導入は成功です

Error、Resource、Action は、ページで対応するイベントが実際に発生した後にのみ表示されます。データがない場合は、まず現在の Session が sessionSampleRate に該当しているかを確認し、その後 FAQ を参照してください。

よく使うオプション設定

基本データの確認ができたら、必要に応じて他の機能を有効にします:

目的 設定または API ドキュメント
フロントエンドとバックエンドのトレーシング連携 allowedTracingUrls、traceType 分散型トレーシング設定
匿名訪問者ごとに API リクエスト頻度を制限する visitorId、resetVisitorId() 訪問者 ID(Visitor ID)
収集比率を制御する sessionSampleRate、startSession() サンプリング設定
セッションリプレイを有効にする startSessionReplayRecording() Web セッションリプレイ
SPA Router の View を自動管理する plugins フロントエンドフレームワークプラグインの導入
WebGL/WebGL2 を録画する plugins、Canvas 自動録画 Canvas 録画マニュアル
ログインユーザーを識別する setUser() カスタムユーザー ID
ビジネスフィールドやイベントを追加する Global Context、addAction()、addError() カスタムデータとイベント

分散型トレーシング設定(オプション)

NPM + TypeScript で導入する場合、traceType には、対応するブランドの browser-core パッケージからインポートした TraceType 列挙型を使用する必要があります:

import { TraceType } from "@cloudcare/browser-core"
import { datafluxRum } from "@cloudcare/browser-rum"

datafluxRum.init({
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>",
  allowedTracingUrls: ["https://api.example.com"],
  traceType: TraceType.DDTRACE
})

TraceType.DDTRACE のランタイム値は引き続き "ddtrace" です。CDN 導入にはモジュールのインポートがなく、明示的に設定する場合は対応するランタイム文字列を使用します。分散型トレーシングを有効にした後は、API サーバー側で対応する Trace Header を許可する必要もあります。詳細は APM と RUM の関連付け を参照してください。

通常の Session がサンプリングに該当しない場合でも、Trace Header をバックエンドに渡す必要がある場合は、allowTraceHeaderWithoutSession を明示的に有効にできます:

datafluxRum.init({
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>",
  sessionSampleRate: 0,
  sessionOnErrorSampleRate: 0,
  allowedTracingUrls: ["https://api.example.com"],
  allowTraceHeaderWithoutSession: true
})

有効にすると、SDK は allowedTracingUrls に一致する XHR と Fetch リクエストにのみ Trace Header を挿入します。この設定は RUM Session を作成したり強制有効化したりせず、サンプリングされなかった Session の View、Error、Resource、Action データも送信しません。API サービスは、選択した traceType に対応するリクエストヘッダーを引き続き許可する必要があります。また、クロスオリジンリクエストでは CORS を正しく設定する必要があります。

パラメータ設定

初期化パラメータ

パラメータ
型
必須
デフォルト値
説明
applicationId String 必須 Guance で作成したアプリ ID。
datakitOrigin String DataKit 直結時 DataKit のデータ送信アドレス。形式は プロトコル(:// を含む)+ ドメイン名または IP + 任意のポート です。例:https://datakit.example.com。
clientToken String パブリック OpenWay 時 パブリック OpenWay のデータ送信トークン。Guance コンソールから取得します。
site String パブリック OpenWay 時 パブリック OpenWay のデータ送信アドレス。Guance コンソールから取得します。
env String 任意 Web アプリの現在の環境。例:prod:本番環境、gray:カナリア環境、pre:ステージング環境、common:日常環境、local:ローカル環境。
version String 任意 Web アプリのバージョン番号。
service String 任意 現在のアプリのサービス名。デフォルトは browser で、カスタム設定に対応しています。
sessionSampleRate Number 任意 100 メトリクスデータ収集の割合:
100 は全収集、0 は収集しないことを示します。
sessionOnErrorSampleRate Number 任意 0 エラーセッション補償サンプリング率:セッションが sessionSampleRate によってサンプリングされていない場合、セッション中にエラーが発生したときにこの割合で収集します。このようなセッションは、エラー発生時にイベントの記録を開始し、セッション終了まで記録を続けます。SDK バージョンは >= 3.2.19 が必要です。
sessionReplaySampleRate Number 任意 100 Session Replay のデータ収集割合:
100 は全収集、0 は収集しないことを示します。
sessionReplayOnErrorSampleRate Number 任意 0 Session Replay のエラーセッションリプレイ補償サンプリング率:セッションが sessionReplaySampleRate によってサンプリングされていない場合、セッション中にエラーが発生したときにこの割合で収集します。このようなリプレイは、エラー発生から最大 1 分前のイベントを記録し、セッション終了まで記録を続けます。SDK バージョンは >= 3.2.19 が必要です。
trackSessionAcrossSubdomains Boolean 任意 false 同じドメイン配下のサブドメイン間でキャッシュを共有します。
usePartitionedCrossSiteSessionCookie Boolean 任意 false パーティション化された安全なクロスサイトセッション Cookie を有効にするかどうか。詳細
useSecureSessionCookie Boolean 任意 false 安全なセッション Cookie を使用します。これにより、安全でない(非 HTTPS)接続で送信される RUM イベントは無効になります。
traceType TraceType 任意 TraceType.DDTRACE(ランタイム値は ddtrace) 分散型トレーシングツールの種類を設定します。NPM 導入では TraceType 列挙型を使用し、CDN 導入では対応するランタイム文字列を使用します。現在対応しているのは DDTRACE(ddtrace)、ZIPKIN_MULTI_HEADER(zipkin)、ZIPKIN_SINGLE_HEADER(zipkin_single_header)、W3C_TRACEPARENT(w3c_traceparent)、W3C_TRACEPARENT_64(w3c_traceparent_64bit)、SKYWALKING_V3(skywalking_v3)、JAEGER(jaeger)です。

❗️
1. OpenTelemetry は zipkin_single_header、w3c_traceparent、zipkin、jaeger の 4 種類に対応しています。
2. この設定を有効にするには allowedTracingUrls の設定が必要です。
3. 対応する種類を設定する場合は、API サービスに合わせて Access-Control-Allow-Headers を設定する必要があります。詳細は APM と RUM の関連付け を参照してください。
traceId128Bit Boolean 任意 false traceID を 128 ビットモードで生成するかどうか。traceType に対応し、現在は zipkin、jaeger をサポートしています。
allowedTracingUrls Array 任意 [] Trace Header の挿入を許可するリクエスト URL のマッチングリスト。配列の要素には、完全な URL、正規表現、マッチング関数、または match と traceType を含むオブジェクトを指定できます。例:["https://api.example.com/xxx", /https:\/\/.*\.my-api-domain\.com\/xxx/, (url) => url.includes("/api/")]。
allowTraceHeaderWithoutSession Boolean 任意 false 現在の RUM Session がサンプリングに該当しない場合でも、allowedTracingUrls に一致する XHR および Fetch リクエストに Trace Header を挿入するかどうか。有効にしても Session は作成されず、サンプリングされなかった Session の RUM データも送信されません。
allowedTracingOrigins Array 任意 [] 非推奨です。旧バージョンの設定との互換性のためにのみ保持されています。新規導入では allowedTracingUrls を使用してください。両方が設定されている場合、allowedTracingUrls がこの設定を上書きします。
trackUserInteractions Boolean 任意 false ユーザー操作の収集を有効にするかどうか。
enablePrivacyForActionName Boolean 任意 false 自動 Action 名を DOM のプライバシーレベルに従わせるかどうか。有効にすると、マスクされた名前は固定のプレースホルダーを使用し、非表示要素内のクリックでは自動 Action が生成されません。明示的に設定した Action 名の属性は引き続き使用できます。SDK バージョンは >= 3.3.14 が必要です。自動 Action 名の保護 を参照してください。
trackViewsManually Boolean 任意 false SDK の自動 View を無効にし、アプリが startView() を呼び出して View を手動で開始するかどうか。フレームワークの Router プラグインがこの設定を自動管理するため、アプリ側で重複して設定する必要はありません。詳細 を参照してください。
plugins Array 任意 [] RUM プラグインを登録します。init() 時に渡す必要があります。フレームワークプラグインは、React、Vue、Angular、Next.js、Nuxt のルート View とフレームワークエラーを収集できます。SDK バージョンは >= 3.3.6 が必要です。詳細はフロントエンドフレームワークプラグインの導入 を参照してください。WebGL Replay は SDK 3.3.7 から利用可能で、RUM メインパッケージのバージョンが >= 3.3.7 である必要があります。また、プラグインとメインパッケージには同じ SDK リリースバージョンを使用することをお勧めします。詳細は Canvas 録画マニュアル を参照してください。
enableExperimentalFeatures Array 任意 [] 実験的機能を有効にします。["track_websockets"] を設定すると、ネイティブ WebSocket 接続レベルの Resource を収集できます。SDK バージョンは >= 3.3.6 が必要です。詳細 を参照してください。
actionNameAttribute String 任意 バージョン要件:>3.1.2。要素にカスタム属性を追加して、操作の名前を指定します。具体的な使用方法は 詳細 を参照してください。
beforeSend Function(event, context):Boolean 任意 バージョン要件:>3.1.2。データの傍受と変更を行います。詳細 を参照してください。
storeContextsToLocal Boolean 任意 バージョン要件:>3.1.2。setUser、addGlobalContext などの API で追加したカスタムデータを、ローカルの localStorage にキャッシュするかどうか。
storeContextsKey String 任意 バージョン要件:>3.1.18。localStorage に保存するキーを定義します。デフォルトでは未設定のため自動生成されます。このパラメータは、同じドメイン配下の異なるサブパスで store を共用する場合の問題を区別するためのものです。
compressIntakeRequests Boolean 任意 RUM データのリクエスト内容を圧縮し、大量のデータ送信時の帯域幅使用量を削減するとともに、送信データのリクエスト数を減らします。圧縮は Web Worker スレッドで行われます。CSP セキュリティポリシーについては CSP セキュリティ を参照してください。SDK バージョンは >= 3.2.0、DataKit バージョンは >= 1.60、デプロイメントプランは >= 1.96.178 が必要です。
workerUrl String 任意 sessionReplay と compressIntakeRequests のデータ圧縮はどちらも Web Worker スレッドで行われるため、CSP セキュリティアクセスを有効にしている場合は、デフォルトでは worker-src blob: を許可する必要があります。この設定では、自分でホストする Worker アドレスを追加できます。CSP セキュリティポリシーについては CSP セキュリティ を参照してください。SDK バージョンは >= 3.2.0 が必要です。
remoteConfiguration Boolean 任意 データ収集のリモート設定機能を有効にするかどうか。デフォルトでは無効です。リモート設定機能を使用すると、新しいバージョンをリリースせずにデータ収集の設定項目を動的に変更できます。たとえば、リモート設定でサンプリング率やユーザー操作収集の有効・無効などを変更できます。リモート設定機能を使用するには、Guance コンソールで環境変数の設定を有効にする必要があります。SDK バージョンは >= 3.2.20、DataKit バージョンは >= 1.60 が必要です。Guance コンソールで環境変数機能を有効にする方法
replayCanvasWorkerUrl string 任意 canvas snapshot エンコード専用の Worker アドレスです。workerUrl の代替ではありません。自分でホストする Worker アドレスを追加できます。CSP セキュリティポリシーについては CSP セキュリティ を参照してください。SDK バージョンは >= 3.3.0 が必要です。
replayCanvasEnabled boolean 任意 false Canvas 録画を有効にするかどうか。有効にしない場合、Canvas は収集されません。SDK バージョンは >= 3.3.0 が必要です。
replayCanvasMode 'manual' \| 'auto' 任意 auto Canvas の録画モード。manual の場合は snapshotCanvas(canvas) を手動で呼び出す必要があります。auto は自動録画です。
replayCanvasSampling number \| 'all' 任意 2 replayCanvasMode: 'auto' の場合のみ有効です。正の数は自動 snapshot のパスを選択します。2 から始めることをお勧めします。数値自体は Canvas 2D の収集頻度を制御しません。'all' を指定すると、Canvas 2D はより忠実度の高い command capture を試みますが、複雑なシーンでは snapshot にフォールバックする場合があります。WebGL プラグインは常にバジェット管理されたピクセルスナップショットを使用します。
replayCanvasAutoInterval number 任意 250 Canvas ごとの自動 snapshot の目標間隔(ミリ秒)。複数の Canvas は公平にローテーションされ、実際のペースは cooldown、backoff、ページの可視性、グローバルなランタイム予算によっても制限されます。
replayCanvasQuality 'low' \| 'medium' \| 'high' \| number 任意 0.4 Canvas snapshot のエンコード品質。文字列プリセットは sampling と自動スケジューリングの予算も同時に調整します。画像品質のみを変更したい場合は、0 から 1 の間の数値を渡してください。
replayCanvasAutoCooldown number 任意 250 同じ Canvas の自動 snapshot の最小クールダウン時間(ミリ秒)。
replayCanvasAutoUnchangedBackoff number 任意 3000 軽量シグネチャが変化しない状態が続いた場合に、次の完全なエンコード検証をトリガーする間隔(ミリ秒)。この間も、制限付きの適応的なペースで変化を検出し続けます。
replayCanvasAutoFailureBackoff number 任意 5000 自動収集が失敗した後のバックオフ時間(ミリ秒)。
replayCanvasAutoMaxPerRun number 任意 2 1 回の自動スケジューリングで処理する Canvas の最大数。
replayCanvasFlushImmediately boolean 任意 manual: true
auto: false
Canvas フレームがリプレイに正常に入った後、優先的に flush するかどうか。
silentMultipleInit boolean 任意 繰り返しの初期化をサイレントに無視するかどうか。

low、medium、high の文字列プリセットを使用しない場合、Canvas の自動スケジューリングのベースラインは、sampling 2、Canvas ごとの目標 interval 250 ms、cooldown 250 ms、unchanged backoff 3000 ms、failure backoff 5000 ms、1 ラウンドあたり最大 2 つの Canvas です。文字列プリセットはこれらの予算とエンコード品質を同時に置き換えます。複数の Canvas は公平なローテーションとグローバルな収集予算の制限も受けます。明示的な個別設定は、プリセット内の対応する値を上書きします。完全な preset マトリックスは Canvas 録画マニュアル を参照してください。

上記の高頻度スケジューリングのベースラインは Canvas 2D 向けです。WebGL プラグインは、interval/cooldown を明示的に設定しない場合、より保守的な GPU 読み戻しのペースを引き続き使用します。明示的な個別設定を行った場合のみ、それぞれ上書きされます。

site パラメータの処理

ノード名 アドレス
中国リージョン 1(杭州) https://rum-openway.guance.com
中国リージョン 2(寧夏) https://aws-openway.guance.com
中国リージョン 4(広州) https://cn4-openway.guance.com
中国リージョン 6(香港) https://cn6-openway.guance.one
国際リージョン 1(オレゴン) https://us1-openway.guance.com
欧州リージョン 1(フランクフルト) https://eu1-openway.guance.one
アジア太平洋リージョン 1(シンガポール) https://ap1-openway.guance.one
アフリカリージョン 1(南アフリカ) https://za1-openway.guance.com
インドネシアリージョン 1(ジャカルタ) https://id1-openway.guance.com

ランタイムでの Session 制御

RUM SDK 3.3.6 で startSession() が追加されました。呼び出すと、現在の Session がすぐに終了し、現在のサンプリング設定に従って Session が再開されます。次のユーザー操作を待つ必要はありません:

datafluxRum.startSession()

ランタイムの sessionSampleRate を同時に上書きすることもできます:

datafluxRum.startSession({
  sessionSampleRate: 100,
})

サンプリング率は 0 から 100 の間で指定する必要があります。この上書き値は、今回の Session と、その後自動的に継続される Session に適用されます。フル RUM パッケージと軽量 RUM パッケージの両方でこの API をサポートしています。詳細な仕様とユースケースは ランタイムで Session を再開する を参照してください。

必要に応じて高度な機能を有効にする

エラーセッションのイベントのみを収集する

バージョン要件

SDK バージョンは >= 3.2.19 が必要です。

ページでエラーが発生すると、SDK は自動的に次の処理を実行します:

  • 継続的な記録:エラー発生時から、セッションの全ライフサイクルのデータを完全に記録します。
  • 正確な補償:独立したサンプリングチャネルにより、エラーシナリオを漏れなく記録します。

設定方法

window.DATAFLUX_RUM &&
  window.DATAFLUX_RUM.init({
    applicationId: "<APPLICATION_ID>",
    site: "<PUBLIC_OPENWAY_URL>",
    clientToken: "<CLIENT_TOKEN>",
    sessionSampleRate: 0,
    sessionOnErrorSampleRate: 100
  })

上記の例はパブリック OpenWay を使用しています。DataKit 直結の場合は、基本導入の例に従って送信アドレスのフィールドを置き換えてください。

データ圧縮

大量の静的リソース(JS、CSS、画像など)を収集し、全量収集を有効にしている場合、SDK は初期化後に多くのデータを生成する可能性があります。これによりリクエストが滞留し、アプリケーションのスレッド状態に影響を与える可能性もあります。

compressIntakeRequests: true を設定すると、SDK は Web Worker で deflate を使用して送信データを圧縮し、リクエストサイズとリクエスト数を削減します。

設定例

window.DATAFLUX_RUM &&
  window.DATAFLUX_RUM.init({
    applicationId: "<APPLICATION_ID>",
    site: "<PUBLIC_OPENWAY_URL>",
    clientToken: "<CLIENT_TOKEN>",
    compressIntakeRequests: true
  })

注意事項

  1. データ圧縮ロジックは Web Worker で実行されます。CSP セキュリティポリシーを有効にしている場合は、worker-src で blob: を許可する必要があります。詳細は CSP セキュリティポリシー を参照してください。
  2. SDK は、workerUrl 設定項目を使用して、自分でホストする Worker アドレスを指定できます。
  3. この機能を使用するには、SDK バージョンが >= 3.2 である必要があります。

カスタムデータとイベント

基本導入ページでは、すべてのパブリック API を重複して説明しません。目的に応じて対応するページに移動すると、CDN、NPM、および完全なパラメータの例を確認できます。

Web セッションリプレイ

前提条件

Session Replay を含むフル RUM パッケージを使用してください。軽量 RUM パッケージにはセッションリプレイ機能は含まれません。

録画を有効にする

SDK の初期化後、startSessionReplayRecording() メソッドを呼び出して、セッションリプレイの録画を開始します。ユーザーのログイン後など、特定の条件で録画を開始することもできます。セッション録画を有効にする。

エラー関連のセッションリプレイデータのみを収集する

バージョン要件

SDK バージョンは >= 3.2.19 が必要です。

ページでエラーが発生すると、SDK は自動的に次の操作を実行します:

  • 遡及収集:エラー発生前の 1 分間の完全なページスナップショットを記録します。
  • 継続録画:エラー発生時からセッション終了まで記録し続けます。
  • インテリジェントな補償:独立したサンプリングチャネルにより、エラーシナリオを漏れなく記録します。

設定例

window.DATAFLUX_RUM &&
  window.DATAFLUX_RUM.init({
    applicationId: "<APPLICATION_ID>",
    site: "<PUBLIC_OPENWAY_URL>",
    clientToken: "<CLIENT_TOKEN>",
    sessionSampleRate: 100,
    sessionReplaySampleRate: 0,
    sessionReplayOnErrorSampleRate: 100
  })

window.DATAFLUX_RUM && window.DATAFLUX_RUM.startSessionReplayRecording()

注意事項

  • セッションリプレイは iframe、動画、音声の再生コンテンツを記録しません。Canvas はデフォルトでは収集されないため、replayCanvasEnabled を個別に設定する必要があります。WebGL/WebGL2 は SDK 3.3.7 から利用可能で、RUM メインパッケージのバージョンが >= 3.3.7 である必要があります。互換性のある browser-rum-webgl プラグインを追加でインストールして登録する必要もあります。プラグインとメインパッケージには同じ SDK リリースバージョンを使用することをお勧めします。詳細は Canvas 録画マニュアル を参照してください。
  • リプレイ時に静的リソース(フォント、画像など)へ正常にアクセスできるようにするには、CORS ポリシーの設定が必要になる場合があります。
  • CSS スタイルとマウスホバーイベントをサポートするには、CSSStyleSheet インターフェースから CSS ルールにアクセスできることを確認してください。

録画状態の確認

window.DATAFLUX_RUM.isRecording() を呼び出して、現在のページが録画中かどうかを確認します。また、セッションリプレイエクスプローラーで、該当する Session にリプレイデータが生成されていることを確認します。本番環境では、ビジネス要件に応じて sessionReplaySampleRate を調整してください。

フィードバック

このページは役に立ちましたか?