This guide provides essential information for setting up and utilizing the New RUM Experience for both iOS and Android platforms, and web monitoring. Follow the instructions below to ensure a smooth setup and optimal performance.
Enabling ingest to Grail has no impact on the classic data capturing. Dashboards, alerting and configurations on classic as well as billing are not impacted.
Enable New RUM Experience for web data capturing
In Dynatrace, go to Experience Vitals.
Select the app you want to monitor, and select Settings.
Under Enablement and cost control, enable the New Real User Monitoring Experience toggle.
If Session Replay package is enabled on classic, you can also enable Experience Analytics, which includes capturing of user interactions.
Update the injection:
For automatic injection, wait 1-2 minutes for the rollout of the new configuration.
For manual injection, copy and paste the snippet into your web page and re-deploy your app.
Additional requirements
Dynatrace OneAgent version
It’s recommended to use the latest version available, as features are added regularly, however, the minimum version required is OneAgent version 1.301+.
Additional checks
Make sure you have the following settings in your app:
Verify that the cost control settings for your application is set to 100%. If you set it below that threshold, not all sessions' events will be reported to Grail.
Server Firewall: Ensure that you allow the traceparent HTTP header.
Allow the query string parameters for the beacon endpoint.
Check that your firewall doesn't block compressed beacons.
Session Timeout: Ensure proper session management for Grail activation.
user.events automatically reported to Grail
The data is stored in the user.events table. The following events are automatically reported to Grail:
Web requests including all xhr/fetch requests and ResourceTiming information
Page summaries
Visibility changes, such as background and foreground information
Navigations
Errors and exceptions
User Interactions (if Experience Analytics is enabled)
For details on the user events captured you can review the Semantic Dictionary.
Customize your web app monitoring on Grail
To customize your experience with New RUM Experience, you can:
Add custom events via dynatrace#sendEvent.
Enrich, modify, or discard events via API dynatrace#addEventModifier.
Through manual instrumentations, use user tags via dtrum#identifyUser to create an Identify User Event.
These are the features that are currently not supported in New RUM Experience:
Injection mechanisms
Sync snippet injection
Async snippet injection
Missing data
User actions
Session end event
Visually complete
Session and action properties defined in classic (currently on Grail only via the new APIs above)
Rage clicks
Session replay
Enable New RUM Experience for iOS and Android
In Dynatrace, go to your application settings.
Under Real User Monitoring, enable the Enable Real User Monitoring powered by Grail toggle.
Update your Dynatrace agent to the latest version.
Start the app in your local environment, and wait until the agent downloads the new configuration.
Wait for the current session to timeout, update user privacy options, or restart the app, so the new configuration takes effect.
Set up your mobile app for New RUM Experience
Make sure you have the following settings in your app:
Verify that the cost control settings for your application is set to 100%. If you set it below that threshold, not all sessions' events will be reported to Grail.
Server Firewall: Ensure that you allow the traceparent HTTP header.
Data Privacy: Set the data collection level to PERFORMANCE or USER_BEHAVIOR.
To report crashes, your user must opt-in for data privacy compliance.
To avoid session timeouts, ensure proper session management for Grail activation.
user.events automatically reported to Grail (iOS and Android)
Data is stored in the user.events table. The following user.events are automatically reported to Grail:
Crash Reporting: Reported as mobile error events
Web requests: HttpURLConnection and OkHttp requests reported as request events
Visibility change event
Mobile app start event
Customize your mobile app monitoring on Grail
Manually add view instrumentation with Dynatrace#startView and Dynatrace#stopView.
Use Dynatrace#sendEvent to report custom events.
Modify events using Dynatrace#addEventModifier and EventModifier#modifyEvent.
Through manual instrumentation, you can use:
Custom errors, via Dynatrace#reportError and DTXAction#reportError, as Mobile Error Event
Manually monitored web requests, via Dynatrace#getWebRequestTiming, as Request Event
User tags, via Dynatrace#identifyUser, as Identify User Event
Dynatrace#getRequestTagHeader, Dynatrace#getRequestTag, Dynatrace#tagRequest, DTXAction#getRequestTagHeader, DTXAction#getRequestTag, DTXAction#tagRequest only support web request tagged with the x-dynatrace header. There is no API support for manual tagging with the traceparent header.
You can only use Dynatrace#getWebRequestTiming for http or web socket monitoring.
Regarding missing data:
User actions
Custom value reporting (values and events) - to capture these on Grail as well, additionally use the new APIs above
Lifecycle events
Rage tap events
Session end event
Session replay
Regarding agent behavior:
Crashes are not reported immediately, they get sent to Grail as soon as a user restarts the app.
Cost control settings are only applied partially. The first events of a discarded session are visible on Grail. This won't lead to any additional costs.
The agent doesn't immediately report events when your app moves to the background, they're reported within 2 minutes.