Network Monitoring & Report Automation
From scripted per-area screenshots to monitoring inside eBilling: upstream and router traffic, ping, OLT optical levels, worker health and a CPU-steal-aware job gate.
Problem
NOC needed fast per-area status (down/up, excluding isolated customers). The first flow was manual: open the dashboard, filter, screenshot, send to the group — about 10 minutes each time. Later the app kept its own hand-maintained target list that duplicated Grafana, and its heavy jobs slowed the server at the worst moments.
My role
Built the first report pipeline myself, then planned the move to Prometheus/Grafana-backed monitoring inside eBilling and reviewed the implementation.
Scale
- About 30 monitoring areas
- 10+ routers and several upstream links graphed
- 1,000+ ONUs with optical levels tracked
What I built
- Stage 1: Python + Playwright pipeline that logs in, scrapes per-area tables, drops isolated rows, renders an HTML report to PNG and sends it to WhatsApp/Telegram — on a schedule or on request (monitoring <area>).
- Stage 2: Prometheus with MikroTik and blackbox exporters, Grafana dashboards and a PPPoE exporter covering all active routers.
- A Network tab in eBilling: upstream panel (now / peak / p95 / capacity), router table with ping, PPPoE count, traffic, CPU, memory and uptime, with stale-data badges.
- OLT optical levels collected on a schedule; weak-signal ONUs listed for maintenance.
- Worker heartbeat: a host script checks every queue worker and reports when one stops.
- Admission gate: monitoring jobs wait when critical queues are busy or the VM's CPU steal is high, so installs and payments always go first.
- Retired the hand-maintained target list once the same checks lived in the blackbox exporter (backup kept).
Architecture
-
Devices
- MikroTik routers
- OLTs
-
Collect
- Exporters (MikroTik, blackbox, PPPoE)
- eBilling collectors + gate
-
Store
- Prometheus + Grafana
-
Show
- Network tab
- PNG report → WhatsApp / Telegram
Outcome
- A per-area report went from about 10 minutes of manual work to one chat command.
- Network status lives in the app NOC already uses, with history from Prometheus.
- Monitoring no longer competes with installs and payments when the host is under load.
- One source of truth for targets instead of two.
Screenshots
Demo / test data only. Real customer data never leaves production.
Stack
Next project
WhatsApp Ops Bot (scoped to one group)