/nm-exp-active-netrics

Netrics - Active Measurements of Internet Performance

Primary LanguagePython

Netrics - Active Measurement of Network Performance

What: a software framework to concentrate and run dedicated computer network measurements.
For Whom: internet users, network engineers and the general internet research community.
Why: to troubleshoot impaired computer networks, to understand how the internet is evolving, and to support decisions on internet infrastructure capacity planning.

Netrics Dashboard

1.1 Hardware

Netrics runs on dedicated SBC's (Single Board Computers) like the Raspberry Pi, NVIDIA Jetson Nano or any other Ubuntu amd64 compatible device. The active Netrics package (this repo) is mainly responsible for measurements that actively generate network traffic in order to assess network's performance metrics. As a complement to the active measurements, the passive Netrics can produce network perfomance metrics from passively listening to the network. The latter does require complementary hardware in order to produce performance data.

Attached Mirror

Figure 1. On the left, a Raspberry Pi simply connected to a modem's Ethernet port. On the right, a complementary wifi and switch are required to enable passive Netrics.

1.2 Source Code, Configuration and Data locations

The python source code, after installed resides on:
/usr/local/src/nm-exp-active-netrics/*

The local data (SBC storage) is located at:
/var/nm/nm-exp-active-netrics/upload/pending/* (pending upload),
/var/nm/nm-exp-active-netrics/upload/archive/* (uploaded, safe for deletion)

Configuration can be found at:
/etc/nm-exp-active-netrics/*

2. Install

Please use the unmanaged installation with direct influxdb data ingestion if you're a developer or researcher planning to contribute with code, testing and building of NetMicroscope/Netrics Open Source software. For all other cases, please use the managed installation method.

2.1 Install (umanaged, direct influxfb data ingestion)

  1. Checkout the latest pre-releases and releases at link.
  2. Copy link and login into your Jetson Nano device, download .deb file:
    wget https://github.com/chicago-cdac/nm-exp-active-netrics/releases/download/v0.1.10-arm64/nm-exp-active-netrics-v0.1.10-arm64.deb
  3. run sudo apt install ./nm-exp-active-netrics-v0.1.10-arm64.deb
    (To reinstall run):
    sudo apt remove --purge nm-exp-active-netrics
    sudo apt install --reinstall ./nm-exp-active-netrics-v0.1.10-arm64.deb, and if necessary run:
    sudo rm -Rf /usr/local/src/nm-exp-active-netrics
  4. edit your /etc/nm-exp-active-netrics/nm-exp-active-netrics.toml file to include [iperf] target servers and appropriate [limit_consumption] values:
...
[iperf]

   targets = ["server:33001"]
...
[limit_consumption]
    measured_down = 5
    max_monthly_consumption_gb = 200
    max_monthly_tests = 200
...
  1. Create .env.netrics file with server credentials sudo vim /etc/nm-exp-active-netrics/.env.netrics:
INFLUXDB_SERVER=
INFLUXDB_PORT=
INFLUXDB_DATABASE=
INFLUXDB_TOKEN=
INFLUXDB_ORG=

INSTALL_ID=myid <---- use your lastname here so you can filter out grafana/influxdb queries.
  1. Restart netrics: sudo /etc/init.d/nm-exp-active-netrics restart
  2. Check health with netrics -C and logs with netrics -L

1.2 Install (managed, via nm-mgmt-cms-*.deb)

TBD