New features:
-
fortio now sports a (tcp) proxy mode: use multiple
-P "sourceport destination:port"
in the command line or usefnet.Proxy*
functions. -
fortio curl -L url
, likecurl
will now follow redirects (and new matchingFollowRedirects
option too, not to be used for load tests). On the command line-L
is shortcut for both follow redirect and using the stdclient (decoding the data part, vs raw output from fast client). Sofortio curl -L ...
can be used for downloads.
Code refactoring, more reusable library components:
-
FetchURL
andFetch
helper functions wrapping 1 time use client to help write 1 liner readiness -
Lot of reusable code moved to
fnet/
,fgrpc/
andfhttp/
packages to further increase fortio's utility as a go library. http code split into client, server and utils. Grpc cleanup and test coverage increases across the board (to 90%+) so the grpc ping and health clients can be used as a library / from istio tests (like pilot’s). For instancefhttp.RedirectToHTTPS
,NewHTMLEscapeWriter
,SetupPPROF
,FetcherHandler
proxy,LogRequest
,OnBehalfOf
to the public fhttp library api.
Other Changes:
-
-maxpayloadsizekb
can now be specified to change the default max for the?size=
echo argument. Thanks @kidiyoor for the PR #190. -
The fortio remote trigger url doesn't require a percentiles list anymore to get the default one - so for instance
http://you-fortio-server:8080/fortio/?labels=Fortio&url=http%3A%2F%2Flocalhost%3A8080%2Fecho&t=3s&qps=1000&save=on&load=Start
is enough to trigger a valid run with standard p50, p75, p90, p99, p99.9 percentiles - Thanks @olimpias for the PR #164. -
Removed the code that allowed illegal urls in the UI containing verbatim
%
characters; so now if you want a 33% 503 error rate use "...&status=503:33" or "...&status=503:33%25" in the UI (this is to fix #181) - Thanks @sayedasadali for the PR #203. -
added go version in
fortio version
output (version.Long()
) -
changed
-httpreqtimeout
flag to just-timeout
-
solved README.md wrapping of fortio command help text using new
release/updateFlags.sh
-
Allow
fnet.Resolve()
to work with already resolved[Ipv6]:port
-
Fixed Runner (http client) leak (in UI)
-
Overall more consistent handling of initial bind error, exit without panic/logFatal
All the changes: v0.7.3...v0.8.0