summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-09-15 20:37:04 +0200
committerRobin Gloster <mail@glob.in>2016-09-15 20:59:17 +0200
commit55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa (patch)
tree98b66bdda2011cabe6e629edf3009c155ae3aa2e /nixos/modules
parente43a15720d62f6640d21ed49c12a3b76a563e99e (diff)
parent0ded9a63a30eb9d42ad76fd28d7de836c2f82bdc (diff)
downloadnixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.tar
nixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.tar.gz
nixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.tar.bz2
nixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.tar.lz
nixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.tar.xz
nixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.tar.zst
nixlib-55b8430f6f0ab4a8d37c94bdd64097d5761e4eaa.zip
Merge branch 'prometheus-node-exporter' of https://github.com/teh/nixpkgs into prometheus-nixos-exporter
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/monitoring/prometheus/node-exporter.nix19
1 files changed, 17 insertions, 2 deletions
diff --git a/nixos/modules/services/monitoring/prometheus/node-exporter.nix b/nixos/modules/services/monitoring/prometheus/node-exporter.nix
index 6750d4c75070..02aedb53564d 100644
--- a/nixos/modules/services/monitoring/prometheus/node-exporter.nix
+++ b/nixos/modules/services/monitoring/prometheus/node-exporter.nix
@@ -4,6 +4,9 @@ with lib;
 
 let
   cfg = config.services.prometheus.nodeExporter;
+  cmdlineArgs = cfg.extraFlags ++ [
+    "-web.listen-address=${cfg.listenAddress}"
+  ];
 in {
   options = {
     services.prometheus.nodeExporter = {
@@ -33,6 +36,14 @@ in {
           Collectors to enable, additionally to the defaults.
         '';
       };
+
+      extraFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Extra commandline options when launching the node exporter.
+        '';
+      };
     };
   };
 
@@ -40,19 +51,23 @@ in {
     networking.firewall.allowedTCPPorts = [ cfg.port ];
 
     systemd.services.prometheus-node-exporter = {
+      description = "Prometheus exporter for machine metrics";
+      unitConfig.Documentation = "https://github.com/prometheus/node_exporter";
       wantedBy = [ "multi-user.target" ];
       after    = [ "network.target" ];
       script = ''
-        ${pkgs.prometheus-node-exporter.bin}/bin/node_exporter \
+        exec ${pkgs.prometheus-node-exporter}/bin/node_exporter \
           ${optionalString (cfg.enabledCollectors != [])
             ''-collectors.enabled ${concatStringsSep "," cfg.enabledCollectors}''} \
-          -web.listen-address ${cfg.listenAddress}:${toString cfg.port}
+          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
       '';
       serviceConfig = {
         User = "nobody";
         Restart  = "always";
         PrivateTmp = true;
         WorkingDirectory = /tmp;
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
       };
     };
   };