User guide
Reading TowerLens, end to end
Covers the live demo dashboard — 179 fictional devices across 15 demo sites in the invented “Kestrel Valley” region. Every device, IP, MAC and place name in the demo is 100% fictional; no real network data is included anywhere.
Open the live demo →1. The 60-second tour
- Top bar — live counts by status, plus the poll-cycle timer.
- Left panel — searchable device list with status badges.
- Middle — the geographic map; dashed lines are client → sector-AP links.
- Right panel — live alert feed, RouterOS backup status, notification matrix.
- Click any marker or list row to open the device drawer — metrics, graphs, probes and RouterOS tools.
2. Reading the map
| Colour | Meaning | Source |
|---|---|---|
| 🟢 Green | Up | Ping + SNMP healthy |
| 🟠 Amber | SNMP-down | Ping OK, SNMP timed out (failing agent/community) |
| 🔴 Red | Ping-down | Failed 2 consecutive ping rounds |
| ⚪ Grey | Disabled | Administratively disabled; never polled |
| 🟣 Purple | Unknown | Never successfully polled |
Zoom and pan like any map. Toggles above it control client links and labels; the ⛶ full screen button opens a fullscreen network view. The Topology tab gives a schematic, draggable site-ring view — click any node for detail. The Performance tab shows fleet traffic, p95 latency per top site, and rolling uptime/alert/backup counters.
3. Finding things
Search matches name or IP. Filter by type (AP, CPE, power, router, switch, other), by status, or by site/map — selecting a site also flies the map to it.
4. The device drawer
Click any device for its identity card (IP, MAC, source, every map it appears on), live metrics and graphs, and a wireless link card for APs and clients — live signal dBm with quality label, noise floor and SNR, CCQ % with a colour bar, TX/RX rates, and signal/CCQ history charts. Vendor is auto-detected (MikroTik, Cambium, Mimosa, generic) and can be overridden; ping and SNMP monitoring stay vendor-neutral. From here you can run probes (ping, SNMP get, port scan), recover a down device, view a radio or router's generated RouterOS export, or remove the device and its links.
5. Alerts
New failures arrive live with acknowledge and ping-device actions. Ack-all clears the board after a maintenance window, and a 🔔 toggle enables an audible alarm for new ping-downs. Filter by severity: critical, warning, info.
6. RouterOS backups
Covers every sector AP and router. Run a fleet backup on demand, or open the full table for per-device status, timing, size and plaintext .rsc inspection. Failures raise critical alerts automatically. The real backend ships a daily schedule plus .backup/.rsc downloads on your own network — see the backup & restore guide for the full workflow.
7. Discovery
🔎 Discover scans the subnet, adds new hosts, and auto-links each to its nearest radio. In the browser this runs against the simulation; on your VM the same logic runs a real ICMP/SNMP sweep — see how auto-discovery works for the detail.
8. API & real backend
🔌 API shows the exact JSON shape your frontend consumes with a copy-paste curl example, and downloads devices.json to seed the server database. 🐍 Python bundle explains the real FastAPI + asyncio backend — schema.py, poller.py, api.py and backup.py — which installs as part of a licensed TowerLens deployment rather than a free download. See how self-hosted deployment works for the detail.
9. Settings, users & roles
First run defaults to admin / admin123 — you're forced to change it on first sign-in. Settings cover poll interval, history depth, SNMP community, RouterOS credentials (browser-only, never uploaded), chat/ticket webhooks, failure simulation, auto-recover and a chaos-injection slider for drill exercises. Admins manage accounts under Users — create, reset passwords, cycle roles, enable/disable, delete (the last admin account can't be disabled, demoted or deleted). Roles are admin, operator and viewer. Sessions last until logout or tab close; passwords are salted and hashed in the browser store for the demo — real enforcement lives in auth.py (PBKDF2 + tokens) in the real backend. See the RBAC guide for how to set this up for a real NOC team.
10. Spectrum, client roster & maintenance ops
The 📡 Spectrum tab shows fleet-wide channel occupancy and noise floor, with automated co-channel conflict detection between sector APs at the same site. Open any AP's drawer for a client roster — every CPE riding it, sorted worst-CCQ-first, with retry rate flagged; open any CPE for its roaming/reconnect history. 🛠 Maintenance windows mute alerts for a site during planned work without faking the device state. 🧩 Firmware shows version drift across MikroTik, Cambium, Mimosa and other gear with one-click scheduled upgrades. 📐 Plan link gives a straight-line distance and indicative Fresnel-zone clearance estimate for a new sector or backhaul pair. Alerts can be turned into a support ticket via a configurable webhook, with that device's outage history attached.
11. Trends & SLA reporting
The 📊 Trends & SLA tab retains 30/90 days of latency, CCQ, traffic and uptime history per site — well beyond the live poll window — so degradation shows up before it becomes an outage. Set an SLA target and export a per-site uptime report as CSV for anyone you're billing against an SLA.
12. Uplink watchdogs, path ping & bandwidth tests
Public DNS resolvers are polled every cycle like any device, linked off your NOC routers, so an internet-wide outage shows up immediately. Path ping lets you test from any device to any target with selectable payload size and count. Every client is linked to its sector AP, every tower hub joins a backhaul ring home to NOC, and mid-link labels show live TX/RX throughput. A bandwidth test (10–1000 MB, up/download, TCP/UDP) gives an animated live-Mbps read between any two points. See the uplink diagnostics guide for how to use these to isolate an uplink problem from a wireless one.
13. Troubleshooting
| Symptom | Fix |
|---|---|
| Counts look stale | Press ⚡ Poll now; check the poll-cycle timer is advancing |
| Map tiles grey | Tile CDN hiccup — wait 30s or reload; the Topology tab always works offline |
| Too many amber flaps | Settings → uncheck simulate failures for a frozen board |
| Lost your edits | ↻ Reload demo restores the fictional dataset — export devices.json first via 🔌 |