# network-health > Monitor network health across all layers (ISP, modem, router, DNS, latency). Use for network diagnostics, status dashboards, outage detection, and troubleshooting connectivity issues. Provides JSON output suitable for dashboards and alerting. - Author: TrondW - Repository: stellawuellner/network-health-skill - Version: 20260125220157 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/stellawuellner/network-health-skill - Web: https://mule.run/skillshub/@@stellawuellner/network-health-skill~network-health:20260125220157 --- --- name: network-health description: Monitor network health across all layers (ISP, modem, router, DNS, latency). Use for network diagnostics, status dashboards, outage detection, and troubleshooting connectivity issues. Provides JSON output suitable for dashboards and alerting. --- # Network Health Monitor Comprehensive network health monitoring across all layers of the network stack. ## Quick Start ```bash # Full health check (JSON output) scripts/network-health.sh # With custom router IP ROUTER_IP=192.168.1.1 scripts/network-health.sh ``` ## Output Format ```json { "status": "healthy|degraded|critical", "message": "Human-readable status", "timestamp": "ISO8601", "checks": { "internet": "ok|down", "dns": "ok|down", "router": "ok|down", "modem": "ok|down|unknown" }, "metrics": { "latency_ms": 22, "public_ip": "x.x.x.x" } } ``` ## Status Levels | Status | Meaning | Typical Cause | |--------|---------|---------------| | `healthy` | All systems operational, latency <100ms | Normal operation | | `degraded` | Connectivity works but impaired | High latency, DNS issues | | `critical` | Significant connectivity problems | ISP down, router unreachable | ## Configuration Environment variables: - `ROUTER_IP` - Default: 192.168.68.1 (TPLink Deco) - `MODEM_IP` - Default: 192.168.100.1 (Comcast) ## Diagnostic Flow ``` Internet check failed? └─ Router reachable? ├─ Yes → ISP/Modem issue (Comcast problem) └─ No → Local network issue (WiFi/Router) DNS check failed? └─ Internet works? ├─ Yes → DNS server issue (use 8.8.8.8) └─ No → Upstream connectivity issue ``` ## Integration ### Dashboard API Add to server.js: ```javascript app.get('/api/network', (req, res) => { const result = execSync('path/to/network-health.sh'); res.json(JSON.parse(result)); }); ``` ### Cron alerting ```bash */5 * * * * /path/to/network-health.sh | jq -e '.status == "critical"' && notify-send "Network Down" ``` ## Extending See `references/advanced-checks.md` for: - Speed testing - Packet loss measurement - ISP status page scraping - Historical tracking