Surfmeter Automator Changelog¶
This is the changelog for Surfmeter Automator. All relevant changes to Surfmeter Automator will be documented here. For Surfmeter Lab, see the Surfmeter Lab changelog
v1.42.2 (2025-10-30)¶
- Fix for Chrome Manifest v3 service worker caches not being cleared properly, leading to old extension versions being used
v1.42.1 (2025-10-30)¶
- Fix for not properly caching registration
- Handle invalid crontab entries during
loadSchedulecommand, allowing users to still schedule tests
v1.42.0 (2025-10-29)¶
- Ensure proper shutdown of processes to prevent unexpected errors
- Improve authorization format for better security and stability
- Switch to Chrome for Testing (recommended in docs) and Chromium for Docker images
v1.41.4 (2025-10-22)¶
- Fix the
httpproberstudydisableHeadersoption
v1.41.3 (2025-10-02)¶
- Load conferencing statistics directly in memory for improved performance
- Update Selenium
v1.41.2 (2025-10-02)¶
- Fix an issue where Chrome and ChromeDriver processes might not be properly shut down
v1.41.1 (2025-10-02)¶
- Improve handling of the WebRTC dump window and add a timeout
v1.41.0 (2025-10-01)¶
- Add new
httpproberstudy type for HTTP probing measurements, see the documentation for details. The data can be seen in ourHttpProberClientReport.
v1.40.2 (2025-09-25)¶
- Reduce logging for fullscreen changes
- Update
flushDb, which now occurs after the study has finished - Fix a bug with error handling and timer management in deeplink processing
v1.40.1 (2025-09-19)¶
- Fix an issue where warnings about
undicicould appear when checking the version
v1.40.0 (2025-09-18)¶
- Add support for
--dynamicMetadatawhich loads data from a JSON file to be merged into the study metadata, see the documentation for details.
v1.39.3 (2025-09-18)¶
- Fix issue with conferencing studies not creating results properly
v1.39.2 (2025-09-17)¶
- Allow setting a different
HEADLESS_RESOLUTIONfor individual runs, even when the permanent X server is running, see headless vs. GUI. - Fix improper cleanup of dangling Xvfb processes
v1.39.1 (2025-09-15)¶
- Improve the user-facing message when a lock file is held
- Provide more debug information about the Node.js version and environment in reports and logs
- Docker: Update Chrome to v140
- Docker: Add a
HEALTHCHECKcommand
v1.39.0 (2025-09-01)¶
- Add a new
filterStallingsThresholdoption - Improve error logging for deep link issues
v1.38.4 (2025-08-28)¶
- Fix timeouts to prevent early teardown of TLS Meter
- Improve sending of content server hostname distribution to the server
v1.38.3 (2025-08-14)¶
- Fix an issue where the WebRTC target window could not be properly closed.
v1.38.2 (2025-08-14)¶
- Fix a JavaScript error that could occur
v1.38.1 (2025-08-01)¶
- Add ability to send debug events to the server
- Fix issue where empty hostnames were output for content server distribution
v1.38.0 (2025-07-30)¶
- Add new
contentServerHostnameDistributionandcontentServerIpAddressDistributionstatistics
v1.37.5 (2025-07-24)¶
- Fix for ChromeDriver not working under Linux/amd64
- Add new
chromeArgsoption to pass additional arguments to Chrome
v1.37.4 (2025-07-22)¶
- Change Docker image to use Chrome on linux/amd64 hosts
v1.37.3 (2025-06-23)¶
- Add support for writing filename for
tcpdumprecordings into the metadata, see the documentation for details. - Add support for writing filename for
screenRecordingrecordings into the metadata, see the documentation for details. - Upgrade to latest Chrome 137 in Docker builds
v1.37.2 (2025-06-10)¶
- Add
--autoOpenDevtoolsoption to automatically open DevTools for all tabs - Fix an issue with Chrome v137 not loading the extension. We recommend using Chromium going forward.
v1.37.1 (2025-05-22)¶
- Improve log messages in the updater
- Reduce logging of fullscreen messages
- Docker improvements:
- Add
surfmeter-lab-automatordirectory to PATH - Fix reboot loop issue when no
automatorConfig.jsonis present andSURFMETER_AUTO_LOAD_SCHEDULEis set - Resolve potential TMPDIR and dbus pid file issues
v1.37.0 (2025-05-19)¶
New features:
- Add support for ad-hoc measurements via URL, see the documentation for details.
Bugfixes:
- Raw console logs would sometimes appear during conferencing measurements
- Do not clear the lockfile if the browser was never started.
v1.36.0 (2025-05-14)¶
- Add support for
optionsin theautomatorConfig.jsonfile, see the documentation for details. This replaces the deprecatedcmdSuffixoption.
v1.35.2 (2025-05-13)¶
- Fix for older ChromeDriver versions crashing with the new capabilities for v136
v1.35.1 (2025-05-09)¶
- Resolve the issue with ChromeDriver v136
- Remove a stray
console.logstatement
v1.35.0 (2025-05-09)¶
- Add note to the setup instructions for ChromeDriver bug related to Chrome v136, see this report.
- Conferencing statistics now include P.1203-related statistics.
v1.34.3 (2025-05-07)¶
- Fix
receivetime calculation for HAR aspects in the Network Performance Report
v1.34.2 (2025-04-22)¶
- No changes
v1.34.1 (2025-04-16)¶
- No changes
v1.34.0 (2025-04-10)¶
- Add support for auto-starting VNC server in the Docker container
- Update Chrome to v134
v1.33.2 (2025-04-04)¶
- Better printing for errors that occur when parsing native study output
- Internal fixes
v1.33.1 (2025-04-03)¶
- Internal fixes
v1.33.0 (2025-03-31)¶
- Add
--adHocPublicConfigoption to allow passing a public config for ad-hoc studies.
v1.32.7 (2025-03-24)¶
- Update Selenium and Chrome DevTools Protocol packages
v1.32.6 (2025-03-18)¶
- Fix a bug where the extension could not be reloaded from disk in recent Chrome
v1.32.5 (2025-03-17)¶
- Fix for crashed tabs resulting in hanging measurements
v1.32.4 (2025-03-04)¶
- Internal changes
v1.32.3 (2025-02-26)¶
- Fix for hanging measurements if server is not reachable
v1.32.2 (2025-02-21)¶
- Fix files not being cleaned up on hard timeout
v1.32.1 (2025-02-18)¶
- Fix for incorrect network requests being recorded in the
--sendNetworkPerformanceReportsmode - Some requests were incorrectly attributed to a website previously measured
- Using
randomize: truein the public config would have caused missing performance reports
v1.32.0 (2025-02-13)¶
- Add new commands
setLabelandsetTagsto update client labels and tags after registration
v1.31.5 (2025-02-12)¶
- Fix too long filenames for reports and screen recordings, now limited to 255 characters
v1.31.4 (2025-02-10)¶
- Fix for traceroute warnings under macOS breaking the parsing
v1.31.3 (2025-01-31)¶
- Fix the format of network request performance reports
- Throw an error on invalid crontab syntax
- Update Docker to compatible Chrome version
- Do not enable 'performance' features for Chrome via DevTools Protocol
v1.31.2 (2025-01-27)¶
- Fix network performance report collection for differing domains
- Update for compatible Chrome version
v1.31.1 (2025-01-27)¶
- Update Chrome version for Docker
v1.31.0 (2025-01-27)¶
- Add support for sending network performance reports to the server via
--sendNetworkPerformanceReports - Remove
nativekeyword from the public config, it is no longer required to enabled them, see reference
v1.30.12 (2024-12-19)¶
- Fix
--flushDbtimeout setting when runningstartStudy(it previously aborted the flush DB action too early)
v1.30.11 (2024-12-18)¶
- Fix for hanging driver quit process, preventing the lock file from being released
v1.30.10 (2024-12-05)¶
- Add
logrotateto Docker image - Update Docker Chrome version
v1.30.9 (2024-12-04)¶
- Introduce study banner texts in web environments for better logging (requires v1.30.5 of Surfmeter Lab)
- Fix UUID in naming output reports
- Decrease logs in dev tools protocol
v1.30.8 (2024-12-04)¶
- Bundle Ookla Speedtest CLI with Surfmeter Automator
- Improve speed of
checkRegistrationcommand with caching
v1.30.7 (2024-12-04)¶
- Fix for DNS tests that use Node.js natively, when querying nonexistent domains
v1.30.6 (2024-11-26)¶
This release contains several bugfixes and internal improvements for global timeouts:
- Add a new
--globalTimeoutGracePeriodoption to allow global timeouts to be able to send results to the server, but hard-exit if needed - Fix timeouts for native studies to properly quit any remaining processes and wait for the browser to exit
- Fix issues with lingering ffmpeg/tcpdump PIDs after timeouts
- Fix issue where aborted measurements would not be sent to the server after global timeouts
Also:
- Fix displaying of deep link errors in the log
v1.30.5 (2024-11-19)¶
- Make extra properties allowed in the config file schema
v1.30.4 (2024-11-19)¶
- Add
revisionto the config file schema - Write the client UUID to the cache file for easier debugging
v1.30.3 (2024-11-18)¶
- Update Docker base image to Debian 12, and ensure Docker build always runs with latest Chromium version
v1.30.2 (2024-11-13)¶
- Internal changes to support other fullscreen APIs
- Add remote/local candidates to WebRTC statistics
v1.30.1 (2024-10-31)¶
- Force the browser to use
en-USaccept-language headers, to avoid issues with measurements of some websites (we rely on some particular labels being present in the English version of the page) - For conferencing, dump the P.1203 client report in
LOG_LEVEL=debug
v1.30.0 (2024-10-21)¶
- Change internal format of deep links – this requires Surfmeter Lab v1.30.0 or higher to function
- Add option to send all logged network requests via the Chrome DevTools Protocol with
--sendNetworkRequests
v1.29.1 (2024-10-18)¶
- Fix for
getPublicConfignot writing the actual config into the file
v1.29.0 (2024-10-07)¶
- Add experimental support for conferencing measurements with Google Meet
- Bump minimum required Surfmeter Lab version to v1.29.0
v1.28.2 (2024-10-02)¶
- Add option
useGetAddrInfoto usegetaddrinfoinstead ofdigfor DNS resolution - Change default DNS queries to 1 instead of 5 to avoid caching issues
v1.28.1 (2024-09-23)¶
- Allow setting a default registration key via environment variable
SURFMETER_DEFAULT_REGISTRATION_KEY
v1.28.0 (2024-09-23)¶
- Require Node.js v20 or higher (we keep compatibility with v18 for now)
- Internal code cleanup
v1.27.0 (2024-09-06)¶
- Fix for ffmpeg processes not being killed when the automator exits
- Feature to generate fake media files for conferencing tests
- Docker: Improve entrypoint logging and harmonize JSON log output
- Docker: Print all errors to stderr by default
- Docker: Print
timeinstead oftimestamp, andmsginstead ofmessagefor server logs to be consistent with the Automator itself
v1.26.0 (2024-08-26)¶
- Add structured JSON logs for Docker server
- Add option to automatically register Docker containers with the server, see the Docker documentation for details.
v1.25.6 (2024-08-01)¶
- Add more logs to Docker entrypoint
- Prevent chrome search choice popup from blocking measurements
v1.25.5 (2024-07-31)¶
- Add option to automatically load the schedule for Docker setups upon container start, see the Docker documentation for details.
v1.25.4 (2024-07-29)¶
- Fix global timeout handling, so that studies are still sent if aborted
v1.25.3 (2024-07-11)¶
- Fix issue with
--enableGpuoption not starting the browser - Update various internal dependencies
v1.25.2 (2024-07-03)¶
- Add support to enable GPU via
--enableGpuoption
v1.25.1 (2024-05-21)¶
- Fix CLI description for
--startOffset - Do not disable component updates (needed for Widevine etc.) to fix DRM playback under macOS
v1.25.0 (2024-05-06)¶
- Allow passing multiple
--startOffsetoptions to delay individual studies - Add new performance-related Chrome options (disabling background timer throttling and other unnecessary features), see https://https://github.com/GoogleChrome/chrome-launcher/blob/master/src/flags.ts for details
v1.24.13 (2024-04-12)¶
- Fix a rare race condition during video measurements that may lead to a crash
v1.24.12 (2024-04-10)¶
- Allow Netflix trailer fullscreen measurements (requires Surfmeter Lab v1.27.9 or higher)
v1.24.11 (2024-04-08)¶
- Log browser messages also on global timeout
v1.24.10 (2024-03-22)¶
- Internal changes to Docker API
v1.24.9 (2024-03-20)¶
- Fix for the
sendTimeoutparameter not being used during overall timeout calculation
v1.24.8 (2024-02-20)¶
- Delete browser metrics before every Chrome launch
v1.24.7 (2024-02-15)¶
- Fix detection of multiple ASNs per host in the traceroute study evaluation
v1.24.6 (2024-02-14)¶
- Add
cleanupProfilecommand to help erase browser metrics files
v1.24.5 (2024-02-07)¶
- Add
logConsoleMessagesoption to the CLI - Add a way to force TCP or ICMP when using
traceroute - Fix an issue with
traceroutestudies not parsing output properly in case of interspersed messages from stdout/stderr
v1.24.4 (2024-01-02)¶
- Fix an issue with aborted studies running in sequential mode (the study would not be aborted properly and would continue running)
v1.24.3 (2024-01-10)¶
- Fix a possible crash when cleaning up lockfile
- Minor internal updates
v1.24.2 (2023-12-19)¶
- Fix an issue with
--enableTcpDumpand--enableScreenRecordingnot working in parallel to running a study - Minor internal changes and package updates
v1.24.1 (2023-12-12)¶
- Add
lockfileWaitTimeoutoption to allow waiting for the lockfile to be released
v1.24.0 (2023-12-08)¶
- Allow sending statistics from Automator (video response time, content server hostname and IP address) to the server when
--logNetworkRequestsis enabled
v1.23.5 (2023-11-24)¶
- Improve handling of aborted native studies – individual failing commands now produce their own aborted measurement on the server; the remainder of the study is still executed
v1.23.4 (2023-11-24)¶
- Fix for
reloadExtensionFromDisk - Close browser on global timeout firing
v1.23.3 (2023-11-24)¶
- Fix for
reloadExtensionFromDisk - Fix: Do not attempt to write reports on non-startStudy commands in case of global timeout
v1.23.2 (2023-11-23)¶
- Change video response time calculation to begin with
sendEnd - Internal package updates
v1.23.1 (2023-11-07)¶
- Minor internal fixes
v1.23.0 (2023-11-07)¶
- Change the report output format to
snake_case
v1.22.0 (2023-11-07)¶
- Set the video response time from network requests if
--logNetworkRequestsis specified
v1.21.11 (2023-11-04)¶
- Allow proper unregistration of Surfmeter Lab clients by returning license keys to the pool (requires Surfmeter Lab v1.24.4 or higher)
v1.21.10 (2023-10-31)¶
- Add new
extremelog level to provide network requests only at this level, not fortrace
v1.21.9 (2023-10-30)¶
- Fix for network request logging and content server detection: Flush caches before analysis
v1.21.8 (2023-10-30)¶
- Hotfix for previous release: Make Surfmeter Lab based studies work again
v1.21.7 (2023-10-30)¶
- Fix for parallel native studies not being run at the same time
v1.21.6 (2023-10-25)¶
- Add content server IP address and hostname to video measurement statistic values, when
--logNetworkRequestsis specified. This identifies the most important content server for the video measurement based on some heuristics.
v1.21.5 (2023-10-23)¶
- Improve handling of native studies composed of multiple individual commands. Individual command failures no longer cause the entire test to fail. More robust shell escaping.
- Improve trace logging
v1.21.4 (2023-10-10)¶
- Fix an issue with the program exiting with an error when a global timeout is raised
v1.21.3 (2023-10-05)¶
- Internal changes
v1.21.2 (2023-10-04)¶
- Add
--startOffsetparameter for starting studies in a delayed fashion
v1.21.1 (2023-10-04)¶
- Improvements in fullscreen handling
- Write reports on exit even if no study data was produced
v1.21.0 (2023-09-15)¶
- Improve reports format (this is a breaking change), see the reports documentation for details.
v1.20.9 (2023-08-22)¶
- Fixed an issue with negative ping packet loss values being reported
v1.20.8 (2023-08-21)¶
- Fixed parsing of ping domain names with dashes
v1.20.7 (2023-08-21)¶
- Fixed parsing of individual pings that contain domain names in addition to IP addresses
v1.20.6 (2023-08-18)¶
- Improved error message for duplicated cron schedules
v1.20.5 (2023-08-18)¶
- Minor bugfixes
v1.20.4 (2023-08-18)¶
- This version was skipped
v1.20.3 (2023-08-18)¶
- Fixes for ICMP ping warmup packets (now they are sent in the same sequence as other packets)
- Expose VNC port in Docker by default
- Get
digresults (DNS) with microsecond precision
v1.20.2 (2023-07-31)¶
- Refactor internal handling of tracking network requests:
- Cache requests in a dedicated temporary file
- Add
--logNetworkRequestsand--keepNetworkRequestsoptions for debugging - Allow specifying
--sendTimeoutfor the overall study timeout
v1.20.1 (2023-07-19)¶
- Add support for ASN resolution in
traceroutemeasurements
v1.20.0 (2023-06-23)¶
- Add support for
traceroutemeasurements - Add
--mutedoption for browser studies to mute the browser tab
v1.19.6 (2023-06-21)¶
- Document
--livemode - Fix handling of
Qkeypress during live mode - Fix running of sequential browser-based studies
v1.19.5 (2023-06-05)¶
- Fix output filenames for PCAP and screen recording to not use
:and-(for easier parsing and compatibility with Windows)
v1.19.4 (2023-06-05)¶
- Internal fixes
v1.19.3 (2023-06-05)¶
- Add method to reload Surfmeter extension from disk (mostly for internal use)
v1.19.2 (2023-06-05)¶
- Fix for native studies not working due to a timeout value being NaN
v1.19.1 (2023-06-03)¶
- Add experimental support for live measurements
- Various internal fixes
v1.19.0 (2023-05-15)¶
- Reports created from
--reportFileor--reportDirare now written usingsnake_casefor consistency with the measurement data API.
v1.18.0 (2023-05-15)¶
- Add a
maxQueryTimeattribute to theDnsClientReportfor easier analysis of (possibly long) DNS queries
v1.17.3 (2023-05-12)¶
- Fix the
unregistercommand so that the profile is deleted, and a warning is issued if the profile cannot be deleted
v1.17.2 (2023-05-11)¶
- Fix the
--downloadThroughputand--uploadThroughputoptions to be in kBit/s
v1.17.1 (2023-04-27)¶
- Fix the default
--deeplinkWaitTimeoutand--deeplinkLoadTimeoutvalues to be in seconds rather than milliseconds
v1.17.0 (2023-04-27)¶
Breaking Changes:
- The options
--waitTimeoutand--loadTimeouthave been renamed to--deeplinkWaitTimeoutand--deeplinkLoadTimeoutrespectively. Please adjust your configuration if needed. - This release is not backwards-compatible with Surfmeter Lab < v1.23.0 and requires an update of Surfmeter Lab
Features:
- Add support for standalone builds of Surfmeter Lab, writing extended measurement reports
Fixes:
- Harmonized timeouts so that study timeouts are automatically increased if needed, and that all timeouts are in seconds rather than milliseconds
v1.16.1 (2023-04-24)¶
Fixes:
- Trap SIGINT and SIGTERM signals to properly exit the Automator, and clear the browser lockfile
- Show better error messages on ChromeDriver instantiation failures
v1.16.0 (2023-04-19)¶
- Allow disabling fullscreen during measurements with
--noFullscreenoption
v1.15.0 (2023-04-14)¶
Features:
- Automatically set the public config from local changes. This means you no longer have to call
setPublicConfigmanually when you change the local config. - Allow running native Chrome headless mode with
--headless. This is useful for running the browser in non-Linux environments. - Surfmeter Lab v1.21.1 added output of the measurement ID in the report
Fixes:
- Internal improvements
- Surfmeter Lab v1.21.4 fixed measurements for ZDF Live
v1.14.1 (2023-03-13)¶
Fixes:
- Fix initial update of Surfmeter Lab extension when directory does not exist
- Increase ffmpeg encoding buffer time to 5 seconds after study finish
- Do not show an error if ffmpeg was cleanly exited
- Create the ffmpeg recording output directory if it does not exist
- Internal improvements
v1.14.0 (2023-03-29)¶
Features:
- Allow streaming to SRT output source with
--screenRecordingTargetUrloption - Allow disabling pulseaudio with
SURFMETER_DISABLE_PULSEAUDIOenvironment variable
v1.13.4 (2023-03-28)¶
- Minor internal changes
v1.13.3 (2023-03-28)¶
- Minor internal changes
v1.13.2 (2023-03-28)¶
- Minor internal changes
v1.13.1 (2023-03-22)¶
- Fix showing errors from sending measurement data
- Minor internal changes
v1.13.0 (2023-03-20)¶
- Allow recording audio during screen recordings (Linux only)
v1.12.0 (2023-03-17)¶
- Allow ignoring first packets during ping measurements with
discardFirstPacketoption - Allow randomizing web measurement URL order with
randomizeoption - Statistic values for video are now calculated directly (requires Surfmeter Lab v1.20.0 or higher) and output in the measurements report JSON. Note that this is experimental and subject to change.
v1.11.1 (2023-03-14)¶
- Refactor logs for native study sending
- Fix issues with sending native study data in case the study was aborted
v1.11.0 (2023-03-03)¶
- Allow setting the ChromeDriver binary with the
--chromeDriverBinaryoption
v1.10.0 (2023-03-03)¶
- Allow setting the Chrome binary with the
--chromeBinaryoption
v1.9.7 (2023-03-02)¶
- Minor internal changes.
v1.9.6 (2023-03-02)¶
- Allow creating the same cron job twice with different schedules. Previously they'd be ignored.
v1.9.5 (2023-03-02)¶
- Send parallel native studies in the same study chain. This allows getting the
study_chain.study_idsin the measurement data for parallel studies.
v1.9.4 (2023-03-01)¶
- Log error while sending native study result
v1.9.3 (2023-02-24)¶
- Prune more attributes from Lighthouse reports
v1.9.2 (2023-02-20)¶
- Fix: do not create temp files that will not be used
v1.9.1 (2023-02-17)¶
- Fix a bug in Google Lighthouse command options
v1.9.0 (2023-02-17)¶
- Add an option to flush previously unsent measurements before a study ("--flushDb")
v1.8.4 (2023-02-14)¶
- Minor fixes
v1.8.3 (2023-02-13)¶
- Minor fixes
v1.8.2 (2023-02-11)¶
- Decrease log volume
v1.8.1 (2023-02-10)¶
- Allow getting the public config stored inside Surfmeter Lab with the "getPublicConfig" action
v1.8.0 (2023-02-08)¶
- Allow storing generated reports in one directory with the "--reportDir" option
v1.7.1 (2023-02-07)¶
- Minor fixes
v1.7.0 (2023-02-07)¶
- Add initial Google Lighthouse support