1{
2 config,
3 lib,
4 pkgs,
5 options,
6 ...
7}:
8
9let
10 cfg = config.services.prometheus.exporters.nats;
11 inherit (lib) mkOption types concatStringsSep;
12in
13{
14 port = 7777;
15
16 extraOpts = {
17 url = mkOption {
18 type = types.str;
19 default = "http://127.0.0.1:8222";
20 description = ''
21 NATS monitor endpoint to query.
22 '';
23 };
24 };
25
26 serviceOpts = {
27 serviceConfig = {
28 ExecStart = ''
29 ${pkgs.prometheus-nats-exporter}/bin/prometheus-nats-exporter \
30 -addr ${cfg.listenAddress} \
31 -port ${toString cfg.port} \
32 ${concatStringsSep " \\\n " cfg.extraFlags} \
33 ${cfg.url}
34 '';
35 };
36 };
37}