| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Will Hawkins <[email protected]>
|
|
Including instructions for how to build.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Removed loss printout
|
|
|
|
Now that tests are run in sequence, it seems like a good idea to support
extended statistics in both directions.
Fixes #58
h/t @moeller0
Signed-off-by: Will Hawkins <[email protected]>
|
|
With this feature, the user can use `--relative-rpm` to gather
additional data: a relative RPM. The relative RPM score
1. Calculates an RPM before working conditions are achieved.
2. Achieves working conditions (upload and download)
3. Calculates an RPM under working conditions (upload and download)
4. Calculates the percent difference between the RPM calculated in (1)
and the RPMs calculated in (3).
Signed-off-by: Will Hawkins <[email protected]>
|
|
I was accessing a lock-protected channel without holding the lock. That
definitely seems to defeat the purpose of having the lock in the first
place.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Despite having parameterized the percentile for RPM calculations, I
failed to actually use it when calculating the RPM. Oops.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Checking a previously defined/set error value in most cases when filling
in a data series. This patch properly redefines the error variable so
that the appropriate check is made.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Some new(ish) files were missing license text.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Signed-off-by: Will Hawkins <[email protected]>
|
|
This approach *seems* like a good idea.
Signed-off-by: Will Hawkins <[email protected]>
|
|
It is not an error (per se) for a probe not to be able to be sent when
the context of its execution is cancelled. Log the error when debugging
only.
Signed-off-by: Will Hawkins <[email protected]>
|
|
It was possible for a user of percentile-calculation functions to
request a percentile that caused the underlying array of values to be
accessed out of bounds. This patch fixes that error.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Make the percentile used by RPM calculations user-controlled. Note: A
percentile-based calculation is not part of the spec. This is an
optional feature.
Signed-off-by: Will Hawkins <[email protected]>
|
|
The upload direction reused bucket IDs used during the test in the
download direction which caused an incorrect grand-total RPM
calculation. To solve the problem, this patch adds a global bucket
ID generator and passes that to everyone that needs it.
TODO: Make the bucket generator type more generic.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Added QoO and Cablelabs latency histogram
|
|
* Added units to printout
* Made QualityRequirement and PercentileLatencyPair private
*Removed the hist struct from the SimpleQualityAttenuation struct
(it was only used for testing)
|
|
|
|
Among other major feature additions, this version of the client tracks
any measurements that may be long delayed and considers their presence
or absence as part of a stability measurement.
This version of the client also more closely tracks the spec. In
particular, it performs a sinle-sided trimmed mean rather than a
double-sided trimmed mean.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Missing source file from commit -- direction.go.
|
|
Beginning of a release candidate for support for IETF 02 tag of the
responsiveness spec.
|
|
Thank you to @gregbo.
Fixes #54.
|
|
[Bugfix] Global adherence to max concurrent streams
|
|
If a connection in a connection pool is asked for an additional stream
that puts it over the limit of the max concurrent connections, the
connection pool will spawn a new connection. This behavior is not what
we want -- we would prefer that the new connection just wait its turn.
Setting the `http2/Transport.StrictMaxConcurrentStreams` flag will
accomplish that.
|
|
Implemented basic Quality Attenuation
|
|
Fixed silly error in calculating sample variance
|
|
When a probe does not properly reuse an existing connection, do some
additional logging to help the debugging process.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thanks to integration of `gofumpt` it is easier to catch places where
the lines are *way* too long.
|
|
Using `gofumpt` via `gopls` makes it easier to maintain our
100-character-per-line limit. A `settings.json` file makes it easier to
configure and instructions in the `README.md` help, too.
|
|
When it is time to calculate the instantaneous throughput, it may be the
case that some newly established connection has not yet started. When
that is the case, it is not necessarily an error.
Fixes #48
|
|
|
|
Even with previous fixes it was *still* possible for a self-down probe
to have started before the underlying load-generating connection came
online (or so it seems!). This patch will move changing the status of an
underlying lgc from not-running state to running state even later to
eliminate even the smallest possible gap.
Re: #47
|
|
Make an LgcStatus type print nicely with %v format verb.
|
|
|
|
rev3.go and stabilizer.go (in the stabilizer package) were missing their
GNU license text.
|
|
A long-overdue change to split certain packages once smashed into the
RPM package into their own package. The resulting code should make it
easier for people to navigate the source code.
In the process, fixed a bug where a self probe being started on a
load-generating connection races with the establishment of the
load-generating connection and causes a panic because the self probe is
not establishing a connection on an already established connection.
|
|
Well, that's embarrassing.
|
|
In the case where the scheduler allowed a delay between go threads in a
particular order, it was possible that a self prober would attempt to use a
connection before an HTTP connection was established.
Fixes #45. (at least I hope!)
|
|
Based on CL482495 in the go runtime, there is now a proper way to safely do
overlapped IO on Windows. This patch adopts those precautions.
|
|
A grab bag of changes
|
|
Allows user to override DNS for the initial config request. This is
accomplished using a custom DialContext overring the hostname used to
Dial to. This allows for TLS certificate validation to still
happen(optionally) while connecting to TLS secured resources.
Also,
- allows for optional enforcement of certificate verification
- stamp built git version into binary and adds a --version option
- adds a user-agent to all outgoing request
- exit(1) on failures for easier shell error detection
|