| Age | Commit message (Collapse) | Author |
|
When a test did not run to stability, tell the user which part of the
test was unstable.
Signed-off-by: Will Hawkins <[email protected]>
|
|
When the test does not stabilize (responsiveness), using only the most
recent MAD probes to calculate the provisional final RPM could leave us
with a very small number of samples. So, instead, use all the probe
measurements to do the calculation.
Signed-off-by: Will Hawkins <[email protected]>
|
|
By advancing the stability algorithm's interval when the measurement is
complete, we incorrectly expelled one of those intervals from the RPM
calculation. As a result, the final RPM calculation did not include all
the probe measurements that factored into stability calculation.
Signed-off-by: Will Hawkins <[email protected]>
|
|
For calculating the final RPM, only those probes that are sent/received
during the stable MAD should count.
Signed-off-by: Will Hawkins <[email protected]>
|
|
The client was not continuing to add load-generating connections at each
stability-check interval (as called for by the spec).
Also, the client now properly obeys the `--rpm.id` option given on the
command line.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Change how the effect of the working conditions is calculated and
presented to the user.
Signed-off-by: Will Hawkins <[email protected]>
|
|
|
|
Use the `--rpm.parallel` to test in parallel mode. The default testing
mode is serial.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Thanks to a few typos, foreign probes were not being properly logged
when data loggers were in use.
|
|
Signed-off-by: Will Hawkins <[email protected]>
|
|
|
|
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]>
|
|
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]>
|
|
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 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]>
|
|
Beginning of a release candidate for support for IETF 02 tag of the
responsiveness spec.
|
|
Thank you to @gregbo.
Fixes #54.
|
|
Fixed silly error in calculating sample variance
|
|
|
|
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!)
|
|
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
|
|
|
|
This enables passing in a single URL for easier running
eg networkQuality --url https://networkquality.example.com/path/to/config
|
|
|
|
|
|
When a test_endpoint is returned in the config for a test, all
requests will be sent to that host but the :authority pseudo header
(nee: Host: message header) will contain the host specified in
the various `_url` fields of the config data.
|
|
Granular throughput logging
Measures on both Up/Down connections
Adds "[OMIT]" tag to csvlogger
|
|
|
|
With this commit the project is being relicensed under GPLv2. All
contributors to the code prior to this commit have given their explicit
approval for the project to be relicensed (see
https://github.com/network-quality/goresponsiveness/issues/41).
|
|
Extends throughput logging to continue even after saturation has been reached by the algorithm.
|
|
|
|
This patch adds support for logging the underlying RTT and Cwnd of the
TCP connection used when doing probes. More work to follow in order to
add support for this information on Windows and Darwin.
|
|
We never really implemented it any way!
|
|
With this patch, data logging now supports reporting the moving
average of upload/download throughput as saturation is pursued.
|
|
|
|
Besides work to complete the support for v2 of the RFC, this patch adds
support for logging each of the probe results to a CSV file
(--logger-filename).
|
|
|
|
This is a WIP for supporting v2 of the RPM spec.
|
|
Besides running golines (for the first time in a while now that
the tool supports generics), this commit removes punctuation and
newlines from Errorf parameters -- something that gofmt does not
like (I never knew!).
|
|
Now that there is support for GetTCPConnectionInfo on macOS, we can
re-enable extended stats on the macOS platform!
|
|
|
|
|
|
IncorporateConnectionStats
Errors as a result of failed type assertions in
IncorporateConnectionStats were caught/logged but there was no
function-termination control flow associated with these error
conditions. As a result, control would continue and cause problems. This
patch fixes that.
|