nixos/prometheus-kea-exporter: Fix `ExecStart` arguments

The current `ExecStart` will not allow for multiple sockets to properly
be passed to the program since the extra newline character is interpreted to
be part of the socket path.
main
Jared Baur 2 years ago
parent 50c692f317
commit 5d79c93d77
No known key found for this signature in database
  1. 2
      nixos/modules/services/monitoring/prometheus/exporters/kea.nix
  2. 23
      nixos/tests/prometheus-exporters.nix

@ -35,7 +35,7 @@ in {
${pkgs.prometheus-kea-exporter}/bin/kea-exporter \ ${pkgs.prometheus-kea-exporter}/bin/kea-exporter \
--address ${cfg.listenAddress} \ --address ${cfg.listenAddress} \
--port ${toString cfg.port} \ --port ${toString cfg.port} \
${concatStringsSep " \\n" cfg.controlSocketPaths} ${concatStringsSep " " cfg.controlSocketPaths}
''; '';
SupplementaryGroups = [ "kea" ]; SupplementaryGroups = [ "kea" ];
RestrictAddressFamilies = [ RestrictAddressFamilies = [

@ -374,25 +374,34 @@ let
}; };
kea = let kea = let
controlSocketPath = "/run/kea/dhcp6.sock"; controlSocketPathV4 = "/run/kea/dhcp4.sock";
controlSocketPathV6 = "/run/kea/dhcp6.sock";
in in
{ {
exporterConfig = { exporterConfig = {
enable = true; enable = true;
controlSocketPaths = [ controlSocketPaths = [
controlSocketPath controlSocketPathV4
controlSocketPathV6
]; ];
}; };
metricProvider = { metricProvider = {
systemd.services.prometheus-kea-exporter.after = [ "kea-dhcp6-server.service" ];
services.kea = { services.kea = {
dhcp4 = {
enable = true;
settings = {
control-socket = {
socket-type = "unix";
socket-name = controlSocketPathV4;
};
};
};
dhcp6 = { dhcp6 = {
enable = true; enable = true;
settings = { settings = {
control-socket = { control-socket = {
socket-type = "unix"; socket-type = "unix";
socket-name = controlSocketPath; socket-name = controlSocketPathV6;
}; };
}; };
}; };
@ -400,8 +409,10 @@ let
}; };
exporterTest = '' exporterTest = ''
wait_for_unit("kea-dhcp4-server.service")
wait_for_unit("kea-dhcp6-server.service") wait_for_unit("kea-dhcp6-server.service")
wait_for_file("${controlSocketPath}") wait_for_file("${controlSocketPathV4}")
wait_for_file("${controlSocketPathV6}")
wait_for_unit("prometheus-kea-exporter.service") wait_for_unit("prometheus-kea-exporter.service")
wait_for_open_port(9547) wait_for_open_port(9547)
succeed( succeed(

Loading…
Cancel
Save