summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorWilliButz <wbutz@cyberfnord.de>2018-05-01 16:05:07 +0200
committerRobin Gloster <mail@glob.in>2018-05-01 18:00:53 +0200
commitcb4c2834efac36f211ea97d9d1e663b8ff8283a3 (patch)
treee81fbf0e847ea305430b8a573435fe00cf6e1979 /nixos
parent4bca8f8d251f81a6b23994496b3dda6e5a192718 (diff)
downloadnixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.tar
nixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.tar.gz
nixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.tar.bz2
nixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.tar.lz
nixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.tar.xz
nixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.tar.zst
nixpkgs-cb4c2834efac36f211ea97d9d1e663b8ff8283a3.zip
nixos/prometheus-varnish-exporter: update module
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/varnish.nix70
1 files changed, 68 insertions, 2 deletions
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix b/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
index b439a83e7aa..8dbf2d735ab 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
@@ -7,14 +7,80 @@ let
 in
 {
   port = 9131;
+  extraOpts = {
+    noExit = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Do not exit server on Varnish scrape errors.
+      '';
+    };
+    withGoMetrics = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Export go runtime and http handler metrics.
+      '';
+    };
+    verbose = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable verbose logging.
+      '';
+    };
+    raw = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable raw stdout logging without timestamps.
+      '';
+    };
+    varnishStatPath = mkOption {
+      type = types.str;
+      default = "varnishstat";
+      description = ''
+        Path to varnishstat.
+      '';
+    };
+    instance = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = ''
+        varnishstat -n value.
+      '';
+    };
+    healthPath = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = ''
+        Path under which to expose healthcheck. Disabled unless configured.
+      '';
+    };
+    telemetryPath = mkOption {
+      type = types.str;
+      default = "/metrics";
+      description = ''
+        Path under which to expose metrics.
+      '';
+    };
+  };
   serviceOpts = {
     path = [ pkgs.varnish ];
     serviceConfig = {
       DynamicUser = true;
       ExecStart = ''
         ${pkgs.prometheus-varnish-exporter}/bin/prometheus_varnish_exporter \
-          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-          ${concatStringsSep " \\\n  " cfg.extraFlags}
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --web.telemetry-path ${cfg.telemetryPath} \
+          --varnishstat-path ${cfg.varnishStatPath} \
+          ${concatStringsSep " \\\n  " (cfg.extraFlags
+            ++ optional (cfg.healthPath != null) "--web.health-path ${cfg.healthPath}"
+            ++ optional (cfg.instance != null) "-n ${cfg.instance}"
+            ++ optional cfg.noExit "--no-exit"
+            ++ optional cfg.withGoMetrics "--with-go-metrics"
+            ++ optional cfg.verbose "--verbose"
+            ++ optional cfg.raw "--raw")}
       '';
     };
   };