05 Jun 2023 06:44 PM - edited 21 Oct 2025 12:47 PM
When using Dynatrace Synthetic Monitoring, it's sometimes necessary to allow/ allowlist traffic for monitors to execute successfully and return data to Dynatrace.
Browser monitors use the same technology to return data to Dynatrace, so the RUM rules, described here, should also be added.
In this article, we will only describe the extra constraints for Synthetic.
An affected synthetic monitor may show different failures, such as request timeouts, authentication failures, connection refusals, etc. The key is that the monitor is permanently failing with the same outage.
What can you do?
Confirm the following with the relevant Application team:
We recommend allowing our traffic by either allowing access by User Agent string or IP address.
In addition to the checks for public locations, here are some helpful tests you can try from your private location.
Use this command to confirm whether the connection issue relates to Dynatrace or the machine.
curl -vki <url you're testing>
Or if you're using a proxy:
curl -vki -U proxyUser:proxyPassword -x proxy:proxyPort <url you're testing>
If the site is redirected to another page, you also need to add -L to follow redirects. For example,
curl -vki -L <url you're testing>
What can you do if the result of the command fails?
If the curl command fails, the issue lies in the connection between the machine and the application you're testing. Here's what you can do to fix it:
If the result of the command is successful
curl -vki <url you're testing> -H "User-Agent: DynatraceSynthetic/1.267.13.20230518-162314"
curl -vki <url you're testing> -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 RuxitSynthetic/1.0 v0 t0 cfeatureHash=7efgijmoqtvx caes=1 ccux=1 sia=1 smf=1"
What can you do if the command's result fails? You should allow/ allowlist our User-Agent string on your Application/ Firewall.
If you're working on Windows, you may only have the option of PowerShell instead of curl. You can use Invoke-WebRequest.
Without proxy:
Invoke-WebRequest -Uri "<url you're testing>"
With proxy:
Invoke-WebRequest -Proxy "<proxy-url>:<proxy-port>" -ProxyUseDefaultCredentials -Uri "<url you're testing>"
With redirects following and printing raw response:
Invoke-WebRequest -MaximumRedirection 10 -Uri "<url you're testing>" | Select-Object -Expand RawContent
What can you do if the result of the command fails
If the curl command fails, the issue lies in the connection between the machine and the application you're testing. Here's what you can do to fix it:
If the result of the command is successful
Invoke-WebRequest -Uri "<url you're testing>" -Headers @{"User-Agent"="DynatraceSynthetic/1.267.13.20230518-162314"}
Invoke-WebRequest -Uri "<url you're testing>" -Headers @{"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 RuxitSynthetic/1.0 v0 t0 cfeatureHash=7efgijmoqtvx caes=1 ccux=1 sia=1 smf=1"}
What can you do if the command's result fails? You should allow/ allowlist our User-Agent string on your Application/ Firewall.
If it has a GUI, you can test Browser Monitors from your Synthetic ActiveGate. This is usually the case for Windows ActiveGates, so I'll focus on those.
PsExec.exe -i -u "NT Authority\LocalService" "C:\Program Files\dynatrace\synthetic\Chrome-bin\chrome.exe"
(If you installed the synthetic location in a non-standard path, you'll need to adapt the path to chrome.exe)
If you can't find a cause, open a chat or create a ticket.
Confirm that the Cluster ActiveGate URL is publicly available. It can be limited to access from public location IP addresses if necessary.
Confirm that the Synthetic endpoints are all open
beacon/[uuid]
Synthetic health checks /beacon/synthetic/[uuid]
HTTP Monitors /beacon/synthetic/httpresults[uuid]
screenshots /beacon/synthetic/screenshot/[uuid]
Browser Monitors /beacon/synthetic/browser/[uuid]
Multiprotocol monitors /beacon/synthetic/multi-protocol/[uuid]
Credentials /beacon/synthetic/credentials/[uuid]
https://<Cluster AG Public Url>:<port>/beacon/synthetic/<environment UUID>?healthcheck&tenantId=<environment UUID>
and the response should be JSON file like this
{"ts":1680601930205,"activeGateId":nnnn,"activeGateVersion":"1.261.166.20230308-123141","activeGateWorkingMode":"MANAGED","tenantAvailable":false,"syntheticLicenseAvailable":false,"rumLicenseAvailable":false,"rumConfigRevision":-1,"imgAvailable":false,"hmResultsAvailable":false,"failureScreenshotInterval":3600000,"clusterVersion":"","clusterUUID":"","jsAgentVersion":"","protoVersion":1,"httpMonitorsResultsPath":"","screenshotsPath":"","mpmResultsAvailable":false,"credentialsPath":""}
If you can't find a cause, open a chat or create a ticket.
Once you've done the checks and determined the root cause of the problem, here are some possible solutions that you can apply
Synthetic Monitors can be recognised by the User Agent string they add in the request headers. This string can be used in Firewalls, etc., to identify Synthetic traffic and allow it.
For Browser monitors, we add
RuxitSynthetic/1.0
and some extra parameters after that. You can find the full list here.
For HTTP Monitors, we add
DynatraceSynthetic/{version}
The version changes with each release, so you may wish to use DynatraceSynthetic/instead. The complete list is here.
IPs can be used to identify Synthetic traffic and allow it to pass through Firewalls, etc.
You can find the IPs used by our public locations using the Frequency and Locations page in the WebUI or the Synthetic locations API—GET all locations API call. Further details are available here. These are individual IPs, so the subnet mask is /32 for all of them.
We don't list private location IPs, but you can find them in the WebUI in Deployment Status> ActiveGates. You can then filter for either the location you're interested in or all Synthetic ActiveGates and open each ActiveGate details tile to check the IP addresses.
If you need to connect to your application through a proxy or bypass it, you may need to add some further configuration to your proxy to allow access from the machine/ location.
If the necessary change has already been made to the proxy, we provide information on setting up ActiveGate to use different proxy connection scenarios here.
In addition to this, if you need only to add the proxy settings for Monitors (both HTTP and Browser) or S3 (screenshot storage), you can add the following flags to ActiveGate Synthetic user.properties file
com.vuc.proxy.s3.enabled=false com.vuc.proxy.monitor.enabled=true
The above snippet would enable Monitors to use the proxy settings specified in custom.properties, but S3 would bypass the proxy and use a direct connection.
There is no separate setting for Browser and HTTP Monitors; however, Browser Monitors can use PAC files, which can be used to achieve a different proxy for HTTP Monitors and Browser Monitors.
Note: this is usually needed for applications using Kerberos authentication. Before making this change, it would be good to try using the Kerberos authetication option.
For applications that need to be opened in a Browser started by a domain user, you can update the user that the Dynatrace Synthetic service logs on as.
IMPORTANT: Dynatrace does not support this and must be re-configured every time the ActiveGate is updated. We recommend disabling auto-update for these ActiveGates, and a maintenance window to cover the update period, and re-configuring the log-on user.
To revert to using the Local Service user
If this doesn't resolve the issue, open a support ticket.
If none of the previous steps resolved the issue, open a chat or support ticket and provide
You can find further troubleshooting tips for Synthetic in the Synthetic Troubleshooting Map