From abd24523f3775e16845329ca6363c6e06162cabb Mon Sep 17 00:00:00 2001 From: Oliver Charles Date: Fri, 21 Nov 2014 12:12:47 +0000 Subject: [PATCH] scollector: Allow users to specify external collectors --- .../services/monitoring/scollector.nix | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/monitoring/scollector.nix b/nixos/modules/services/monitoring/scollector.nix index ca0cbd97d892..ce70739abbc4 100644 --- a/nixos/modules/services/monitoring/scollector.nix +++ b/nixos/modules/services/monitoring/scollector.nix @@ -5,6 +5,21 @@ with lib; let cfg = config.services.scollector; + collectors = pkgs.runCommand "collectors" {} + '' + mkdir -p $out + ${lib.concatStringsSep + "\n" + (lib.mapAttrsToList + (frequency: binaries: + "mkdir -p $out/${frequency}\n" + + (lib.concatStringsSep + "\n" + (map (path: "ln -s ${path} $out/${frequency}/$(basename ${path})") + binaries))) + cfg.collectors)} + ''; + in { options = { @@ -53,6 +68,17 @@ in { ''; }; + collectors = mkOption { + type = types.attrs; + default = {}; + example = literalExample "{ 0 = [ \"\${postgresStats}/bin/collect-stats\" ]; }"; + description = '' + An attribute set mapping the frequency of collection to a list of + binaries that should be executed at that frequency. You can use "0" + to run a binary forever. + ''; + }; + }; }; @@ -70,7 +96,7 @@ in { User = cfg.user; Group = cfg.group; ExecStart = '' - ${cfg.package}/bin/scollector -h=${cfg.bosunHost} + ${cfg.package}/bin/scollector -h=${cfg.bosunHost} -c=${collectors} ''; }; };