Browser session configuration examples

Enable new session replay capabilities

Note: You can use the legacy or new API and service endpoint URLs as of March 24, 2026. The legacy endpoints have the domain signalfx, and the new endpoints have the domain observability.splunkcloud. Thus, you can use the legacy ingest endpoint ingest.realm.signalfx.com or the new ingest endpoint ingest.realm.observability.splunkcloud.com. See Splunk Observability Cloud domain change for more information.

Use Splunk RUM browser agent version 1.0.0 or higher.

Complete example:

JSON
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web.js" crossorigin="anonymous"></script>
<script>
    SplunkRum.init({
        realm: "<realm>",
        rumAccessToken: "<token>",
        applicationName: "<appName>",
        deploymentEnvironment: "<env>",
    });
</script>
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
<script>
SplunkSessionRecorder.init({
  realm: "<realm>",
  rumAccessToken: "<token>"
});
</script>

Enable recording of all text and inputs

Relevant parameters:

CODE
maskAllInputs: false,
maskAllText: false,

Complete example:

JSON
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web.js" crossorigin="anonymous"></script>
<script>
    SplunkRum.init({
        realm: "<realm>",
        rumAccessToken: "<token>",
        applicationName: "<appName>",
        deploymentEnvironment: "<env>",
    });
</script>
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
<script>
SplunkSessionRecorder.init({
  realm: "<realm>",
  rumAccessToken: "<token>",
  maskAllInputs: false,
  maskAllText: false,
});
</script>

Enable recording of only specific text and inputs

Use Splunk RUM browser agent version 1.0.0 or higher and set the recorder attribute to splunk.

Relevant parameter is sensitivityRules, which is an array of format:

JSON
{ type: 'mask' | 'unmask' | 'exclude', selector: '<css selector>' }

To unmask and see text of all paragraphs, but hide all images, leave maskAllText: true (default) and specify sensitivity rules like this:

JSON
sensitivityRules: [
  { type: 'unmask', selector: 'p' }, 
  { type: 'exclude', selector: 'img' },
  { type: 'mask', selector: '.user-class' },
  { type: 'exclude', selector: '#user-detail' },
]

Complete example:

JSON
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v0.23.1/splunk-otel-web.js" crossorigin="anonymous"></script>
<script>
    SplunkRum.init({
        realm: "<realm>",
        rumAccessToken: "<token>",
        applicationName: "<appName>",
        deploymentEnvironment: "<env>",
    });
</script>
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v0.23.1/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
<script>
SplunkSessionRecorder.init({
  realm: "<realm>",
  rumAccessToken: "<token>",
  sensitivityRules: [
    { type: 'unmask', selector: 'p' }, 
    { type: 'exclude', selector: 'img' },
    { type: 'mask', selector: '.user-class' },
    { type: 'exclude', selector: '#user-detail' },
  ]
});
</script>

Missing assets and images from recording (CORS, VPN, Intranet)

Relevant parameters are features.packAssets and features.cacheAssets.

Complete example:

JSON
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web.js" crossorigin="anonymous"></script>
<script>
    SplunkRum.init({
        realm: "<realm>",
        rumAccessToken: "<token>",
        applicationName: "<appName>",
        deploymentEnvironment: "<env>",
    });
</script>
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
<script>
SplunkSessionRecorder.init({
  realm: "<realm>",
  rumAccessToken: "<token>",
  recorder: "splunk",
  features: {
    packAssets: true,
    cacheAssets: true,
  }
});
</script>

Canvas is not recorded

Canvas is an optional feature that you can enable.

Relevant parameter is features.canvas.

Complete example:

JSON
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web.js" crossorigin="anonymous"></script>
<script>
    SplunkRum.init({
        realm: "<realm>",
        rumAccessToken: "<token>",
        applicationName: "<appName>",
        deploymentEnvironment: "<env>",
    });
</script>
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
<script>
SplunkSessionRecorder.init({
  realm: "<realm>",
  rumAccessToken: "<token>",
  features: {
    canvas: true,
  }
});
</script>

Video element is not recorded

Capturing of video element is an optional feature that you can enable.

Relevant parameter is features.video.

Complete example:

JSON
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web.js" crossorigin="anonymous"></script>
<script>
    SplunkRum.init({
        realm: "<realm>",
        rumAccessToken: "<token>",
        applicationName: "<appName>",
        deploymentEnvironment: "<env>",
    });
</script>
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v1.0.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
<script>
SplunkSessionRecorder.init({
  realm: "<realm>",
  rumAccessToken: "<token>",
  recorder: "splunk",
  
  features: {
    video: true,
  }
});
</script>