Monitoring Your Internet Performance with a Docker Solution
Are you aware of the fluctuations in your network speed on a daily or even an hourly basis? By employing a straightforward Docker container, you can automate the monitoring of your network performance and visualize it through an appealing graph at the click of a button.
The Importance of Monitoring Internet Speeds
Having subscribed to AT&T’s Gigabit fiber service, I expect to receive upload and download speeds around 940 Mb/s. When my actual speeds fall significantly below this benchmark for an extended period, it signals a potential issue that requires attention.
For various aspects of daily life—be it streaming, online work, or gaming—the reliability of my internet is crucial. This necessity drives me to actively monitor my internet performance. By leveraging software designed for tracking network parameters, I can consistently observe my connection’s stability and quality.
Understanding Service Guarantees
Many Internet Service Providers (ISPs) maintain a minimum quality of service. If performance dips below a stipulated level for a designated time, they may offer partial refunds. Although AT&T does not implement such policies for their fiber plans, keeping an eye on network performance can be beneficial. Without a documented history of your typical speed versus current performance, advocating for service adjustments can be challenging. This necessity highlights the value of having a scheduled network monitoring tool at your disposal.
Additionally, consistent monitoring helps identify any applications that might be using an excessive amount of bandwidth unexpectedly. Occasionally, I discover software that uploads or downloads an unusual volume of data, which, without monitoring, would go unnoticed.
Challenges of Manual Speed Testing
Previously, I relied on random network tests to identify potential problems. While this approach can provide snapshots of performance, it lacks the effectiveness needed for ongoing monitoring.
One could technically log each speed test on paper, in an Excel sheet, or a note-taking application; however, this method isn’t efficient or systematic. Although I still conduct occasional speed tests when experiencing slow download times, these tests serve merely as immediate snapshots rather than a structured form of long-term tracking.
Introducing Speedtest-Tracker
Fortunately, monitoring network speed doesn’t require advanced technical knowledge. I utilize Speedtest-Tracker, a Docker container, which has simplified the entire process for me.
Speedtest-Tracker can be fully automated using a built-in cron job, allowing it to log performance data continuously. This logging includes essential metrics such as download and upload speeds, ping, jitter, and latency.
Visualizing Network Data
The tool effectively plots these parameters over various time intervals—be it 24 hours, a week, or a month—based on your selected filter. The user-friendly graphics make it easy to interpret results, showing averages for each metric, thereby eliminating the need for manual calculations to understand typical performance.
Installation of Speedtest-Tracker
Setting up Speedtest-Tracker is as uncomplicated as installing any Docker container. While I opted for deployment through Portainer, the official documentation offers installation guidelines for Docker Compose, Docker Run, Kubernetes, QNAP, Synology, and Unraid environments.
For data management, Speedtest-Tracker allows integration with an existing MySQL or MariaDB database. However, I chose the built-in SQLite database for simplicity in setup.
Configuring the Cron Timer
A key feature consistent across all installation methods is the cron timer functionality. I have configured mine to run hourly with the schedule set to 0 * * * *. Alternatively, if you prefer to minimize data usage, a schedule of 0 */6 * * * can run the tests every six hours.
The Crontab Guru website is an excellent resource for designing and visualizing cron schedules, offering a user-friendly interface and a plethora of examples for reference.
Accessing Speedtest-Tracker Externally
Speedtest-Tracker can be used behind a reverse proxy, allowing remote access to the monitoring tool outside your local network. There’s even an option for a public dashboard should you wish to share your internet performance metrics with others.
Conclusion
If you’re not currently monitoring your internet speeds, I strongly encourage you to begin. Implementing such a system is straightforward, enhances your understanding of your network’s performance, and enables early detection of potential issues before they escalate into more significant problems.
