/internet-speed-monitor

Internet speed monitor with speedtest.net, Grafana, Telegraf, InfluxDB and Docker

Primary LanguageDockerfile

Monitor your internet speed

with speedtest.net, Grafana, Telegraf, InfluxDB and Docker.

Original https://github.com/raaaimund/internet-speed-monitor was outdated, and several things didn´t work anymore. Fixed them. Thanks to @raaaimund for the great setup! Just had to fix some dependencies of yours!

After running

docker-compose up

Docker starts the following services

  • influxdb
    • store for the speed test results
  • speedtester
    • schedules a cron job for running a speed test using the official speedtest.net cli every five minutes to JSON log files
    • you can change the specified server and interval in the corresponding Dockerfile.
  • telegraf
    • reads the JSON logs with the results and sends them to influxdb
  • grafana
    • visualizes the results on a simple pre-configured dashboard
    • default credentials are admin:admin

Change speedtest server and cron schedule

Change the value of the SPEEDTEST_SERVER and SPEEDTEST_CRON_SCHEDULE arguments in the .env file to alter the server on which to perform the speed test. You can list servers with speedtest -L. The default values are SPEEDTEST_SERVER=3199 and SPEEDTEST_CRON_SCHEDULE="*/1 * * * *".

Thanks to @timokluser-dev for this PR.

ARM

I used a Raspberry Pi 3B+ with Hypriot for running the internet speed monitor. To run this on a device with an ARM architecture (e.g. Raspberry Pi) run the following command

docker-compose -f docker-compose.yaml -f docker-compose.arm.yaml up