This is the multi-page printable view of this section. Click here to print.
Releases
Check out latest release updates
1 - Release Notes
Summary of the main features and/or fixes by release
0.27.1 (2024-11-20)
- Add run persistence monitoring by @lampajr in #499
- Embed the report template in the clustering module by @lampajr in #503
0.27 (2024-10-22)
- Upgrade to JDK 17
- Extends max sequences and requests wrk settings to HTTP 2 as well
- Fixes #385 Optimize 0 and 1 Sequence’s concurrency on HTTP
- Better tune calibration wrk2 phase
- Avoid byte[] allocation per event object
- Export standard deviation for response time
- Add max response time in CLI stats
- Rate generators refactoring and compensation unification
- Add simulation initialization time log
- Make HTTP cache configurable
- Skip benchmark validation run on wrk/wrk2
- Rate generators session pool workstealing
- Reduce maxRequests to 1 for Wrk HTTP 1.1
- Add utility hyperfoil run script
- Replace HyperfoilChannelLookup
- Bump version.infinispan from 15.0.8.Final
- Bump org.jboss.logging:jboss-logging to 3.6.0.Final
- Bump org.yaml:snakeyaml to 2.2
- Fix incorrect log messages
- Migrate tests to junit 5
- Generic improvements in the CI
0.26 (2024-05-31)
- Remove java.net.preferIPv4Stack=true
- Disable automatic report opening with –silent option
- Throw exception for misconfigured multi-host HTTP benchmark
- Add agent property to configure the ssh key used
- Set CPU Request in Benchmark
- s390x: Define utf-8 encoding in compiler plugin
- Dependecies upgrades, e.g., infinispan and vertx
0.25.2 (2023-08-03)
- Bug fix: Version command not working
0.25.1 (2023-08-02)
- Update dependencies
0.25 (2023-06-28)
- startWith: Delay feature
- Enhancements
- Bug fixes
0.24.2 (2023-05-02)
- Bug fix and enhancements
0.24.1 (2023-02-02)
- Return correct protocol
- Validate wrk benchmark before running simulation
0.24 (2022-12-15)
- Initial support for Mac OS/x86_64
- Fix serialization for Timestamp
- Dependency updates
0.23 (2022-10-31)
- Fix for HTTP2 requests not flushing request body
- Reimplemented randomCsvRow CSV parsing and quotes handling
- Command
upload
in CLI/WebCLI now accepts URL
0.22 (2022-09-19)
- Fixes and output synchronization in
wrk
/wrk2
commands - Fixes for aarch-64
- Formatting in
timestamp
step - When a template is missing referenced file CLI asks user to provide it
- One-key switch for interactive statistics in CLI
0.21 (2022-07-12)
- Minor bugfix-only release.
0.20 (2022-05-26)
- Vert.x 4.3 and Infinispan 13 for clustering
- Bugfixes in templating and documentation
0.19 (2022-02-22)
- Minor release with bugfixes
- Generic HTML tag parser: parseHtml.onTagAttribute
0.18 (2021-12-16)
- New benchmark templating system:
!param
,!concat
and!foreach
- Mechanisms for storing global, agent-wide and thread-wide data
- Improved error reporting and logging
- HTTP endpoints can be referred to using a name rather than authority (host:port combination)
- Custom SLAs: Tests that have external statistics can place SLAs on these.
- Closed-model phases can be configured with
.usersPerAgent
and.usersPerThread
- New actions for manipulating collections
- New step and action for restarting current sequence
- New action for marking request as invalid manually
- Other utility processors and added properties on existings steps/actions
- Fix various issues with statistics from auxiliary verticles.
0.17 (2021-10-21)
- More options for configuration of agent pods (resources, labels…) - courtesy of Stephen Connolly
- Upgrade of Apache MINA
0.16 (2021-06-11)
- This release removes some code-bloat for extension developers, using reflection to scan the scenario:
- Session variables do not need to be explicitly reserved in
ResourceUtilizer.reserve()
method. - Components owning another components do not have to propagate the resource resevation calls.
- Session variables do not need to be explicitly reserved in
- Automatic check for reading from a variable that’s never written to.
- Controller can loads statistics from old runs (therefore CLI can show stats from runs before reboot)
- Statistics from old runs are unloaded in order to prevent running out-of-memory in constrained environments.
- Phases can now be marked with
isWarmup: true
- reporting can hide data from these phases by default - Agents deployed via SSH can set list of cpus on which to run (using taskset).
- Self-checks for excessive CPU usage on agents, record CPU usage in each phase.
- Various fixes and improvements in WebCLI.
0.15 (2021-04-09)
- Introduced statistics for connections (#connections by type, active connections and in-flight requests…)
- New connection strategies: Open connections for each session/request
ergonomics.privatePools
replaced byhttp.connectionStrategy
http.sharedConnections
can be set using sub-propertiescore
,max
,buffer
andkeepAliveTime
.- Dropped
RequestProcessorBuilder
andHttpRequestProcessorBuilder
in favor ofProcessor.Builder
- If the processor is used in an incompatible context it should cause a runtime error
- POC support for Hot Rod protocol connecting to Infinispan clusters.
- k8s deployer: agent labels and tolerations
- Many improvements to WebCLI, notably automatic reconnect and
plot
command - Statistics rework: HTTP-related statistics are separated into extensions, some fields were dropped or renamed
- Report schema changed to v3.0 to reflect this (+piggybacked agent address/name changes)
- Upgrade to Vert.x 4.0
0.14 (2021-02-22)
- Significant refactoring of HTTP-related code into its own module
- Programmatic configuration requires some changes but there were no changes for YAML definitions
- Hyperfoil Controller now serves WebCLI at root path
- OpenAPI definition moved to
/openapi
- OpenAPI definition moved to
0.13 (2021-01-28)
This is mostly a bugfix release with minor convenience improvements.
- Run CLI in container simply using
docker/podman run -it --rm --network=host quay.io/hyperfoil/hyperfoil cli
0.12 (2020-12-16)
- Hyperfoil now requires JDK 11
- BREAKING CHANGE: extra files are now loaded relative to benchmark YAML file, not working directory
- CLI improvements:
- Upload benchmarks in text-mode (lower chance of serialization issues)
- Ask for re-upload of extra files
inspect
command to reveal detailed structure of the benchmark
- Status 4xx and 5xx is not counted as error for purposes of
SLA.errorRatio
(useSLA.invalidRatio
) - Hyperfoil controller can be exposed using HTTPS and offers Basic authentication scheme.
- Mode with coordinated-omission compensation: see httpRequest.compensation.
- Support for GZIP compression of responses: see httpRequest.compression.
- New generator step:
randomFile
- Image build now can be done using
podman
0.11 (2020-11-18)
- Fix a critical memory leak in the use of Netty’s direct buffers.
- Fix problems in HTML redirect.
0.10 (2020-11-13)
- Explicit concurrency limits on sequences, e.g
mySequence[6]
.maxSequences
on scenario is not used anymore.
- Concurrent sequences have its own copy of each resource by default.
- Reworked
loop
step. - Renamed
simple
recorder (processor) tostore
. - Step
httpRequest
now implementshandler.followRedirect
, automatically sending another request(s) upon 3xx status or <meta http-equiv=“refresh” …> in HTML. - HTTP 1.1 is now implemented without relying on Netty’s parser - saving allocations (HTTP 2.0 is still TODO).
- Reworked ways to modify other parts of the benchmark from withing the builder (Locator).
- Reduced need for boilerplate code in builders.
- Many bugfixes and small improvements.
0.9 (2020-05-28)
This is a bugfix-release.
0.8 (2020-04-24)
- Renamed phase types:
constantPerSec
→constantRate
rampPerSec
→increasingRate
/decreasingRate
- Change meaning of
SLA.blockedRatio
: the value should be between 0 and 1 (inclusively) where 1 allows blocking without limits. - New SLA check
invalidRatio
. - 4xx and 5xx responses mark the request as invalid by default (configurable through
ergonomics.autoRangeCheck
). - When a response is marked as invalid session execution stops immediately (configurable through
ergonomics.stopOnInvalid
). - Implemented replace and delete operation in the
json
step and processor. responseSizeRecorder
replaced withtransferSizeRecorder
, calculating uploaded bytes as well.- Agents now host a
default
section where you can define common configuration. - Each agent can have different number of threads, using the
threads
property. - Report schema changed, now using schema
http://hyperfoil.io/run-schema/v2.0
0.7.1 (2020-02-26)
Bugfix-only release.
- Fixed threading model when using
wrk
command - Fixed HTTP parsing for
rawBytesHandlers
- Fixed
stop
used either as step or in a handler
Please see git log
for info about older releases.