DEV Community

Sabry Dawood
Sabry Dawood

Posted on

Internet Monitor — a 24/7 internet connectivity & speed monitor built in Go

Most of us lose internet connectivity without any evidence to show our ISP — no timestamps, no causes, no durations. I built Internet Monitor to fix exactly that.

What it does

It runs silently in the background and performs three simultaneous checks — TCP Ping, HTTP, and DNS — every few seconds. Every connectivity event is logged with its cause and duration, so you finally have proof when your connection drops.

  • 📊 Live dashboard in your browser (localhost:8765) with a real-time latency chart, event log, and recent-checks table
  • On-demand speed test using Cloudflare's endpoint, with adaptive parallel connections
  • 🔔 Instant notifications via Windows Toast + Discord/Slack webhooks
  • 📋 Structured logs (daily JSONL) + one-click CSV export to hand to your ISP
  • 🌐 Bilingual UI — Arabic & English with full RTL support
  • 🖥️ Runs as a system tray app or a standalone native window

The stack

  • Go for the core engine (TCP/HTTP/DNS checkers, adaptive speed test)
  • Embedded HTTP dashboard with SSE for live updates — assets bundled into the binary
  • The tray build is CGO-free (CGO_ENABLED=0), cross-compiled on Linux
  • GitHub Actions CI/CD builds for Windows, macOS (arm64 + intel) and Linux on every push
  • Auto-update via the GitHub Releases API

Try it

Grab a pre-built binary from the Releases page, run it, then open http://localhost:8765. MIT licensed — free for personal and commercial use.

👉 Repo: https://github.com/FutureSolutionDev/internet-monitor

Contributions are very welcome — the roadmap includes upload speed measurement, Telegram webhooks, and PDF report export for ISP complaints.

Top comments (0)