Skip to content

Tags: tandd1123/vegeta

Tags

v12.7.0

Toggle v12.7.0's commit message
Fix .goreleaser to work with new unified versioning

We no longer split library and cli versions.

v12.6.0

Toggle v12.6.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
attack: Add -max-workers flag (tsenart#421)

* attack: Add -max-workers flag

This commit introduces the `-max-workers` flag and associated function
options. This allows controlling the concurrency level that vegeta uses,
but can sacrifice reaching the requested `-rate`, in case the specified
max number of workers is below the what is needed to sustain such rate.

* Updated README

* Update README.md

cli/v12.5.1

Toggle cli/v12.5.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
attack: Measure latency when requests timeout (tsenart#404)

Fixes tsenart#402

cli/v12.5.0

Toggle cli/v12.5.0's commit message
Introduce Pacer interface, ConstantPacer and SinePacer. (tsenart#400)

* Introduce Pacer interface and ConstantPacer.

The Pacer interface allows vegeta's attack rate to be customized.
Attack code keeps track of the elapsed attack duration and the number
of hits sent and provides these to Pace, which must return a Duration
for the attack code to sleep for before sending the next hit. Pace may
also return true for the second stop value to terminate the attack.

This interface allows vegeta to model a wider range of attack scenarios,
such as diurnal request patterns or load-test behaviour, where the
attack rate increases until the target begins to serve errors.

* Add SinePacer, for sinusoidal attack rates.

SinePacer is a Pacer that describes attack request rates with the
equation Rate = Mean * Amplitude * sin(Offset + t * (2𝛑 / Period)).

Both the Mean and Amplitude rates are expressed with ConstantPacer.

cli/v12.4.0

Toggle cli/v12.4.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
attacker: Simplify timeout configuration (tsenart#397)

* attacker: Simplify timeout configuration

This commit simplifies the timeout configuration internally to make use
of the `http.Client.Timeout` field which didn't exist when this code was
originally written.

It also fixes tsenart#396: a test flake of `TestTimeout`.

* Update lib/attack_test.go

v12.3.0

Toggle v12.3.0's commit message
refactor: Use t.Fatal instead of t.Error

This commit changes instances of t.Error followed by an immediate return
with t.Fatal, where valid.

Up until today I thought that t.Fatal didn't run defers.

I was [wrong](tsenart#386 (comment))
as @dominikh pointed out.

lib/v12.3.0

Toggle lib/v12.3.0's commit message
refactor: Use t.Fatal instead of t.Error

This commit changes instances of t.Error followed by an immediate return
with t.Fatal, where valid.

Up until today I thought that t.Fatal didn't run defers.

I was [wrong](tsenart#386 (comment))
as @dominikh pointed out.

cli/v12.3.0

Toggle cli/v12.3.0's commit message
refactor: Use t.Fatal instead of t.Error

This commit changes instances of t.Error followed by an immediate return
with t.Fatal, where valid.

Up until today I thought that t.Fatal didn't run defers.

I was [wrong](tsenart#386 (comment))
as @dominikh pointed out.

v12.2.1

Toggle v12.2.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
attack: Force monotonic timestamp marshalling (tsenart#377)

* attack: Force monotonic timestamp marshalling

This commit forces result timestamps to be monotonically increasing.

This is necessary because the built-in monotonic time reading of the standard
library time package is discarded when marshalling a time.Time instance.

This can lead to non-monotonic timestamps in vegeta results of a single
attack.

Although an explicit decision as stated in the time package documentation,
this assumption seems surprising to me.

From: https://golang.org/pkg/time/#hdr-Monotonic_Clocks

> Because the monotonic clock reading has no meaning outside the current
> process, the serialized forms generated by t.GobEncode, t.MarshalBinary,
> t.MarshalJSON, and t.MarshalText omit the monotonic clock reading,
> and t.Format provides no format for it. Similarly, the constructors
> time.Date, time.Parse, time.ParseInLocation, and time.Unix, as well as
> the unmarshalers t.GobDecode, t.UnmarshalBinary. t.UnmarshalJSON, and
> t.UnmarshalText always create times with no monotonic clock reading.

* Add github.com/gavv/monotime to Gopkg.*

* fixup! Remove redundant monotime dependency

lib/v12.2.1

Toggle lib/v12.2.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
attack: Force monotonic timestamp marshalling (tsenart#377)

* attack: Force monotonic timestamp marshalling

This commit forces result timestamps to be monotonically increasing.

This is necessary because the built-in monotonic time reading of the standard
library time package is discarded when marshalling a time.Time instance.

This can lead to non-monotonic timestamps in vegeta results of a single
attack.

Although an explicit decision as stated in the time package documentation,
this assumption seems surprising to me.

From: https://golang.org/pkg/time/#hdr-Monotonic_Clocks

> Because the monotonic clock reading has no meaning outside the current
> process, the serialized forms generated by t.GobEncode, t.MarshalBinary,
> t.MarshalJSON, and t.MarshalText omit the monotonic clock reading,
> and t.Format provides no format for it. Similarly, the constructors
> time.Date, time.Parse, time.ParseInLocation, and time.Unix, as well as
> the unmarshalers t.GobDecode, t.UnmarshalBinary. t.UnmarshalJSON, and
> t.UnmarshalText always create times with no monotonic clock reading.

* Add github.com/gavv/monotime to Gopkg.*

* fixup! Remove redundant monotime dependency