I've been monitoring my EdgeRouter 4 with SNMP Exporter for a while now. It works, but its a pain to manage the MIBs and having a separate service to maintain is annoying.

So lets try running node exporter on the EdgeRouter.

SSH into the router and install node exporter.

NOTE: Reader Travis reports that the Edgerouter X requires the "mipsle" binary to run.
https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-mipsle.tar.gz

# enter configure mode
configure
# check the CPU architecture
lscpu

# download the correct executable, with the EdgeRouter 4 I want the MIPS64 version

curl https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-mips64.tar.gz -L --output node_exporter-0.18.1.linux-mips64.tar.gz

tar -xf node_exporter-0.18.1.linux-mips64.tar.gz

cd node_exporter-0.18.1.linux-mips64

# test the executable
./node_exporter

sudo mkdir /usr/bin/node-exporter

sudo cp node_exporter /usr/bin/node-exporter/node_exporter

# clean up the mess 
cd ..
rm node* -R

You should see "Listening on :9100" when you start node exporter

The next step is to create a node exporter service.

sudo vi /lib/systemd/system/node_exporter.service

sudo systemctl daemon-reload

sudo systemctl start node_exporter

sudo systemctl enable node_exporter

[Unit]
Description=NodeExporter
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/bin/node-exporter/node_exporter --collector.systemd --collector.logind --no-collector.bonding --no-collector.hwmon --no-collector.infiniband --no-collector.ipvs --no-collector.mdadm --no-collector.nfs --no-collector.nfsd --no-collector.powersupplyclass --no-collector.zfs --no-collector.xfs --no-collector.thermal_zone --no-collector.schedstat --no-collector.rapl --no-collector.btrfs --no-collector.bcache --no-collector.cpufreq --no-collector.edac

Restart=on-failure

[Install]
WantedBy=multi-user.target

Once your service is setup, create a job in Prometheus to scrape the metrics.

Node Exporter vs SNMP Exporter

Network

Network usage over 15 min with a speed test at 20:11 (tested 100mbps)
Same graph as above but with the series aggregated
Large speed test
# Node Exporter
sum(irate(node_network_receive_bytes_total{device!="lo"}[1m]))

# SNMP Exporter
sum(irate(ifHCInOctets[1m]))