codeblocks: fix darwin build (#369774)
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / kea.nix
blobf40cae4492e034ae7faff1a5498b0ac24a60a684
2   config,
3   lib,
4   pkgs,
5   utils,
6   ...
7 }:
9 let
10   cfg = config.services.prometheus.exporters.kea;
11   inherit (lib)
12     mkOption
13     types
14     mkRenamedOptionModule
15     literalExpression
16     ;
19   imports = [
20     (mkRenamedOptionModule [ "controlSocketPaths" ] [ "targets" ])
21   ];
22   port = 9547;
23   extraOpts = {
24     targets = mkOption {
25       type = types.listOf types.str;
26       example = literalExpression ''
27         [
28           "/run/kea/kea-dhcp4.socket"
29           "/run/kea/kea-dhcp6.socket"
30           "http://127.0.0.1:8547"
31         ]
32       '';
33       description = ''
34         Paths or URLs to the Kea control socket.
35       '';
36     };
37   };
38   serviceOpts = {
39     after = [
40       "kea-dhcp4-server.service"
41       "kea-dhcp6-server.service"
42     ];
43     serviceConfig = {
44       User = "kea";
45       DynamicUser = true;
46       ExecStart = utils.escapeSystemdExecArgs (
47         [
48           (lib.getExe pkgs.prometheus-kea-exporter)
49           "--address"
50           cfg.listenAddress
51           "--port"
52           cfg.port
53         ]
54         ++ cfg.extraFlags
55         ++ cfg.targets
56       );
57       RuntimeDirectory = "kea";
58       RuntimeDirectoryPreserve = true;
59       RestrictAddressFamilies = [
60         # Need AF_UNIX to collect data
61         "AF_UNIX"
62       ];
63     };
64   };