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
andsetTags
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 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
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 usegetaddrinfo
instead ofdig
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 oftimestamp
, andmsg
instead ofmessage
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)¶
- Allow passing multiple
--startOffset
options 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
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 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
--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)¶
- 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
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 usingsnake_case
for consistency with the measurement data API.
v1.18.0 (2023-05-15)¶
- Add a
maxQueryTime
attribute to theDnsClientReport
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