コンテンツにスキップ

RUM サンプリングの設定方法

RUM セッションサンプリングは、データ収集パイプラインに入るユーザーセッションの割合を制御するために使用されます。サンプリングレートを下げると、収集量とストレージコストを削減できます。

セッションサンプリングの設定

sessionSampleRate の値の範囲は 0 から 100 です:

  • 100:すべてのセッションを収集;
  • 0:通常のセッションを収集しない;
  • 1 から 99:新しいセッションごとに設定された割合で独立してサンプリングされます。

例えば、Web RUM セッションの 90% を収集する場合:

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

datafluxRum.init({
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>",
  service: "browser",
  env: "production",
  version: "1.0.0",
  sessionSampleRate: 90,
})

上記の例では、パブリックネットワークの OpenWay を使用しています。DataKit に直接接続する場合は、siteclientTokendatakitOrigin に置き換え、両方のレポートアドレスを同時に設定しないでください。

セッションの作成時に、ランダムサンプリングが 1 回実行されます。サンプリング結果は、現在のセッションのライフサイクル中は変更されません。各 View、Error、Resource に対して個別にサンプリングされることはありません。

Session Replay は独立した sessionReplaySampleRate を使用します。sessionSampleRate のみを変更しても、Session Replay のサンプリングレートは自動的に変更されません。

実行時にセッションを再開する

RUM SDK 3.3.6 で startSession() が追加されました。フル RUM パッケージと軽量 RUM パッケージの両方でサポートされています。

呼び出し後、直ちに現在のセッションを終了し、現在のサンプリング設定に従ってセッションを再開します。ユーザーが次にクリック、スクロール、またはキーボード操作を行うのを待つ必要はありません:

datafluxRum.startSession()

CDN で導入する場合も同じ API を使用します:

window.DATAFLUX_RUM && window.DATAFLUX_RUM.startSession()

適用されるユースケースは次のとおりです:

  • ユーザーがログイン、ログアウト、またはアカウントを切り替えた後に、前後のセッションを分離する必要がある場合;
  • ユーザーがプライバシーまたはモニタリングポリシーに同意した後に、直ちにセッションサンプリングを再実行する必要がある場合;
  • アプリケーションの実行中に、後続のセッションの収集割合を調整する必要がある場合。

実行時のサンプリングレートの上書き

呼び出し時に新しい sessionSampleRate を渡すことができます:

datafluxRum.startSession({
  sessionSampleRate: 100,
})

この値は次の両方に使用されます:

  1. 今回再開されたセッション;
  2. その後、期限切れ、復元、またはユーザーアクティビティによって自動的に再作成されたセッション。

サンプリングレートは 0 から 100 の間である必要があります。無効な値が渡された場合、SDK は設定エラーを出力し、現在のセッションを保持して切り替えを実行しません。

startSession() は RUM セッションのみを切り替え、ページのリフレッシュや setUser()、Global Context、その他のビジネス状態のクリアは行いません。ユーザーがアカウントを切り替える場合は、最初にユーザー情報を更新してから、新しいセッションを開始する必要があります。

Session ID とサンプリング結果

startSession() はセッションサンプリングを再実行します。新しいセッションがサンプリングにヒットすると、新しい session_id が生成されます。通常のサンプリングまたはエラー補償サンプリングにヒットしなかった場合、レポート可能な通常の RUM セッションは生成されません。

Session Replay との関係

startSession()sessionSampleRate のみを上書きし、sessionReplaySampleRatesessionReplayOnErrorSampleRate は上書きしません。また、startSessionReplayRecording() を自動的に呼び出すこともありません。

アプリケーションがすでに startSessionReplayRecording() を呼び出している場合、新しいセッションで Replay のアップロードが許可されるかどうかは、新しいセッションのサンプリング結果と既存の Replay サンプリング設定によって決まります。

その他のアプリケーションのサンプリング

フィードバック

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