GithubHelp home page GithubHelp logo

internet-equity / netrics-dash Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 1.0 1.16 MB

Local (LAN) dashboard server & browser extension for extended reporting, measurement and control of Netrics experimentation

Shell 13.14% Python 44.87% JavaScript 26.46% CSS 3.20% Dockerfile 1.66% HTML 10.68%

netrics-dash's People

Contributors

jesteria avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

merit-research

netrics-dash's Issues

collect local network test's agent information

The /dashboard/trial/ endpoint(s) should collect information about the test agents which submit to them.

  • test agent: page|ext (Web page or browser extension) (most important)
  • user agent: (the browser's user agent)

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.

read add'l directories in data file backend

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.

docker-compose configuration

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.

local dashboard fails to report statistics when data set is very small

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                       

enhanced presentation of LAN test historical results

(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

parsing errors uncaught

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.