27 Jul 2025
04:46 PM
- last edited on
29 Jul 2025
08:07 AM
by
MaciejNeumann
Hello All,
I want to confirm my understanding of the Real User Monitoring (RUM) data flow, both for web applications (auto-injected) and mobile apps. I’d appreciate it if you could review the following steps and confirm whether this flow is accurate, or if any adjustments are needed.
OneAgent is installed on the web/application servers, and it automatically injects the RUM JavaScript in the "response" (without requiring any manual code changes).
When a user visits the page, the injected JavaScript "in the response" starts running in the browser, collecting data like:
Performance timings
User actions
Errors
Sessions
Core Web Vitals
RUM JavaScript sends beacon data via HTTP to a path like:
OneAgent intercepts the RUM beacon on the server.
OneAgent forwards the beacon to Environment ActiveGate, usually over a secure HTTPS connection.
Environment ActiveGate securely sends the data to the Managed Dynatrace Cluster
The mobile app is instrumented using Dynatrace SDK for Android/iOS.
SDK is integrated during app build, and at runtime it:
Tracks user sessions and actions
Collects crash/error data
Measures app start time, screen transitions, etc.
SDK sends data as beacons directly to Dynatrace Cluster ActiveGate (usually to a Mobile beacon endpoint)(by using Public IP),
Cluster ActiveGate sends the mobile RUM data to the Dynatrace Cluster for processing and correlation.
Could you please confirm if this understanding is fully correct?
Any feedback or corrections would be highly appreciated to ensure we’re following the best practice for implementation and troubleshooting.
Thanks in advance
Solved! Go to Solution.
28 Jul 2025 11:29 AM
The "RUM Flow for Mobile applications" is correct.
I want to add some additional information to Step 1. Based on the application type ("native" Android app, React Native app, ...), you would choose the related tool from Dynatrace like for the "native" Android app you would use the Dynatrace Android Gradle plugin or for React Native app you would use the Dynatrace React Native plugin. The "Instrumentation wizard" screen in the Dynatrace UI will help you to select the correct tool. These tools/plugins provide auto-instrumentation features and reduce the necessary manual steps that have to be done for instrumenting an application. OneAgent SDK (you mentioned the name Dynatrace SDK) is used to enrich these data by monitoring components that are not auto-instrumented.