This component is the MQTT Analyzer for the Wireless & Mobile Networks (WMN) project. It subscribes to raw wireless metrics published by edge devices, computes a wireless experience score, generates alerts for degraded conditions, and republishes the results back to MQTT.
It is intended to run on a server or home lab host (for example, a Proxmox CT/LXC or a Linux VM) alongside the edge wmn-collector.
Typical data flow:
wmn-collector publishes raw metrics (latency, jitter, packet loss, RSSI when available)wmn-analyzer consumes raw metrics and publishes derived analyticsDocker Hub:
irfanuruchi/wmn-analyzer:latest
Supported architectures:
linux/amd64 – PCs, Proxmox, serverslinux/arm64 – ARM serverswmn/metrics/#
Receives raw metrics from one or more edge devices.
wmn/analysis/<DEVICE_ID>
Publishes computed analytics per device.
Example published message:
{
"device_id": "irfanwmn",
"timestamp": 1767523544,
"analysis": {
"wireless_score_0_100": 82,
"alerts": [],
"mobility_event": null
},
"raw": {
"rssi_dbm": -62,
"latency_ms_avg": 84.5,
"jitter_ms": 44.7,
"packet_loss_pct": 0.0
}
}
docker pull irfanuruchi/wmn-analyzer:latest
docker run -it --name wmn-analyzer \
--restart unless-stopped \
-v wmn_analyzer_config:/config \
irfanuruchi/wmn-analyzer:latest
The container will prompt for:
8883)1 recommended)wmn/metrics/#)wmn/analysis)Configuration is saved persistently in:
/config/config.env
inside the Docker volume wmn_analyzer_config.
Ctrl + P, then Ctrl + Q
docker logs -f wmn-analyzer
docker stop wmn-analyzer
docker start wmn-analyzer
docker rm -f wmn-analyzer
Configuration can also be passed via environment variables.
docker run -d --name wmn-analyzer \
--restart unless-stopped \
-e MQTT_BROKER="xxxxxx.s1.eu.hivemq.cloud" \
-e MQTT_PORT="8883" \
-e MQTT_TLS="1" \
-e MQTT_USERNAME="wmn-client" \
-e MQTT_PASSWORD="YOUR_PASSWORD" \
-e IN_TOPIC="wmn/metrics/#" \
-e OUT_TOPIC_BASE="wmn/analysis" \
-v wmn_analyzer_config:/config \
irfanuruchi/wmn-analyzer:latest
The analyzer uses Docker volumes to persist configuration:
wmn_analyzer_config → /config/config.envThis allows credentials and topic settings to survive container restarts and upgrades.
On successful startup:
[mqtt] on_connect rc=0 connected=True
[mqtt] subscribed wmn/metrics/#
[pub] wmn/analysis/<device> score=82 alerts=0 mobility=no
If no messages are published, ensure:
wmn/metrics/#)This service is kept lightweight and stateless (configuration is stored in a Docker volume). It can be deployed on a single host or on a separate server to separate metric collection from analytics.
Content type
Image
Digest
sha256:165213a30…
Size
48.1 MB
Last updated
8 months ago
docker pull irfanuruchi/wmn-analyzer