summary refs log tree commit diff
path: root/nixos/tests/prometheus-exporters.nix
diff options
context:
space:
mode:
authorWilliButz <WilliButz@users.noreply.github.com>2023-09-25 12:09:36 +0200
committerGitHub <noreply@github.com>2023-09-25 12:09:36 +0200
commit2d30a37d9f4bc44a28be007296a120be398e2ede (patch)
tree30e5c902648614722bb5d0b398ef682e1a5e8610 /nixos/tests/prometheus-exporters.nix
parentf4822bb295ea194a1278af287771c615636cbcbf (diff)
parent5e75b3630247c5be083a8af40ebe3c5528f531f4 (diff)
downloadnixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.tar
nixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.tar.gz
nixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.tar.bz2
nixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.tar.lz
nixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.tar.xz
nixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.tar.zst
nixpkgs-2d30a37d9f4bc44a28be007296a120be398e2ede.zip
Merge pull request #248925 from FugiMuffi/prometheus-sabnzbd-exporter
prometheus-sabnzbd-exporter: init at 0.1.70
Diffstat (limited to 'nixos/tests/prometheus-exporters.nix')
-rw-r--r--nixos/tests/prometheus-exporters.nix38
1 files changed, 38 insertions, 0 deletions
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 306c5e071e7..7db7fdf13eb 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -1178,6 +1178,44 @@ let
       '';
     };
 
+    sabnzbd = {
+      exporterConfig = {
+        enable = true;
+        servers = [{
+          baseUrl = "http://localhost:8080";
+          apiKeyFile = "/var/sabnzbd-apikey";
+        }];
+      };
+
+      metricProvider = {
+        services.sabnzbd.enable = true;
+
+        # unrar is required for sabnzbd
+        nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ "unrar" ];
+
+        # extract the generated api key before starting
+        systemd.services.sabnzbd-apikey = {
+          requires = [ "sabnzbd.service" ];
+          after = [ "sabnzbd.service" ];
+          requiredBy = [ "prometheus-sabnzbd-exporter.service" ];
+          before = [ "prometheus-sabnzbd-exporter.service" ];
+          script = ''
+            grep -Po '^api_key = \K.+' /var/lib/sabnzbd/sabnzbd.ini > /var/sabnzbd-apikey
+          '';
+        };
+      };
+
+      exporterTest = ''
+        wait_for_unit("sabnzbd.service")
+        wait_for_unit("prometheus-sabnzbd-exporter.service")
+        wait_for_open_port(8080)
+        wait_for_open_port(9387)
+        wait_until_succeeds(
+            "curl -sSf 'localhost:9387/metrics' | grep 'sabnzbd_queue_size{sabnzbd_instance=\"http://localhost:8080\"} 0.0'"
+        )
+      '';
+    };
+
     scaphandre = {
       exporterConfig = {
         enable = true;