ookla-speedtest-exporter

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.

ookla-speedtest-exporter

Image Build Status Docker Image Size Docker Pulls License

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 all

Details

Repository
ccmpbll/ookla-speedtest-exporter
Last 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