nixos/tests/prometheus-exporters: add test for prometheus-restic-exporter

This commit is contained in:
MinerSebas 2024-02-01 15:00:35 +01:00
parent d1f031cbbd
commit da91e4d75b
2 changed files with 44 additions and 1 deletions

View File

@ -1217,6 +1217,39 @@ let
'';
};
restic =
let
repository = "rest:http://127.0.0.1:8000";
passwordFile = pkgs.writeText "restic-test-password" "test-password";
in
{
exporterConfig = {
enable = true;
inherit repository passwordFile;
};
metricProvider = {
services.restic.server = {
enable = true;
extraFlags = [ "--no-auth" ];
};
environment.systemPackages = [ pkgs.restic ];
};
exporterTest = ''
# prometheus-restic-exporter.service fails without initialised repository
systemctl("stop prometheus-restic-exporter.service")
# Initialise the repository
wait_for_unit("restic-rest-server.service")
wait_for_open_port(8000)
succeed("restic init --repo ${repository} --password-file ${passwordFile}")
systemctl("start prometheus-restic-exporter.service")
wait_for_unit("prometheus-restic-exporter.service")
wait_for_open_port(9753)
wait_until_succeeds("curl -sSf localhost:9753/metrics | grep 'restic_check_success 1.0'")
'';
};
rspamd = {
exporterConfig = {
enable = true;
@ -1722,7 +1755,12 @@ mapAttrs
testScript = ''
${nodeName}.start()
${concatStringsSep "\n" (map (line:
if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
if builtins.any (b: b) [
(builtins.match "^[[:space:]]*$" line != null)
(builtins.substring 0 1 line == "#")
(builtins.substring 0 1 line == " ")
(builtins.substring 0 1 line == ")")
]
then line
else "${nodeName}.${line}"
) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}

View File

@ -3,6 +3,7 @@
, fetchFromGitHub
, python3
, restic
, nixosTests
}:
stdenvNoCC.mkDerivation rec {
@ -32,6 +33,10 @@ stdenvNoCC.mkDerivation rec {
runHook postInstall
'';
passthru.tests = {
restic-exporter = nixosTests.prometheus-exporters.restic;
};
meta = with lib; {
description = "Prometheus exporter for the Restic backup system";
homepage = "https://github.com/ngosang/restic-exporter";