Script to periodically run the Speedtest CLI application by Ookla and post results to InfluxDB, updated for InfluxDB2
Find a file
2020-07-31 00:13:14 -04:00
.dockerignore fixed typos, errors with packetloss data 2020-07-30 18:53:20 -04:00
.gitignore fixed typos, errors with packetloss data 2020-07-30 18:53:20 -04:00
Dockerfile removed uneeded line 2020-07-30 22:23:23 -04:00
LICENSE fixed typos, errors with packetloss data 2020-07-30 18:53:20 -04:00
main.py admin can select tags for data now 2020-07-31 00:13:14 -04:00
README.md fixed typos, errors with packetloss data 2020-07-30 18:53:20 -04:00
requirements.txt Install Python requirements from requirements.txt 2019-11-05 20:55:09 +00:00

Speedtest to InfluxDB

This is a small Python script that will continuously run the Speedtest CLI application by Ookla, 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.

Grafana Dashboard

Using the script

The InfluxDB connection settings are controlled by environment variables.

The variables available are:

  • INFLUX_DB_ADDRESS = 192.168.1.xxx
  • INFLUX_DB_PORT = 8086
  • INFLUX_DB_USER = user
  • INFLUX_DB_PASSWORD = pass
  • INFLUX_DB_DATABASE = speedtest
  • SPEEDTEST_INTERVAL = 1800
  • SPEEDTEST_FAIL_INTERVAL = 300

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.

1. No Container

  1. 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.

  2. Install the InfluxDB client for library from Python.

    pip install influxdb

  3. Run the script.

    python3 ./main.py

2. Run with Docker or Podman

  1. Build the container.

    docker build -t aidengilmartin/speedtest-influx ./

  2. Run the container.

    docker run -d --name speedtest-influx aidengilmartin/speedtest-influx