m-lab / ndt-server

docker native ndt5 and ndt7 server with prometheus integration
https://www.measurementlab.net/
Apache License 2.0
99 stars 40 forks source link

RFC: Add user-specified parameters for transfer byte limits #360

Closed stephen-soltesz closed 1 year ago

stephen-soltesz commented 2 years ago

This change is a prototype that would add user parameters to NDT7 measurements and archival results. The current implementation is not ready to merge in its current form. This is an RFC.

The current implementation supports the following parameters:

In the first two cases, the measurement/observation events depend on the measurer memoryless sample frequency - meaning that the time between actually reaching the BytesAcked or BytesReceived threshold (kernel state) and observing that (ndt-server) could be up to MaxPoissonSamplingInterval (625ms). So, there is a fundamental imprecision around when the server observes and closes the connection; there is no guarantee about how much data is actually transferred, only that it is at least the amount requested.

Currently, the parameter value is in bytes and unconstrained. Ideally, we would limit these values to a fixed set of thresholds, e.g. 1, 2.5, 5, 10, etc..


This change is Reviewable

coveralls commented 2 years ago

Pull Request Test Coverage Report for Build 1562


Changes Missing Coverage Covered Lines Changed/Added Lines %
ndt7/download/sender/sender.go 2 8 25.0%
ndt7/upload/sender/sender.go 2 9 22.22%
ndt7/handler/handler.go 3 21 14.29%
<!-- Total: 7 38 18.42% -->
Files with Coverage Reduction New Missed Lines %
ndt5/ndt5.go 1 89.5%
ndt5/c2s/c2s.go 2 73.21%
ndt5/protocol/protocol.go 2 83.86%
ndt5/web100/web100_linux.go 2 94.44%
<!-- Total: 7 -->
Totals Coverage Status
Change from base Build 1559: -1.3%
Covered Lines: 1769
Relevant Lines: 2201

💛 - Coveralls
stephen-soltesz commented 2 years ago

FYI: @bassosimone @robertodauria @mattmathis your comments/feedback are welcome. Regard everything as having a question at the end: "this is how I built a prototype; is there a better way to do this?"

stephen-soltesz commented 1 year ago

Obsolete