This is a modified version of aidengilmartin's script. This version of the Python script that will run the Speedtest CLI application by Ookla when called by a cronjob, reformat the data output and forward it on to an InfluxDB database. You may want to do this so that you can track your internet connections consistency over time. Using Grafana you can view and explore this data easily.
Adjust the InfluxDB connection settings at the top of speedtest.py
file to fit your setup and then run with one of the options listed below.
Be aware that this script will automatically accept the license and GDPR statement so that it can run non-interactively. Make sure you agree with them before running.
-
Install the Speedtest CLI application by Ookla.
NOTE: The
speedtest-cli
package in distro repositories is an unofficial client. It will need to be uninstalled before installing the Ookla Speedtest CLI application with the directions on their website. -
Install the InfluxDB client for library from Python.
pip3 install influxdb
-
Run the script.
python3 ./speedtest.py
-
Modify crontab to run the script every hour
Edit crontab using your favorite editor with
crontab -e
and add the following line:0 */1 * * * /usr/bin/python3 /path/to/script/speedtest.py
, this way the cronjob runs every hour.
Included in the repository, is JSON formatted code for a Grafana dashboard. Includes measurements from the last speedtest, data over the last 6 hours, recent locations and an image of the last speedtest that ran. This dashboard requires the dalvany-image-panel plugin, this can be installed when running: grafana-cli plugins install dalvany-image-panel && systemctl restart grafana-server
.