nixos/promtheus-dnsmasq-exporter: add module

Changed files
+40
nixos
modules
services
monitoring
prometheus
+1
nixos/modules/services/monitoring/prometheus/exporters.nix
···
exporterOpts = {
blackbox = import ./exporters/blackbox.nix { inherit config lib pkgs; };
collectd = import ./exporters/collectd.nix { inherit config lib pkgs; };
+
dnsmasq = import ./exporters/dnsmasq.nix { inherit config lib pkgs; };
dovecot = import ./exporters/dovecot.nix { inherit config lib pkgs; };
fritzbox = import ./exporters/fritzbox.nix { inherit config lib pkgs; };
json = import ./exporters/json.nix { inherit config lib pkgs; };
+39
nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
···
+
{ config, lib, pkgs }:
+
+
with lib;
+
+
let
+
cfg = config.services.prometheus.exporters.dnsmasq;
+
in
+
{
+
port = 9153;
+
extraOpts = {
+
dnsmasqListenAddress = mkOption {
+
type = types.str;
+
default = "localhost:53";
+
description = ''
+
Address on which dnsmasq listens.
+
'';
+
};
+
leasesPath = mkOption {
+
type = types.path;
+
default = "/var/lib/misc/dnsmasq.leases";
+
example = "/var/lib/dnsmasq/dnsmasq.leases";
+
description = ''
+
Path to the <literal>dnsmasq.leases</literal> file.
+
'';
+
};
+
};
+
serviceOpts = {
+
serviceConfig = {
+
DynamicUser = true;
+
ExecStart = ''
+
${pkgs.prometheus-dnsmasq-exporter}/bin/dnsmasq_exporter \
+
--listen ${cfg.listenAddress}:${toString cfg.port} \
+
--dnsmasq ${cfg.dnsmasqListenAddress} \
+
--leases_path ${cfg.leasesPath} \
+
${concatStringsSep " \\\n " cfg.extraFlags}
+
'';
+
};
+
};
+
}