All apps · 0 apps
ookla-speedtest-exporter
Docker app from ccmpbll's Repository
Overview
Prometheus metrics exporter for Ookla Speedtest CLI. Runs a live speedtest on each scrape and exposes bandwidth, ping, latency, and packet loss metrics.
Readme
View on GitHubookla-speedtest-exporter
A Prometheus exporter that runs Ookla's Speedtest CLI and exposes the results as Prometheus metrics on port 9142.
Each Prometheus scrape triggers a live speedtest (~20-40 seconds). Because of this, you must set scrape_timeout in your Prometheus config (see example below). The exporter ensures only one speedtest runs at a time — concurrent scrapes block and share the result.
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
TZ |
No | system default | Timezone in tz database format, e.g. America/New_York |
SERVER_ID |
No | auto-select | Ookla server numeric ID to force a specific test server |
Quick Start
docker run -d \
--name ookla-speedtest-exporter \
-e TZ=America/New_York \
-p 9142:9142 \
ccmpbll/ookla-speedtest-exporter:latest
Docker Compose
services:
speedtest-exporter:
image: ccmpbll/ookla-speedtest-exporter:latest
environment:
- TZ=America/New_York
ports:
- "9142:9142"
restart: unless-stopped
Prometheus Configuration
scrape_configs:
- job_name: 'speedtest'
static_configs:
- targets: ['speedtest-exporter:9142']
# Required — speedtest takes 20-40 seconds
scrape_timeout: 60s
# Controls how often tests run
scrape_interval: 1h
Exposed Metrics
| Metric | Type | Description |
|---|---|---|
speedtest_scrape_success |
Gauge | 1 if the last run succeeded, 0 if it failed |
speedtest_last_run_timestamp |
Gauge | Unix timestamp of the last speedtest run |
speedtest_ping_latency_ms |
Gauge | Ping latency in milliseconds |
speedtest_ping_jitter_ms |
Gauge | Ping jitter in milliseconds |
speedtest_ping_low_ms |
Gauge | Ping low in milliseconds |
speedtest_ping_high_ms |
Gauge | Ping high in milliseconds |
speedtest_download_bandwidth_mbps |
Gauge | Download bandwidth in Mbps |
speedtest_download_bytes |
Gauge | Total bytes received during download test |
speedtest_download_elapsed_ms |
Gauge | Download test duration in milliseconds |
speedtest_download_latency_iqm_ms |
Gauge | Download latency IQM in milliseconds |
speedtest_download_latency_low_ms |
Gauge | Download latency low in milliseconds |
speedtest_download_latency_high_ms |
Gauge | Download latency high in milliseconds |
speedtest_download_latency_jitter_ms |
Gauge | Download latency jitter in milliseconds |
speedtest_upload_bandwidth_mbps |
Gauge | Upload bandwidth in Mbps |
speedtest_upload_bytes |
Gauge | Total bytes sent during upload test |
speedtest_upload_elapsed_ms |
Gauge | Upload test duration in milliseconds |
speedtest_upload_latency_iqm_ms |
Gauge | Upload latency IQM in milliseconds |
speedtest_upload_latency_low_ms |
Gauge | Upload latency low in milliseconds |
speedtest_upload_latency_high_ms |
Gauge | Upload latency high in milliseconds |
speedtest_upload_latency_jitter_ms |
Gauge | Upload latency jitter in milliseconds |
speedtest_packet_loss |
Gauge | Packet loss percentage (only emitted when reported by the test server) |
speedtest_info |
Gauge | Always 1.0 — carries server_id, server_host, server_name, server_location, server_country, isp, and external_ip as labels |
Categories
Download Statistics
4,648
Total Downloads
Related apps
Explore more like this
Explore allDetails
Repository
ccmpbll/ookla-speedtest-exporterLast Updated2026-02-21
First Seen2026-02-21
Runtime arguments
- Network
bridge- Shell
sh- Privileged
- false
Template configuration
PortPorttcp
Prometheus Exporter Port
- Target
- 9142
- Default
- 9142
- Value
- 9142
TimezoneVariable
- Target
- TZ
- Default
- America/New_York
- Value
- America/New_York
Speedtest Server IDVariable
Specify an Ookla speedtest server (Optional)
- Target
- SERVER_ID