Skip to content

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.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 --sendNetworkPerformanceReports mode
  • Some requests were incorrectly attributed to a website previously measured
  • Using randomize: true in the public config would have caused missing performance reports

v1.32.0 (2025-02-13)

  • Add new commands setLabel and setTags to 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 native keyword from the public config, it is no longer required to enabled them, see reference

v1.30.12 (2024-12-19)

  • Fix --flushDb timeout setting when running startStudy (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 logrotate to 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 checkRegistration command 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 --globalTimeoutGracePeriod option 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 revision to 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-US accept-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 getPublicConfig not 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 useGetAddrInfo to use getaddrinfo instead of dig for 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 time instead of timestamp, and msg instead of message for 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 --enableGpu option not starting the browser
  • Update various internal dependencies

v1.25.2 (2024-07-03)

  • Add support to enable GPU via --enableGpu option

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)

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 sendTimeout parameter 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 cleanupProfile command to help erase browser metrics files

v1.24.5 (2024-02-07)

  • Add logConsoleMessages option to the CLI
  • Add a way to force TCP or ICMP when using traceroute
  • Fix an issue with traceroute studies 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 --enableTcpDump and --enableScreenRecording not working in parallel to running a study
  • Minor internal changes and package updates

v1.24.1 (2023-12-12)

  • Add lockfileWaitTimeout option 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 --logNetworkRequests is 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 --logNetworkRequests is 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 extreme log level to provide network requests only at this level, not for trace

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 --logNetworkRequests is 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 --startOffset parameter 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)

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 dig results (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 --logNetworkRequests and --keepNetworkRequests options for debugging
  • Allow specifying --sendTimeout for the overall study timeout

v1.20.1 (2023-07-19)

  • Add support for ASN resolution in traceroute measurements

v1.20.0 (2023-06-23)

  • Add support for traceroute measurements
  • Add --muted option for browser studies to mute the browser tab

v1.19.6 (2023-06-21)

  • Document --live mode
  • Fix handling of Q keypress 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 --reportFile or --reportDir are now written using snake_case for consistency with the measurement data API.

v1.18.0 (2023-05-15)

  • Add a maxQueryTime attribute to the DnsClientReport for easier analysis of (possibly long) DNS queries

v1.17.3 (2023-05-12)

  • Fix the unregister command 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 --downloadThroughput and --uploadThroughput options to be in kBit/s

v1.17.1 (2023-04-27)

  • Fix the default --deeplinkWaitTimeout and --deeplinkLoadTimeout values to be in seconds rather than milliseconds

v1.17.0 (2023-04-27)

Breaking Changes:

  • The options --waitTimeout and --loadTimeout have been renamed to --deeplinkWaitTimeout and --deeplinkLoadTimeout respectively. 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 --noFullscreen option

v1.15.0 (2023-04-14)

Features:

  • Automatically set the public config from local changes. This means you no longer have to call setPublicConfig manually 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 --screenRecordingTargetUrl option
  • Allow disabling pulseaudio with SURFMETER_DISABLE_PULSEAUDIO environment 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 discardFirstPacket option
  • Allow randomizing web measurement URL order with randomize option
  • 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 --chromeDriverBinary option

v1.10.0 (2023-03-03)

  • Allow setting the Chrome binary with the --chromeBinary option

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_ids in 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