tor-browser: fix desktop icon (#365780)
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / flow.nix
blob372a91dd01e35308e2b33cbe1b02cf0815e33afe
2   config,
3   lib,
4   pkgs,
5   options,
6   ...
7 }:
9 let
10   cfg = config.services.prometheus.exporters.flow;
11   inherit (lib)
12     mkOption
13     types
14     literalExpression
15     concatStringsSep
16     optionalString
17     ;
20   port = 9590;
21   extraOpts = {
22     brokers = mkOption {
23       type = types.listOf types.str;
24       example = literalExpression ''[ "kafka.example.org:19092" ]'';
25       description = "List of Kafka brokers to connect to.";
26     };
28     asn = mkOption {
29       type = types.ints.positive;
30       example = 65542;
31       description = "The ASN being monitored.";
32     };
34     partitions = mkOption {
35       type = types.listOf types.int;
36       default = [ ];
37       description = ''
38         The number of the partitions to consume, none means all.
39       '';
40     };
42     topic = mkOption {
43       type = types.str;
44       example = "pmacct.acct";
45       description = "The Kafka topic to consume from.";
46     };
47   };
49   serviceOpts = {
50     serviceConfig = {
51       DynamicUser = true;
52       ExecStart = ''
53         ${pkgs.prometheus-flow-exporter}/bin/flow-exporter \
54           -asn ${toString cfg.asn} \
55           -topic ${cfg.topic} \
56           -brokers ${concatStringsSep "," cfg.brokers} \
57           ${optionalString (cfg.partitions != [ ]) "-partitions ${concatStringsSep "," cfg.partitions}"} \
58           -addr ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags}
59       '';
60     };
61   };