From c7f825c0fbb6ba2c4889af1130ca6b135026e157 Mon Sep 17 00:00:00 2001 From: "xiaodong.jia" Date: Wed, 29 Apr 2026 10:38:01 +0800 Subject: [PATCH 1/5] prometheus-speedtest-exporter: init at 0.0.5 Adds the danopstech speedtest Prometheus exporter (podocarp fork with -listen-address support). https://github.com/danopstech/speedtest_exporter --- .../prometheus-speedtest-exporter/package.nix | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix diff --git a/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix b/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix new file mode 100644 index 000000000000..ab80dae916ee --- /dev/null +++ b/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix @@ -0,0 +1,28 @@ +{ + buildGoModule, + lib, + fetchFromGitHub, +}: + +buildGoModule { + __structuredAttrs = true; + pname = "prometheus-speedtest-exporter"; + version = "0.0.5-unstable-2026-04-29"; + + src = fetchFromGitHub { + owner = "podocarp"; + repo = "speedtest_exporter"; + rev = "e82be2ecb5d0cbcd5a6a21909afed6991b5d7e00"; + hash = "sha256-7uy1rVll7YzM9WeQQKKSiI4nblIPADD6h/5z/diCH4E="; + }; + + vendorHash = "sha256-w113vWnXM4h3zckmj39Qx/oZFaH9Mq0xUSqNxopdQO0="; + + meta = { + description = "Speedtest.net Exporter for the Prometheus monitoring system"; + mainProgram = "speedtest_exporter"; + homepage = "https://github.com/danopstech/speedtest_exporter"; + license = lib.licenses.gpl3Only; + maintainers = [ ]; + }; +} From 7d6226f8560ce7848956070cfed61c81173a2345 Mon Sep 17 00:00:00 2001 From: "xiaodong.jia" Date: Wed, 29 Apr 2026 10:38:11 +0800 Subject: [PATCH 2/5] nixos/prometheus-exporters: add speedtest exporter Introduces the NixOS module for the danopstech speedtest Prometheus exporter. Exposes serverID and serverFallback options matching the exporter's CLI flags. --- .../monitoring/prometheus/exporters.nix | 1 + .../prometheus/exporters/speedtest.nix | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 18a1e30d31fe..53b51fce7fe5 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -119,6 +119,7 @@ let "smartctl" "smokeping" "snmp" + "speedtest" "sql" "statsd" "storagebox" diff --git a/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix b/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix new file mode 100644 index 000000000000..da6497293776 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix @@ -0,0 +1,49 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.prometheus.exporters.speedtest; + inherit (lib) + mkOption + types + concatStringsSep + optionalString + ; +in +{ + extraOpts = { + serverID = mkOption { + type = types.int; + default = -1; + description = '' + Speedtest.net server ID to run tests against. + -1 picks the closest server to your location. + ''; + }; + + serverFallback = mkOption { + type = types.bool; + default = false; + description = '' + If the configured serverID is unavailable, fall back to the closest available server. + ''; + }; + }; + + serviceOpts = { + serviceConfig = { + ExecStart = '' + ${pkgs.prometheus-speedtest-exporter}/bin/speedtest_exporter \ + -listen-address ${cfg.listenAddress} \ + -port ${toString cfg.port} \ + -server_id ${toString cfg.serverID} \ + ${optionalString cfg.serverFallback "-server_fallback"} \ + ${concatStringsSep " \\\n " cfg.extraFlags} + ''; + }; + }; +} From aa2961d365aa4fd71e57a3d4251857970cfd9cfa Mon Sep 17 00:00:00 2001 From: "xiaodong.jia" Date: Wed, 29 Apr 2026 11:07:37 +0800 Subject: [PATCH 3/5] nixos/prometheus-exporters: fix missing port for speedtest exporter --- .../services/monitoring/prometheus/exporters/speedtest.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix b/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix index da6497293776..143cda300096 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/speedtest.nix @@ -15,6 +15,8 @@ let ; in { + port = 9798; + extraOpts = { serverID = mkOption { type = types.int; From e968009ab411506d917ba8e81ac75228201d2a4f Mon Sep 17 00:00:00 2001 From: "xiaodong.jia" Date: Fri, 8 May 2026 12:17:41 +0800 Subject: [PATCH 4/5] nixos/prometheus-exporters: change repo to updated fork --- .../pr/prometheus-speedtest-exporter/package.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix b/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix index ab80dae916ee..844872009ef0 100644 --- a/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix +++ b/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix @@ -4,25 +4,25 @@ fetchFromGitHub, }: -buildGoModule { +buildGoModule rec { __structuredAttrs = true; pname = "prometheus-speedtest-exporter"; - version = "0.0.5-unstable-2026-04-29"; + version = "v1.0.0"; src = fetchFromGitHub { owner = "podocarp"; repo = "speedtest_exporter"; - rev = "e82be2ecb5d0cbcd5a6a21909afed6991b5d7e00"; - hash = "sha256-7uy1rVll7YzM9WeQQKKSiI4nblIPADD6h/5z/diCH4E="; + rev = version; + hash = "sha256-n9eunZRssS13mTOeFeZ/PpfSj430DKf3ZRS10hY4Ps8="; }; - vendorHash = "sha256-w113vWnXM4h3zckmj39Qx/oZFaH9Mq0xUSqNxopdQO0="; + vendorHash = "sha256-HBg44D0CUc4HYCBwGrswnrqG5o5ltA6UT8L0oWetlIc="; meta = { description = "Speedtest.net Exporter for the Prometheus monitoring system"; mainProgram = "speedtest_exporter"; - homepage = "https://github.com/danopstech/speedtest_exporter"; + homepage = "https://github.com/podocarp/speedtest_exporter"; license = lib.licenses.gpl3Only; - maintainers = [ ]; + maintainers = with lib.maintainers; [ podocarp ]; }; } From 6951377e1d8c8e51f255199ad8d124d739851925 Mon Sep 17 00:00:00 2001 From: "xiaodong.jia" Date: Sat, 9 May 2026 00:13:39 +0800 Subject: [PATCH 5/5] nixos/prometheus-exporters: use finalAttrs pattern --- pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix b/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix index 844872009ef0..8eee84e785da 100644 --- a/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix +++ b/pkgs/by-name/pr/prometheus-speedtest-exporter/package.nix @@ -4,15 +4,15 @@ fetchFromGitHub, }: -buildGoModule rec { +buildGoModule (finalAttrs: { __structuredAttrs = true; pname = "prometheus-speedtest-exporter"; - version = "v1.0.0"; + version = "1.0.0"; src = fetchFromGitHub { owner = "podocarp"; repo = "speedtest_exporter"; - rev = version; + tag = "v${finalAttrs.version}"; hash = "sha256-n9eunZRssS13mTOeFeZ/PpfSj430DKf3ZRS10hY4Ps8="; }; @@ -25,4 +25,4 @@ buildGoModule rec { license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ podocarp ]; }; -} +})