added prometheus-borgmatic-exporter module

This commit is contained in:
Finn Landweber 2024-02-23 15:48:13 +01:00
parent 69f015e4f4
commit 0d58b75cba
No known key found for this signature in database
3 changed files with 55 additions and 0 deletions

View File

@ -27,6 +27,7 @@ let
"bird"
"bitcoin"
"blackbox"
"borgmatic"
"buildkite-agent"
"collectd"
"deluge"

View File

@ -0,0 +1,34 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.prometheus.exporters.borgmatic;
in
{
port = 9996;
extraOpts.configFile = lib.mkOption {
type = lib.types.path;
default = "/etc/borgmatic/config.yaml";
description = ''
The path to the borgmatic config file
'';
};
serviceOpts = {
serviceConfig = {
DynamicUser = false;
ProtectSystem = false;
ProtectHome = lib.mkForce false;
ExecStart = ''
${pkgs.prometheus-borgmatic-exporter}/bin/borgmatic-exporter run \
--port ${toString cfg.port} \
--config ${toString cfg.configFile} \
${lib.concatMapStringsSep " " (f: lib.escapeShellArg f) cfg.extraFlags}
'';
};
};
}

View File

@ -177,6 +177,26 @@ let
'';
};
borgmatic = {
exporterConfig = {
enable = true;
user = "root";
};
metricProvider = {
services.borgmatic.enable = true;
services.borgmatic.settings.source_directories = [ "/home" ];
services.borgmatic.settings.repositories = [ { label = "local"; path = "/var/backup"; } ];
services.borgmatic.settings.keep_daily = 10;
};
exporterTest = ''
succeed("borgmatic rcreate -e none")
succeed("borgmatic")
wait_for_unit("prometheus-borgmatic-exporter.service")
wait_for_open_port(9996)
succeed("curl -sSf localhost:9996/metrics | grep 'borg_total_backups{repository=\"/var/backup\"} 1'")
'';
};
collectd = {
exporterConfig = {
enable = true;