on 20 Mar 2024 05:20 PM - edited on 08 May 2024 11:19 AM by MMayerhofer
This page explains what to do when Real User Monitoring (RUM) isn't working in your environment, specifically when there are issues with the RUM JavaScript.
Tip: Before performing any troubleshooting, try checking the health check page for your application. Also, see RUM JavaScript injection | Frequently asked questions in Dynatrace Documentation.
To confirm that your application web frontend process is monitored
If RUM data is ending up in the wrong application, make sure that you've correctly configured the application detection rules. For details, see Check application detection rules and Define applications for Real User Monitoring | Application detection rules approach.
If you don't see any of your applications or RUM data in the Dynatrace web UI, start by confirming that there's traffic in your web frontend processes (web server, Java, Node.js, and more). To do this, interact with one of your application pages to generate some traffic.
Once you're certain that your web frontend processes have traffic on them, check the following to determine the cause of the problem:
Note: In rare circumstances, the RUM JavaScript injected into your application pages can have an adverse impact on the application functionality. For this reason, following installation of OneAgent, confirm that your application pages still render properly. If some of your application pages appear to be corrupted, disable RUM and contact a Dynatrace product expert via live chat within your Dynatrace environment.
Try verifying again whether the RUM JavaScript has been correctly injected into your HTML code.
If you don't see the RUM JavaScript automatically injected by OneAgent into your webpages, it's probably because of one of the following reasons.
Try confirm whether the RUM JavaScript has downloaded correctly.
If you see that the RUM JavaScript isn't downloadable, there might be a few reasons for that.
For agentless monitoring
The RUM JavaScript is incorrect.
Content Security Policy rules prevent loading of the RUM JavaScript.
For automatic injection on web servers
Rules on firewalls, load balancers, or proxies aren't configured to allow RUM JavaScript download.
For automatic injection on Java application servers
Your Java application server serves static content in a way that doesn't use the servlet stack. In such cases, the RUM JavaScript can't be downloaded.
To resolve a JavaScript download issue caused by a missing root application
Go to Web.
Select the application that you want to configure.
In the upper-right corner of the application overview page, select More (…) > Edit.
From the application settings, select Capturing > Advanced setup.
Scroll down to the RUM monitoring code section.
Specify the source path for placement of your application's RUM monitoring code in the Specify path for RUM monitoring code field. This path needs to point to a location where the RUM JavaScript is accessible (for example, a valid servlet path).
Try confirming again whether that RUM data is sent to Dynatrace.
If you see that the RUM beacons are rejected and not forwarded to the server, there might be several reasons for that.
Rules on firewalls, load balancers, or proxies may need to be adapted.
Content security policy settings may need to be adapted.
Java application server setup may need to be adapted.
For agentless monitoring, your browser may not support CORS requests. Data can be reported only via browsers that support CORS.
Content that is delivered as XHTML (content type application/xhtml+xml) can cause troubles with the injected RUM JavaScript. No CDATA comments (//<![CDATA['...) are injected as XHTML has been deprecated, but this can still cause browsers to not execute the RUM JavaScript. You must manually add the proper CDATA comments for the RUM JavaScript to execute properly.
If your application isn't working under this scenario, see if the application works with the RUM JavaScript disabled. To do this, block the request using either Fiddler or Chrome DevTools.
In Chrome DevTools, go to the Network tab.
Select More (…) > Network request blocking.
Select Enable network request blocking, and then enter part of the URL of the RUM JavaScript, for example, ruxitagent. Note that this does not work for the inlined RUM JavaScript.
If the application doesn't work with the RUM JavaScript disabled, the problem is likely in the application or caused by OneAgent. However, if the application works after disabling the RUM JavaScript, re-enable the RUM JavaScript but disable all modules. Try enabling modules one at a time until the application does not work anymore. Use this information when contacting Dynatrace product experts, as it helps to narrow down the problem to a certain module.
This is a wonderful reference! Thanks for taking the time to write something like this up - I'm sure a lot of people will find it useful when troubleshooting!