Something went wrong. Try again.
A lightweight home network monitor with a live dashboard for latency, packet loss, jitter, DNS & bandwidth. Runs on Pi, Docker, or any mach…
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677-- name: insert_measurementINSERT INTO measurements (ts, network_id, latency, jitter, packet_loss, download, upload, dns, conn_type, conn_rssi, conn_noise, conn_snr, conn_channel, conn_band, conn_link_rate, conn_duplex)VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
-- name: get_historySELECT id, ts, network_id, latency, jitter, packet_loss, download, upload, dns, conn_type, conn_rssi, conn_noise, conn_snr, conn_channel, conn_band, conn_link_rate, conn_duplexFROM measurements ORDER BY ts DESC LIMIT ?;
-- name: get_history_windowSELECT id, ts, network_id, latency, jitter, packet_loss, download, upload, dns, conn_type, conn_rssi, conn_noise, conn_snr, conn_channel, conn_band, conn_link_rate, conn_duplexFROM measurements WHERE ts >= ? ORDER BY ts ASC;
-- name: get_summary_statsSELECT COALESCE(AVG(latency), 0), COALESCE(MIN(latency), 0), COALESCE(MAX(latency), 0), COALESCE(AVG(jitter), 0), COALESCE(AVG(packet_loss),0), COALESCE(AVG(dns), 0), COALESCE(AVG(download), 0), COALESCE(AVG(upload), 0)FROM measurements WHERE ts >= ?;
-- name: get_latenciesSELECT latency FROM measurements WHERE ts >= ? ORDER BY latency;
-- name: count_measurementsSELECT COUNT(*) FROM measurements WHERE ts >= ?;
-- name: count_up_measurementsSELECT COUNT(*) FROM measurements WHERE ts >= ? AND packet_loss < 100;
-- name: count_outagesSELECT COUNT(*) FROM measurements WHERE ts >= ? AND packet_loss >= 50;
-- name: upsert_ping_targetINSERT INTO ping_targets (host, ip, latency, loss, status, updated_at)VALUES (?, ?, ?, ?, ?, ?)ON CONFLICT(host) DO UPDATE SET ip = excluded.ip, latency = excluded.latency, loss = excluded.loss, status = excluded.status, updated_at = excluded.updated_at;
-- name: get_ping_targetsSELECT host, ip, latency, loss, status FROM ping_targets ORDER BY host;
-- name: upsert_dns_checkINSERT INTO dns_checks (host, time_ms, resolver, updated_at)VALUES (?, ?, ?, ?)ON CONFLICT(host) DO UPDATE SET time_ms = excluded.time_ms, resolver = excluded.resolver, updated_at = excluded.updated_at;
-- name: get_dns_checksSELECT host, time_ms, resolver FROM dns_checks ORDER BY host;
-- name: log_network_eventINSERT INTO network_events (ts, network_id, ssid, gateway) VALUES (?, ?, ?, ?);
-- name: get_current_network_idSELECT network_id FROM network_events ORDER BY ts DESC LIMIT 1;
-- name: get_configSELECT value FROM settings WHERE key = 'config';
-- name: save_configINSERT INTO settings (key, value) VALUES ('config', ?)ON CONFLICT(key) DO UPDATE SET value = excluded.value;