internet-equity / netrics-dash Goto Github PK
View Code? Open in Web Editor NEWLocal (LAN) dashboard server & browser extension for extended reporting, measurement and control of Netrics experimentation
Local (LAN) dashboard server & browser extension for extended reporting, measurement and control of Netrics experimentation
In addition to the existing provisioning script, the Local Dashboard should provide an example Docker Compose implementation of its deployment, including the NDT7 server, the Local Dashboard web server, and the dashboard's data extraction (ETL) routine.
(1) Suggest language change for the presentation of the home network / LAN bandwidth test's historical results. Currently this reads like this:
Your Web browser(s) have conducted 20 download tests of your home network. In the bulk of these — 16 tests — your network bandwidth averaged 184.7 megabits per second. So, your home network bandwidth is usually greater than that of the connection from your ISP: that's good.
In this case, my current speed was just 30 Mbps, and this almost feels confusing. What does the 185.7 Mbps have to do with the crappy answer I just got? Do I ever actually get a bandwidth of 184.7 (to where?)? It is not clear that the 184.7 quoted above is the 80% winsorized mean, and I wouldn't present the number that way.
Instead / in addition, I would suggest something like:
Your Web browser(s) have conducted 20 download tests of your home network. For 17 of these (85%), the bandwidth of your local network has exceeded the bandwidth from your router to the Internet. For 3 of the tests (15%), your local network -- probably your Wi-Fi -- was the bottleneck of your Internet speed.
(2) plot/table/list of recent results
As a participant and user of the local dashboard, I might like to see my ISP's speed/payment package information, compared to the speeds that are actually measured.
If this information could somehow be set without my input into the dashboard, even inferred, that would be great; however, this would almost certainly have to be a user input.
This input/information might be contained within a new section, listed above the measured speed section.
Once this information has been populated, it could be displayed in this section, and used for analysis, e.g.:
The JSON data file backend fails to catch errors thrown for invalid JSON files. As such, the Local Dashboard may fail to present to the participant their measurement data.
The /dashboard/trial/
endpoint(s) should collect information about the test agents which submit to them.
page|ext
(Web page or browser extension) (most important)These data may be of use in debugging and validating installations, as well as to understand whether and how participants install and use local network testing tools.
Instead of getting them from the CDN, so that the thing still works if the connection is down.
Low priority...
Beta testers' devices are now exporting data to:
/var/nm/nm-exp-active-netrics/upload/{pending,archive}/beta/json/
rather than to:
/var/nm/nm-exp-active-netrics/upload/{pending,archive}/default/json/
If this must be the case, and we want a one-size-fits-all solution, the local dashboard could be universally configured by a single environment variable, DATAFILE_PATH
, from which is constructed the backend's DATA_PATHS
, e.g.:
DATAFILE_PATH=/var/nm/nm-exp-active-netrics/upload/pending/beta/json/:/var/nm/nm-exp-active-netrics/upload/archive/beta/json/:/var/nm/nm-exp-active-netrics/upload/pending/default/json/:/var/nm/nm-exp-active-netrics/upload/archive/default/json/
(And the backend might have to ignore non-existent directory paths.)
…And/or, this configuration variable might be dependent upon the participant's phase of the study, etc.
As a (beta/test) participant whose device has just been enrolled, I expect to see my internet testing statistics on my local dashboard as soon as collection begins. However, the local dashboard server endpoint /dashboard/stats
fails with the error:
TypeError: Object of type deque is not JSON serializable
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.