RUM without Limits

RUM without Limits is automatically enabled for customers with non-committed RUM plans. Reach out to your account team or Datadog support to enable this feature.
Estimated usage metrics details side panel

Overview

RUM without Limits provides you flexibility over your RUM sessions volumes by decoupling session data ingestion from indexing. This enables you to:

  • Dynamically set retention filters from the Datadog UI without up-front sampling decisions or code changes
  • Retain sessions with errors or performance issues and discard less significant ones, such as ones with few user interactions

Even if you retain only a fraction of your sessions, Datadog provides performance metrics for all ingested sessions. This ensures an accurate, long-term overview of application health and performance, even if only a fraction of session data is retained.

This page identifies key components of RUM without Limits that can help you manage your RUM sessions volumes within your observability budget.

For new applications

To get started with RUM without Limits for new applications, at the instrumentation step:

  1. Ensure the sessionSampleRate is set to 100%. Datadog recommends setting it at this rate for optimal visibility and metrics accuracy.

  2. Choose a sessionReplaySampleRate that meets your observability needs.

  3. For applications with the APM integration enabled, configure the percentage of sessions for which you want to make sure APM backend traces are ingested with traceSampleRate (browser), traceSampler (Android), or sampleRate (iOS).

  4. Enable traceContextInjection: sampled to defer sampling decisions to backend tracers for sessions where the decision is not to keep the trace.

    Steps 1, 3, and 4 may impact your APM traces ingestion. To ensure that ingested span volumes remain stable, configure the traceSampleRate to the previously configured sessionSampleRate. For instance, if you used to have sessionSampleRate set to 10% and you bump it to 100% for RUM without Limits, decrease the traceSampleRate from 100% to 10% accordingly to ingest the same amount of traces.
  5. Deploy your application to apply the configuration.

For existing applications

Existing RUM users must redeploy applications to fully use RUM without Limits. Ensure your session sampling rate is 100% for all applications.

Step 1: Adjust sampling rates

If you are already collecting replays, increasing the session sampling rate requires reducing the replay sampling rate to collect the same number of replays (see example below). The replay sampling rate is based on the existing session sampling rate.

Before:

   sessionSampleRate: 20,
   sessionReplaySampleRate: 10,

After:

   sessionSampleRate: 100,
   sessionReplaySampleRate: 2,
  1. Navigate to Digital Experiences > Real User Monitoring > Manage Applications.
  2. Click the application you want to migrate.
  3. Click the SDK Configuration tab.
  4. Ensure sessionSampleRate is set to 100%.
  5. Set sessionReplaySampleRate to a rate that results in the same number of replays prior to increasing the Session Sample Rate.
  6. Use the generated code snippet to update your source code and redeploy your applications to make sure the new configuration is applied.

Step 2: Adjust tracing

If you’ve increased sessionSampleRate, you might increase the number of ingested APM spans since the RUM SDK has the ability to override the sampling decisions of backend traces to make the correlation.

To alleviate this, set traceSampleRate to a percentage below 100% (to the previously set sessionSampleRate) and set traceContextInjection: sampled to make sure the trace sampling decision is made by backend tracing libraries for sessions where the sampling decision is to not keep the trace.

Step 3: Create retention filters

On mobile applications, many concurrent versions can live together. However, existing versions are not necessarily sending 100% of sessions, which means that creating new retention filters reduces the data available in Datadog for these application versions.

Datadog recommends creating the same retention filters for all application versions, independently of whether the SDK sampling rate is set to 100% or not. Ultimately, all valuable sessions will still end up being collected even if some sessions are not ingested for some older versions.

See suggested retention filters and use cases in Retention Filter Best Practices.

Next steps

Create and configure retention filters.

Further reading