Some processing configurations carry over automatically because RUM and RUM Classic share the same underlying settings, so changes in one apply to the other. Others require a dedicated setup in RUM, often via OpenPipeline or newly introduced settings. This page walks you through each configuration that requires action.
In RUM Classic, you create naming rules (regular expressions or pattern matchers applied server-side) that override the auto-generated names of user actions. Each application has its own set of rules.
In RUM, user action names are derived client-side, and you control them in your frontend code instead of in the RUM settings. There is no equivalent to the classic rule-based naming configuration in the RUM settings UI.
Web frontends
In RUM, user interaction names are derived client-side from the HTML attributes of the element the user interacts with. The RUM JavaScript checks the element for attributes in a fixed priority order: aria-label, title, name, data-testid, placeholder, and id. This is the detected name and requires no configuration. For the full naming logic, see Customize UI element naming for user interactions.
When the detected name is not meaningful enough, you control naming through HTML attributes in your page markup:
data-dt-name sets a custom name for a specific element.data-dt-children-name sets a shared name for a container and all its descendants.Mobile frontends
The mobile agent names automatic user actions following the template {interaction type} on {element name} on {view name}, for example, touch on Checkout on CartActivity. For details, see Concepts for mobile frontends.
Semantics label (Flutter) or the accessibilityLabel property (React Native).dtActionName property.For web frontends
data-dt-name or data-dt-children-name attributes to your HTML. This requires a change to your frontend code.For mobile frontends
dtActionName (React Native).Verify the result
After deploying your changes, verify the resulting names:
Experience Vitals > Overview.Classic naming rules you have already defined continue to apply to RUM Classic data. They have no effect on user actions captured in RUM.
In RUM Classic, Dynatrace detects pages and page groups automatically, and you can override them with the RUM JavaScript API.
In RUM, page and view names are derived automatically. For web frontends, the RUM JavaScript detects page.detected_name and view.detected_name from the URL and, for single-page applications, from the framework's navigation events. Dynatrace then derives page.name and view.name from the detected names, for example by replacing dynamic IDs with :id:. For mobile frontends, the view name is the screen name reported by the agent.
Review the pages, views, and navigations concept page to understand how RUM derives these names for your frontend. For mobile frontends, view names are assigned from the screen name reported by the SDK; see Concepts for mobile frontends for details. The view name is also part of the name of automatic user actions.
For web frontends
If the auto-derived names don't match your expectations, you can't set page.name or view.name directly, because Dynatrace always derives them from page.detected_name and view.detected_name. Instead, override the detected names in your frontend:
dynatrace.addEventModifier from the JavaScript API.page.detected_name and/or view.detected_name to the value you want.Dynatrace then derives page.name and view.name from your overridden values.
For mobile frontends
If the default screen names are not meaningful, set a custom view name via the API. See the view monitoring instructions for Android, iOS, Flutter, React Native, or .NET MAUI. The custom name is also used in the names of user actions that occur on that view.
RUM Classic provides two ways to create custom metrics:
In RUM, both types are replaced by OpenPipeline-based metric extraction. Metrics are extracted from the user event stream via OpenPipeline processors and can apply across all frontends, depending on your configuration scope. Two extraction points are available:
Before recreating metrics, consider whether you still need them. In RUM, you can query user events and sessions directly using DQL in
Dashboards and
Notebooks, for example, with fetch user.events or fetch user.sessions combined with makeTimeSeries. Many use cases that previously required a dedicated metric can be covered by an ad-hoc or saved DQL query without any extraction setup.
Notebooks or
Dashboards by querying timeseries with your new metric names.RUM Classic USQL custom metrics and calculated metrics remain available while RUM Classic is active. You can run both in parallel while upgrading and remove the Classic equivalents once the new metrics are validated.
In RUM Classic, you configure error detection per application: you can define which HTTP status codes count as errors, create custom error definitions, group JavaScript errors by pattern, and ignore specific errors or error classes.
In RUM, error capture is automatic. The RUM JavaScript captures request errors and JavaScript exceptions, and the mobile agents capture request errors, crashes, and ANRs. To report custom errors, use the sendExceptionEvent API, which is available for web and mobile frontends. Errors are stored in Grail and analyzed mainly in our dedicated
Error Inspector app. The error detection rules you configured in RUM Classic continue to apply to RUM Classic data and have no effect on RUM error capture.
To report custom errors, use the sendExceptionEvent API:
Once you have completed all steps for upgrading RUM data processing, continue with upgrading your permissions and segmentation configuration.