Real User Monitoring (RUM) uses HTTP technologies to send performance data from your end users' browsers to Dynatrace. To do this, the RUM JavaScript is injected into your application's webpages. This tag or code snippet communicates with Dynatrace. However, you must verify the configuration of your firewalls, proxies, and web servers to allow all required data to pass through.
For RUM to function fully, the following HTTP requests must pass through your infrastructure:
Requests for the RUM monitoring code.
ruxitagentjs_.For details on the default URL and the available configuration options, see Configure the Real User Monitoring code source.
RUM beacons reporting the data captured by the RUM JavaScript back to Dynatrace.
/bf or /bf/<id>./rb_<id>.POST body contains the payload. The payload is sent with the text/plain content type. For Session Replay, the application/octet-stream content type can also be used.For the available beacon endpoint configuration options, see Configure beacon endpoint for web applications.
RUM uses the following HTTP headers. All of these headers must be able to reach Dynatrace.
| Header | Purpose |
|---|---|
| Used for transaction stitching in HTTP headers. Set by OneAgent to link web servers. Ensure that network components, such as firewalls and routers, are never configured to remove these headers. Incorrect configuration can potentially lead to broken distributed traces. Some network components disable such requests and throw a |
| Contains the ID of the RUM application, the cookie domain, and the injection rule ( Used in case there's some proxy in between a user's browser and the original process that delivers the page. |
| Preserves the original URL of the request in case of URL rewriting. |
| Tracks the depth of a subpath tree to avoid endless distributed traces. |
| Identifies proper endpoints for beacon transmission; includes session ID for correlation. |
| Contains the referer of the page for an action and improves the correlation results. |
| Contains information for correlation of cross-origin XHRs. |
| Sets the |
| Used to track proxy scenarios by the NGINX code module. |
| Used by the Apache code module to synchronize service naming with the PHP code module. |
| Used by the IIS code module to declutter .NET code module subpaths. |
| Discarded by the Apache code module during the fine-tuning of HTML injection behavior. |
| Discarded during the fine-tuning of HTML injection behavior. |
| Discarded when caching is suppressed. |
| Discarded when caching is suppressed. |
| Modified when caching is suppressed. |
| Modified when caching is suppressed. |
| Used for W3C tagging. |
| Used for W3C tagging. |
| Contains the address of the previous web page from which a link to the currently requested page was followed. |
| Used for browser and OS detection. |
| Contains the host information on non-http(s) domains. |
| Header | Purpose |
|---|---|
| Confirms that the RUM JavaScript has been injected to avoid duplicate injection. Has one of the following values:
|
| Confirms that the RUM JavaScript has been injected to avoid duplicate injection. Has one of the following values:
|
| Contains the results of the RUM JavaScript injection diagnostics performed by Dynatrace Support. |
| If the RUM health check is enabled, any involved OneAgent code module adds its ID here. Set for responses to special requests. |
| Contains the fully qualified name of the injected servlet or filter. |
| Sets the session state cookie of OneAgent. |
| OneAgent appends a custom string to the original |
| If the |
| Adapted upon HTML injection. Set for responses to special requests. |
| Adapted during HTML injection into compressed responses. Set for responses to special requests. |
| Adapted during HTML injection into compressed responses. |
| Set for responses to special requests. |
| Set for responses to special requests. |
| Set for responses to special requests. |
| Used to transport information that is relevant for RUM correlation. |
| Allows the RUM JavaScript to access the information that is relevant for RUM correlation in case of cross-origin requests. |
| Set for responses to special requests. |
| Set for responses to special requests. |
| Set for responses to special requests. |
RUM uses the following cookies. All of these must be able to reach Dynatrace. See Cookies for more information on how Dynatrace uses cookies.
| Cookie | Max size | Purpose |
|---|---|---|
| No set limitation, but usually less than 100 B | Tracks a visit across multiple requests. |
| 5 B | Measures server latency for performance monitoring. |
| 58 B | Identifies proper endpoints for beacon transmission; includes session ID for correlation. |
| Max URL length | Serves as an intermediate store for page-spanning actions. |
| Length of | Determines the top-level domain. |
| 4 B | Determines if the RUM JavaScript should be deactivated due to cost and traffic control or overload prevention. |
| 45 B | Contains the visitor ID to correlate sessions. |
| 27 B | Includes the timestamp of the session timeout. |
For details, see RUM cookie names.
For RUM Classic, OneAgent for Mobile tags HTTP requests with the x-dynatrace header. Dynatrace uses this header to link the mobile part of a web request with the service part captured by another OneAgent. For the New RUM Experience, OneAgent for Mobile tags HTTP requests using the traceparent and tracestate headers.
For hybrid applications, the dtAdk cookie allows to join a session from OneAgent for Mobile and a session from the RUM JavaScript so that these sessions appear as a single session, while the dtAdkSettings cookie is used for syncing settings between OneAgent for Mobile and the RUM JavaScript.
/mbeacon is the monitor signal that OneAgent for Mobile sends back to Dynatrace if the data is transferred through ActiveGate. If the data is sent to another OneAgent, the monitor signal is /dtmb.