Overview
A plugin allowing for executing regular internet speed tests.
Usage
This plugin supports two engines:
- Baseline Engine: Uses the Python
speedtest-clilibrary (default). - Native Engine (Optimized): Uses the official native Ookla Speedtest binary.
Native Speedtest Path
The plugin looks for the Speedtest binary at /usr/bin/speedtest by default. If the binary is located elsewhere, you can configure the path using the NATIVE_SPEEDTEST_PATH environment variable:
Example:
NATIVE_SPEEDTEST_PATH=/custom/path/to/speedtest
If this variable is left unset, the plugin assumes /usr/bin/speedtest.
Opt-in for Native Engine
To use the native engine, you must provide the official binary to the container. The native binary is strongly recommended for internet connections > 100 Mbps to ensure CPU bottlenecks don't affect your results.
Setup Instructions:
- Download: Get the official binary for your architecture from the Speedtest CLI Homepage.
- Place & Prepare: Place the binary on your host machine (e.g., in
/opt/netalertx/) and ensure it has executable permissions:
chmod +x /opt/netalertx/speedtest
- Docker Mapping: Map the host file to exactly
/usr/bin/speedtestinside the container via yourdocker-compose.yml:
services:
netalertx:
volumes:
- /opt/netalertx/speedtest:/usr/bin/speedtest:ro
Why this mapping?
Inside the container, a Python version of speedtest often exists in the virtual environment (/opt/venv/bin/speedtest). Mapping your native binary specifically to /usr/bin/speedtest allows the plugin to prioritize the high-performance native engine over the baseline library.
Data Mapping
- Watched_Value1 — Download Speed (Mbps).
- Watched_Value2 — Upload Speed (Mbps).
- Watched_Value3 — Full JSON payload (useful for n8n or detailed webhooks).
Notes
- The native binary is recommended for connections > 100 Mbps.
- If the native binary is not detected at /usr/bin/speedtest, or if it fails to execute, the plugin will seamlessly fall back to the baseline Python library.