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 be delivered to Dynatrace:
ruxitagentjs_
is the RUM JavaScript tag used for auto-injection—the name of the tag may contain additional information, such as active code modules and the version of the tag. Agentless RUM requests use ruxitagent_
./rb_<id>
and /bf
or /bf_<id>
are the monitor signals the RUM JavaScript sends back to Dynatrace.
app
, flavor
, format
, referer
, session
, svrid
, type
, visitID
, size
, zip
, va
, tt
, ns
, and more. For the new beacon protocol version 3, they are type
, svrid
, rf
, sn
, app
, dbg
, flavor
, vi
, modifiedSince
, bp
, contentType
, crc
, v
, end
, and more.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.RUM uses the following HTTP headers. All of these headers must be able to reach Dynatrace.
Header
Purpose
x-dynatrace
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 403
HTTP error, which is why it is necessary to configure these components to accept the x-dynatrace
header.
x-dynatrace-application
Contains the ID of the RUM application, the cookie domain, and the injection rule (noop
, auto
, before
, or after
). Also contains the injection pattern when injectionRule=after
or injectionRule=before
.
Used in case there's some proxy in between a user's browser and the original process that delivers the page.
x-dynatrace-origin-url
Preserves the original URL of the request in case of URL rewriting.
X-dynaTrace-RequestState
Tracks the depth of a subpath tree to avoid endless distributed traces.
x-dtpc
Identifies proper endpoints for beacon transmission; includes session ID for correlation.
x-dtreferer
Contains the referer of the page for an action and improves the correlation results.
Header
Purpose
X-OneAgent-JS-Injection
Confirms that the RUM JavaScript has been injected to avoid duplicate injection.
Has one of the following values:
true
: the injection has been completed.block
: the injection must not be attempted at this time.X-ruxit-JS-Agent
Confirms that the RUM JavaScript has been injected to avoid duplicate injection.
Has one of the following values:
true
: the injection has been completed.block
: the injection must not be attempted at this time.x-dtHealthCheck
Contains the results of the RUM JavaScript injection diagnostics performed by Dynatrace Support.
x-dtAgentId
If the RUM health check is enabled, any involved OneAgent code module adds its ID here. Set for responses to special requests.
x-dtInjectedServlet
Contains the fully qualified name of the injected servlet or filter.
Set-Cookie
Sets the session state cookie of OneAgent.
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
dtCookie<cookie_suffix>
1
No set limitation, but usually less than 100 B
Tracks a visit across multiple requests.
dtPC<cookie_suffix>
1
58 B
Identifies proper endpoints for beacon transmission; includes session ID for correlation.
dtSa
Max URL length
Serves as an intermediate store for page-spanning actions.
dtValidationCookie
Length of dTValidationCookieValue
string, that is 23
Determines the top-level domain.
dtDisabled
4 B
Determines if the RUM JavaScript should be deactivated due to cost and traffic control or overload prevention.
For details, see RUM cookie names.
OneAgent for Mobile uses the x-dynatrace
header for tagging HTTP requests. Dynatrace uses this header to link the mobile part of the web request to the service part captured by another OneAgent.
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
.