vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / surfboard.nix
blobd848e263a3b643b02f2ca8ccaf9db3a4ebf8b431
1 { config, lib, pkgs, options, ... }:
3 let
4   cfg = config.services.prometheus.exporters.surfboard;
5   inherit (lib) mkOption types concatStringsSep;
6 in
8   port = 9239;
9   extraOpts = {
10     modemAddress = mkOption {
11       type = types.str;
12       default = "192.168.100.1";
13       description = ''
14         The hostname or IP of the cable modem.
15       '';
16     };
17   };
18   serviceOpts = {
19     description = "Prometheus exporter for surfboard cable modem";
20     unitConfig.Documentation = "https://github.com/ipstatic/surfboard_exporter";
21     serviceConfig = {
22       ExecStart = ''
23         ${pkgs.prometheus-surfboard-exporter}/bin/surfboard_exporter \
24           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
25           --modem-address ${cfg.modemAddress} \
26           ${concatStringsSep " \\\n  " cfg.extraFlags}
27       '';
28     };
29   };