I suffer several micro cuts a day since a couple weeks. I’d like to monitor these cuts to help diagnose the issue with my ISP.
Is there any docker image that allows to do this ? I only found internet speed monitoring.
Depends on how much you want to set up. For my purposes, I just check for connectivity every minute, and record true or false as a new row in a sqlite database if there is connectivity.
This is what I use on my raspberry pi,
#!/usr/bin/env python3 from datetime import datetime import sqlite3 import socket from pathlib import Path try: host = socket.gethostbyname("one.one.one.one") s = socket.create_connection((host, 80), 2) s.close() connected = True except: connected = False timestamp = datetime.now().isoformat() db_file = Path(__file__).resolve().parent / 'Database.sqlite3' conn = sqlite3.connect(db_file) curs = conn.cursor() curs.execute('''CREATE TABLE IF NOT EXISTS checks (id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TEXT, connected INTEGER)> curs.execute('''INSERT INTO checks (timestamp, connected) VALUES (?, ?);''', (timestamp, 1 if connected else 0)) conn.commit() conn.close()
and I just have a crontab entry
* * * * * ~/connectivity_check/check.py >/dev/null 2>&1
to run it every minute.Then I just check for recent disconnects via:
$ sqlite3 ./connectivity_check/Database.sqlite3 'select count(*) from checks where connected = 0 order by timestamp desc;'
Obviously, it’s not as full-featured as something with configurable options or a web UI etc, but for my purposes, it does exactly what I need with absolutely zero overhead.
That’s not exactly the solution I was looking for, but that was very instructive. Thank you.
Ah I see you mentioned the cuts are only a few seconds long. This wouldn’t catch that very well.
If you have a server outside of your network you could simply hold open a TCP connection and report when it breaks, but I’ll admit at that point it’s outside of what I’ve had to deal with.