20 Mar 2024 02:12 PM - edited 25 Feb 2026 04:59 PM
If you're using a Private Synthetic location, at some point, you'll want to check the logs for more information about what you're troubleshooting. Synthetic ActiveGates produce several logs that help diagnose issues with execution, scheduling, and communication in Synthetic Monitoring. This article summarises the most useful of these logs, where to find them, and what they contain.
You can also download the Support Archive from the WebUI by running the Dynatrace ActiveGate Diagnostics. This will only give you up to 7 days of Synthetic logs, so if you need a log that was last written before that, you'll need to find the file directly.
The Synthetic installation log details the installation of the Synthetic module. This is the place to check if you see the Synthetic module update has failed or been skipped. It also provides information on the Chromium autoupdate.
It should be read alongside the Gateway installation log, which is located at:
This log is written when the VUC service starts up and contains information such as the process ID and the port being used. It often contains useful information when the VUC service fails to start up or stops unexpectedly.
This file captures the core VUC functionality logs. It includes logs related to the VUC's connection with the ActiveGate (e.g., localhost:9999/...), as well as startup/shutdown activities, common services, and the loading of configuration properties.
This log provides detailed logging of the Browser Monitor module and includes visit lifecycle and execution messages. It contains information on screenshot storage, WebSocket issues, and other problems encountered during the startup of the Browser module and execution of Browser monitors. The outcome of the diagnostics test on startup can be found in this log by searching for DIAGNOSTICS TEST
This log provides debug-level details from the browser monitor diagnostics tests that are run when the Synthetic module starts up.
This log file details monitor execution events
This provides high-level HTTP Module logging, including monitor start and stop times, script loading, and detailed error information, such as "Unknown Method Error" and "Unexpected Error". The outcome of the diagnostics test on startup can be found in this log by searching for DIAGNOSTICS TEST
Entries in this log are generated from JavaScript execution. You'll find log messages created by the API calls api.info(message), api.warn(message), and api.error(message).
This log file details monitor execution events, including script execution failures, SSL communication errors, DNS query timeouts, and other unexpected errors.
This log provides debug-level details of the diagnostics tests run by the HTTP monitor when the Synthetic module starts up.
This log file details monitor execution events
This log provides high-level NAM, Multi-protocol, module logging, and covers the execution and lifecycle of visits
This log provides debug-level details of the NAM diagnostics tests run when the Synthetic module starts up.
This log file details monitor execution events
This log offers a summary of each VUC startup, including configuration settings and version information.
Location for individual Browser Monitor execution logs:
For archived logs:
Log File Format: <tenant_id>-<test_def_id>-<visit_id>-<timestamp>-ch.log
Hourly archive zip files of execution logs from the logs folder are created in the archivedLogs folder.
These logs provide details on:
If you have any questions about the purpose of a synthetic log file, add a comment.
📖Synthetic Troubleshooting Map
📖 Missing Synthetic screenshots. Information and how to troubleshoot...
📖 Why did the Synthetic Module on a Synthetic ActiveGate fail to update? Showing Failed or Skipped
Hello @HannahM
I would like to leverage the execution logs of the synthetic tests to perform statistics based on these custom events (api.info) for each synthetic test.
I can detect my custom events by looking at the Synthetic Player logs, but there are no attributes to identify the synthetic entity related synthetic testID.
For example, below is a log entry:
How can I map the testID with the dt.entity.synthetic_test related to it ?
Thank you for your help.
Hey Aurelian,
I can't remember how it's calculated right now, but you can find it in the vuc-browser.log by searching for the line where the test is fetched. This shows both the dt.entity.synthetic_test and the test definition ID (TESTID in the log above).
2025-12-29T10:50:50.537Z INFO [v=35146621929205573] [BM-PeriodicVisitFetcher-1] PeriodicVisitFetcher: Fetched to run BrowserVisit[35146621929205573/SYNTHETIC_TEST-A7D5C33596196D80/-6352957064417284736/-6352957064417284736], execType: ON_DEMAND, procMode: PROCESSING_STANDARD, weight: 1, run: 1/1, scriptLastModified: 2025-12-29T10:43:32.670Z, bf: BeaconForwarder{endpoint="https://localhost:9999/beacon/kqu36999", tenant="kqu36999", isSaaS=true}, meta: []]
In this example, SYNTHETIC_TEST-A7D5C33596196D80 is the dt.entity.synthetic_test and -6352957064417284736 is the TESTID.
If you want to find the id the other way, so from a monitor, find it's test definition id in the WebUI, you can check a link for one of the screenshots. For this monitor execution it's https://ruxit-synth-screencap.s3.amazonaws.com/prod-us-east-6-virginia/kqu36999/-6352957064417284736/35146621929205573/Action_1_regular.jpeg
I tried finding it in GRAIL but didn't have any luck. It will be in the browser_monitor_step_execution event, when that goes live next Quarter, but even then it was as part of the screenshot.thumbnail_uri rather than on it's own.
@AurelienGravier apologies, I was obviously having a senior moment. The SYNTHETIC_TEST id and the TESTID from the logs are the HEX/ decimal versions of each other.
So for the example above, A7D5C33596196D80 (in hex) = -6352957064417284736 (in decimal)
Hi @HannahM ,
Sorry for coming back to this quite late, but I was busy with other topics.
Thank you very much, I was able to correlate custom events in the synthetic ActiveGate logs with the name of the synthetic monitor :
This will allow me to set up alerts based on the number of occurrences of custom events in my synthetic tests, generated through api.info().
Thank you very much for your support.
Regards Aurelien