{ config , lib , pkgs , options }: with lib; let cfg = config.services.prometheus.exporters.kea; in { port = 9547; extraOpts = { controlSocketPaths = mkOption { type = types.listOf types.str; example = literalExpression '' [ "/run/kea/kea-dhcp4.socket" "/run/kea/kea-dhcp6.socket" ] ''; description = lib.mdDoc '' Paths to kea control sockets ''; }; }; serviceOpts = { after = [ "kea-dhcp4-server.service" "kea-dhcp6-server.service" ]; serviceConfig = { User = "kea"; DynamicUser = true; ExecStart = '' ${pkgs.prometheus-kea-exporter}/bin/kea-exporter \ --address ${cfg.listenAddress} \ --port ${toString cfg.port} \ ${concatStringsSep " " cfg.controlSocketPaths} ''; RuntimeDirectory = "kea"; RuntimeDirectoryPreserve = true; RestrictAddressFamilies = [ # Need AF_UNIX to collect data "AF_UNIX" ]; }; }; }