How can I monitor my ISP's connection quality over time?

I've got a very bad ISP and want to monitor the connection quality over a month's time.

At the moment I just wrote a script which logs ping requests to Google's DNS server 8.8.8.8.

How can I do that more efficiently? Is there a better way to achieve long term monitoring?

Or a command line tool to measure the bandwidth? Then i could run a cronjob to do this.


You can monitor connection quality over time with SmokePing. In a single graph you get round-trip time, jitter and packet loss. Excellent to monitor links.

Example of graph generated by SmokePing


Update Dec. 2020

As I run a simple Linux home server, I run InfluxDB, Telegraf and Grafana. Telegraf is easily configured to capture useful information and I have it capturing DNS performance of several DNS servers (so I know to change if my chosen one is under-performing) and I ping several endpoints so that I can check for poor latency. The data is sent from Telegraf to InfluxDB and charted in Grafana.

Another alternative for those who don't want to use an external or other service. I use InfluxDB and Grafana anyway for Home Automation with Node-RED and all those services with Mosquitto all runs happily on a Pi.


I would switch to using a tool to monitor things.

Assuming that you can ping your router, you could try something like the thinkbroadband monitor tool. This will give you excellent information on the quality of your connection.

DSLreports also has some useful tools.

If you run a server off your connection, you might also want to try a free subscription with one of the web site monitoring services such as http://monitis.com

For testing outward rather than inward, have a look at: http://www.guidingtech.com/1836/5-power-tools-to-check-broadband-speed-and-quality/ Which lists some tools such as speedtest.net which is an excellent monitor that you run on a PC on your local network.