anyrun: 0-unstable-2024-11-08 -> 0-unstable-2024-12-27 (#369731)
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / surfboard.nix
blob4306b813c578907072e6a21701a3e9c35f86d422
2   config,
3   lib,
4   pkgs,
5   options,
6   ...
7 }:
9 let
10   cfg = config.services.prometheus.exporters.surfboard;
11   inherit (lib) mkOption types concatStringsSep;
14   port = 9239;
15   extraOpts = {
16     modemAddress = mkOption {
17       type = types.str;
18       default = "192.168.100.1";
19       description = ''
20         The hostname or IP of the cable modem.
21       '';
22     };
23   };
24   serviceOpts = {
25     description = "Prometheus exporter for surfboard cable modem";
26     unitConfig.Documentation = "https://github.com/ipstatic/surfboard_exporter";
27     serviceConfig = {
28       ExecStart = ''
29         ${pkgs.prometheus-surfboard-exporter}/bin/surfboard_exporter \
30           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
31           --modem-address ${cfg.modemAddress} \
32           ${concatStringsSep " \\\n  " cfg.extraFlags}
33       '';
34     };
35   };