Monitoring All the Things: Your Internet Connection
The best self-hosted internet performance tracking application
Lately, I have been on a monitoring and logging binge. I need to take deep dive into Prometheus and Grafana again for work, so I decided to start a mini-series of articles named “Monitoring All the Things”. This is the first article of that series.
As you all know by now, I have had some issues with my internet service provider. I have suffered outages, slow speeds, and high latency. Until recently, my ISP also charged me exorbitant amounts for gig speeds. I won’t reopen healed wounds.
I quickly realized that if I wanted to present a compelling argument to my ISP that they were ripping me off, I would need to collect the data. I entered down the rabbit hole and came across an amazing “self-hosted internet performance tracking application.”
Speedtest Tracker
Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtest checks against Ookla's Speedtest service.
~ github.com/alexjustesen/speedtest-tracker
First, I would like to thank alexjustesen for maintaining this application on GitHub.
The application is relatively simple:
It has a dashboard with pretty graphs
It stores results in a database (MariaDB/MySQL, Sqlite, PostgreSQL)
It measures download, upload, ping, and jitter
And most importantly for me, you can run it on Docker.
I won’t go into the details of installation since there is already great documentation on how to do that.
On my home server (currently running Harvester v1.1.2) I have a Portainer instance where I was able to spin this application up using Docker compose (called a stack in Portainer). Keep in mind, the stats below are starting from yesterday.
If you want a more accurate reading every time, make sure to select one server to run speeedtests against.
As you can see here, I chose to use the Shentel server in <redacted> which is the closest server to my location:
You can change this in the “General” settings page.
You can also see your results in a list view, and you can filter by each different row. All in all, this is a solid tool to monitor your internet connection.
I know that another favorite tool is Jeff Geerling’s “Internet Pi” which can be found here. This tool has pi-hole built in which I will not be using anytime soon (new post about that coming later). I am also not a huge fan of the whole raspberry pi thing (hot take). I know its low power, small, cute, yadda yadda… I like my home server, I like my beefy Xeons (however old and inefficient they may be), and I like my 64GB of RAM.