Monitor internet micro-cuts
Monitor internet micro-cuts
You might be looking for a “smoke test”?
How micro are the cuts? You might get pretty far with the “ping” tool without any fancy monitoring setup around it.
Maybe smokeping?
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.
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.
For a while now I've had Grafana hooked up to InfluxDB and Telegraf. Using Telegraf I setup pings to ips along my route to the larger internet, major dns providers, and several large internet sites. I measure response time and packet loss. It has allowed me to cut through the Comcast BS when diagnosing problems with them. I can tell them for sure that the problem is inside their network and is the X hop from my router.
I recently switched moving Grafana over to a different server and I'm using Prometheus instead. I haven't yet set it up with that but it looks like something similar is possible.