A Speedtest exporter for Prometheus.
speedtest_exporter
is configured by optional command line flags
$ ./speedtest_exporter --help
Usage of speedtest_exporter
-web.listen-address string
Address on which to expose metrics and web interface (default ":9090")
-web.telemetry-path
Path under which to expose metrics (default "/metrics")
-server_fallback
If the serverID given is not available, should we fallback to closest available server
-server_id int
Speedtest.net server ID to run test against, -1 will pick the closest server to your location (default -1)
-speedtest_timeout
Timeout duration to limit caller to the Speedtest server. Use a time.Duration format (default "5m")
For pre-built binaries please take a look at the releases.
./speedtest_exporter [flags]
Example:
docker build -t speedtest_exporter .
docker run -d -p 9090:9090 speedtest_exporter [flags]
Configure Prometheus to scrape metrics from localhost:9090/metrics
This exporter locks (one concurrent scrape at a time) as it conducts the speedtest when scraped, remember set scrape interval, and scrap timeout accordingly as per example.
...
scrape_configs
- job_name: speedtest
scrape_interval: 60m
scrape_timeout: 60s
static_configs:
- targets: ['localhost:9090']
...
# HELP speedtest_download_speed_Bps Last download speedtest result
# TYPE speedtest_download_speed_Bps gauge
# HELP speedtest_latency_seconds Measured latency on last speed test
# TYPE speedtest_latency_seconds gauge
# HELP speedtest_scrape_duration_seconds Time to preform last speed test
# TYPE speedtest_scrape_duration_seconds gauge
# HELP speedtest_up Was the last speedtest successful.
# TYPE speedtest_up gauge
# HELP speedtest_upload_speed_Bps Last upload speedtest result
# TYPE speedtest_upload_speed_Bps gauge