Skip to content

Synthetic Monitoring

m1nd runs scheduled synthetic tests against your network targets and streams results live to the dashboard via Server-Sent Events (SSE). All results are stored indefinitely in SQLite.

Test Types

TestWhat it measuresDefault interval
ICMP PingRTT (avg/min/max), packet loss per host30s
DNS ResolutionResolve time, resolved IPs, per nameserver60s
SpeedtestDownload / Upload Mbps via speedtest-cli5 min
SNMP PollingCPU%, memory%, port counts, uptime, sys_descr60s
IPsec TunnelsTunnel reachability via inner-IP probe ping30s

How It Works

  1. The asyncio scheduler runs in the main thread and dispatches test jobs at configured intervals
  2. Results are streamed live to the dashboard via SSE — no polling, no page refresh
  3. All data is persisted to SQLite with full history retention
  4. The Baseline Learning system runs anomaly detection on every result

Dashboard

The synthetic monitoring dashboard shows real-time charts for all active tests:

  • Ping: RTT trend lines, packet loss percentage
  • DNS: Resolution time per nameserver
  • Speedtest: Download/Upload bandwidth over time
  • SNMP: CPU, memory, port utilisation per device
  • IPsec: Tunnel status and probe latency

Synthetic Monitor Topology

The Synmon tab provides a D3-powered topology view showing all synthetic monitoring targets and their current status in a network graph layout.

Configuration

Configure targets and intervals in config.yaml:

yaml
targets:
  - 8.8.8.8
  - 1.1.1.1
  - 192.168.1.1

dns_servers:
  - 8.8.8.8
  - 1.0.0.1

intervals:
  ping: 30
  dns: 60
  speedtest: 300
  snmp: 60
  ipsec: 30

Or manage targets directly from the web UI under Settings.

Released under the MIT License.