diff --git a/morph/lib/storage.nix b/morph/lib/storage.nix index 86e142286351237099337d38d03a9b54255b8246..92adc653cce83f28312d66b8fad3c79ca9b2bbe8 100644 --- a/morph/lib/storage.nix +++ b/morph/lib/storage.nix @@ -43,8 +43,14 @@ in { ../../nixos/modules/monitoring/vpn/client.nix # Expose base system metrics over the monitoringvpn. ../../nixos/modules/monitoring/exporters/node.nix + # At least some of our storage nodes utilize MegaRAID storage controllers. + ../../nixos/modules/monitoring/exporters/megacli2prom.nix ]; + # Enable statistics gathering for MegaRAID cards. + # TODO would be nice to enable only on machines that have such a device. + services.private-storage.monitoring.megacli2prom.enable = true; + # Turn on the Private Storage (Tahoe-LAFS) service. services.private-storage = { # Yep. Turn it on. diff --git a/nixos/modules/monitoring/exporters/megacli2prom.nix b/nixos/modules/monitoring/exporters/megacli2prom.nix index 186acc0a345d277757bf42cf604c140667e6a4c0..83370b5989321121ca3bf9cb5d9bf272cf18f00f 100644 --- a/nixos/modules/monitoring/exporters/megacli2prom.nix +++ b/nixos/modules/monitoring/exporters/megacli2prom.nix @@ -9,7 +9,7 @@ # # See https://nixos.org/manual/nixos/stable/#module-services-prometheus-exporters -{ config, lib, ourpkgs }: +{ config, options, lib, ourpkgs, ... }: let cfg = config.services.private-storage.monitoring.megacli2prom; @@ -18,9 +18,9 @@ in { options.services.private-storage.monitoring.megacli2prom = { enable = lib.mkEnableOption "MegaCli2Prom metrics gathering service"; outFile = lib.mkOption { - type = lib.types.path; + type = lib.types.str; description = "Where to store the temporary file for node exporter to scrape?"; - default = /run/prometheus-node-exporter/megacli.prom + default = "/run/prometheus-node-exporter/megacli.prom"; }; interval = lib.mkOption { type = lib.types.str; @@ -34,9 +34,7 @@ in { config = lib.mkIf cfg.enable { - environment.systemPackages = [ ourpkgs.megacli2prom ]; - systemd.services.megacli2prom = { enable = true; description = "MegaCli2Prom metrics gathering service";