Sign inSign up

danopstech/speedtest_exporter

By danopstech

•Updated about 5 years ago

🏎️ Prometheus exporter that runs speedtest and exposes results

Image
4

50K+

danopstech/speedtest_exporter repository overview

logo

⁠Speedtest Prometheus Exporter


A Speedtest⁠ exporter for Prometheus.

goreleaser build License Release Docker GitHub go.mod Go version os/arch os/arch os/arch Go Report Card

⁠Usage:

⁠Flags

speedtest_exporter is configured by optional command line flags

$ ./speedtest_exporter --help
Usage of speedtest_exporter
  -port string
        listening port to expose metrics on (default "9090")
  -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)

⁠Binaries

For pre-built binaries please take a look at the releases⁠.

./speedtest_exporter [flags]
⁠Docker

Docker Images can be found at GitHub Container Registry⁠ & Dockerhub⁠.

Example:

docker pull ghcr.io/danopstech/speedtest_exporter:latest

docker run \
  -p 9090:9090 \
  ghcr.io/danopstech/speedtest_exporter:latest [flags]
⁠Setup Prometheus to scrape speedtest_exporter

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']
...

⁠Exported Metrics:

# 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

⁠Example Grafana Dashboard:

https://grafana.com/grafana/dashboards/14336⁠

Tag summary

Content type

Image

Digest

Size

3.8 MB

Last updated

about 5 years ago

docker pull danopstech/speedtest_exporter