tor-browser: fix desktop icon (#365780)
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / bind.nix
blob3390374172c4a7e672bcf9fe0d37cfafed5e963a
2   config,
3   lib,
4   pkgs,
5   options,
6   ...
7 }:
9 let
10   cfg = config.services.prometheus.exporters.bind;
11   inherit (lib) mkOption types concatStringsSep;
14   port = 9119;
15   extraOpts = {
16     bindURI = mkOption {
17       type = types.str;
18       default = "http://localhost:8053/";
19       description = ''
20         HTTP XML API address of an Bind server.
21       '';
22     };
23     bindTimeout = mkOption {
24       type = types.str;
25       default = "10s";
26       description = ''
27         Timeout for trying to get stats from Bind.
28       '';
29     };
30     bindVersion = mkOption {
31       type = types.enum [
32         "xml.v2"
33         "xml.v3"
34         "auto"
35       ];
36       default = "auto";
37       description = ''
38         BIND statistics version. Can be detected automatically.
39       '';
40     };
41     bindGroups = mkOption {
42       type = types.listOf (
43         types.enum [
44           "server"
45           "view"
46           "tasks"
47         ]
48       );
49       default = [
50         "server"
51         "view"
52       ];
53       description = ''
54         List of statistics to collect. Available: [server, view, tasks]
55       '';
56     };
57   };
58   serviceOpts = {
59     serviceConfig = {
60       ExecStart = ''
61         ${pkgs.prometheus-bind-exporter}/bin/bind_exporter \
62           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
63           --bind.pid-file /var/run/named/named.pid \
64           --bind.timeout ${toString cfg.bindTimeout} \
65           --bind.stats-url ${cfg.bindURI} \
66           --bind.stats-version ${cfg.bindVersion} \
67           --bind.stats-groups ${concatStringsSep "," cfg.bindGroups} \
68           ${concatStringsSep " \\\n  " cfg.extraFlags}
69       '';
70     };
71   };