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 でのみ初期化します。 |
導入情報の準備¶
- 「RUM > アプリ一覧 > アプリを作成 > Web」に移動します。
- アプリを作成し、コンソールで生成された
applicationId、env、versionなどの設定を取得します。 -
データ送信方法を選択します:
-
パブリック OpenWay:
siteとclientTokenを取得します。DataKit のデプロイは不要です。 - DataKit 直結:
datakitOriginを準備します。DataKit で RUM コレクター を有効にし、パブリックネットワークからアクセス可能で、IP 地理情報データベースがインストールされた状態 に設定する必要があります。
2 つの送信方法を同時に設定しないでください
パブリック OpenWay では site と clientToken を使用します。DataKit 直結では datakitOrigin を使用します。現在の導入方法に必要なフィールドのみを設定してください。
送信方法¶
SDK の導入¶
導入方法 |
説明 |
|---|---|
| NPM での導入 | SDK コードをフロントエンドプロジェクトにバンドルし、バージョンを固定しやすくします。SDK 初期化前のリクエストやエラーを捕捉できない可能性があります。 |
| CDN 非同期読み込み | CDN で SDK スクリプトを非同期に読み込むため、ページの読み込みパフォーマンスに影響しません。初期化前のリクエストやエラー収集を逃す可能性があります。 |
| CDN 同期読み込み | CDN で SDK スクリプトを同期読み込みするため、すべてのエラーとパフォーマンス指標を完全に収集できます。ただし、ページの読み込みパフォーマンスに影響する可能性があります。 |
NPM での導入¶
フロントエンドプロジェクトに SDK をインストールして読み込みます:
プロジェクトで 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 パッケージを同じバージョンの軽量パッケージに置き換えます:
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 ファイルをフル版に戻してください。他の基本初期化パラメータはそのまま使用できます。
導入の確認¶
- SDK を導入したページを開き、ページ遷移、ボタンクリック、API リクエストをそれぞれ 1 回実行します。
- ブラウザの開発者ツールの Network で
/v1/write/rumをフィルタリングし、成功した送信リクエストが存在することを確認します。 - Console で、
Application ID is not configured、datakitOrigin or site is not configuredなどの初期化エラーがないことを確認します。 - 「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: trueauto: 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 が再開されます。次のユーザー操作を待つ必要はありません:
ランタイムの sessionSampleRate を同時に上書きすることもできます:
サンプリング率は 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
})
注意事項¶
- データ圧縮ロジックは Web Worker で実行されます。CSP セキュリティポリシーを有効にしている場合は、
worker-srcでblob:を許可する必要があります。詳細は CSP セキュリティポリシー を参照してください。 - SDK は、
workerUrl設定項目を使用して、自分でホストする Worker アドレスを指定できます。 - この機能を使用するには、SDK バージョンが >= 3.2 である必要があります。
カスタムデータとイベント¶
基本導入ページでは、すべてのパブリック API を重複して説明しません。目的に応じて対応するページに移動すると、CDN、NPM、および完全なパラメータの例を確認できます。
- ユーザー操作の追跡:クリックの自動収集、Action 名の定義、カスタム Action の追加。
- カスタムユーザー ID:ログイン後にユーザーを設定し、ログアウトやアカウント切り替え時にユーザー情報をクリアします。
- グローバルコンテキスト:後続のすべての RUM イベントに安定したビジネスディメンションを追加します。
- カスタム Action の追加:ページのクリックでは表現できないビジネス操作を記録します。
- カスタム Error の送信:捕捉済み、またはビジネス側で主体的に特定した例外を送信します。
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 は SDK3.3.7から利用可能で、RUM メインパッケージのバージョンが>= 3.3.7である必要があります。互換性のあるbrowser-rum-webglプラグインを追加でインストールして登録する必要もあります。プラグインとメインパッケージには同じ SDK リリースバージョンを使用することをお勧めします。詳細は Canvas 録画マニュアル を参照してください。 - リプレイ時に静的リソース(フォント、画像など)へ正常にアクセスできるようにするには、CORS ポリシーの設定が必要になる場合があります。
- CSS スタイルとマウスホバーイベントをサポートするには、CSSStyleSheet インターフェースから CSS ルールにアクセスできることを確認してください。
録画状態の確認¶
window.DATAFLUX_RUM.isRecording() を呼び出して、現在のページが録画中かどうかを確認します。また、セッションリプレイエクスプローラーで、該当する Session にリプレイデータが生成されていることを確認します。本番環境では、ビジネス要件に応じて sessionReplaySampleRate を調整してください。