Fed up of slow speeds? annoyed at being fobbed off by your ISP? This was my position in my previous home so I started recording and logging metrics to build a case against my ISP which ultimately resulted in a large credit being applied to my account as they agreed that with my persistent testing their service had fallen below what should have been provided. I have finally got around to tidying up my code base and released a refactored version to GitHub so you can start tracking your connectivity speed and latency. Meet ConnTestD or "Connection Testing Daemon" written in Python which utilises the speedtest.net API to periodically test your connection recording the results in a database.
The software is very lightweight and can be ran from a Raspberry Pi (providing your internet connection doesn't max out the Pi's NIC), making it a low power, low cost option to get 24/7 monitoring for your connection. The current feature set includes...
- Testing download & upload speeds and latency periodically using speedtest.net API.
- Storage of results in any SQLAlchemy compatible database.
- Basic web based dashboard to review recent statistics.
Some features I'd like to add in the future are...
- Alerting that your connection was down and the duration once your connection is re-established.
- Alerting when your connection falls below a predefined throughput or over a certain round trip time.
- Alternative backend storage from traditional RDBMS in a proper time series DB e.g. InfluxDB.
- Enhanced web ui with more reporting options.
If you'd like to give it a go installation instructions are included in the Git respository, if you'd like to request a feature or spot a bug please raise an issue or a PR. Remember your activity with your connection may affect your test results, if you'd like as true as possible speed test results you should prioritise traffic to your speed testing host over all other devices on your network if your router supports it.