nixos/tests/prometheus-exporters: add test for prometheus-restic-exporter
This commit is contained in:
parent
d1f031cbbd
commit
da91e4d75b
2 changed files with 44 additions and 1 deletions
|
@ -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)))}
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in a new issue