Thanks for that suggestion - it reminds of the time maybe 10 years or so ago when I wrote a Ruby program to do exactly the same thing. It was when I was still on ADSL and I was having a terrible time with what turned out to be interference from a faulty street light outside my house. My program accessed my Speedtouch Router via Telnet and grabbed the stats and appended them to a CSV file for later analysis. It was only when I noticed the interference was happening at a slowly changing time each evening that I realised it was due to the light levels causing the street lights to come on at later/earlier times as the season changed. I then watched the lights coming on to see if one of them was flickering and sure enough there was one that flickered for a couple of minutes before firing up. I reported it to my council and they fixed it a few days later. Result!
I've got a number of Raspberry Pis lying around so I'll maybe get DSL Stats running and see what it yields.
ZeN Zen Unlimited Fibre 2 up to 76Mbps (Typ. 56Mbps dn / 20 Mbps up)
Apple Airport Express + Time Capsule
Apple Macbook Pro Retina/ iPad Air / iPhone 5