68 lines
1.7 KiB
Nix
68 lines
1.7 KiB
Nix
{pkgs, config, lib, ...}:
|
|
with lib;
|
|
let
|
|
cfg = config.features.monitoring.slurm-exporter;
|
|
|
|
slurm-exporter-service = {
|
|
systemd.services.slurm-exporter = {
|
|
enable = true;
|
|
wantedBy = [ "multi-user.target" ];
|
|
after = [ "network.target" ];
|
|
description = "Prometheus SLURM exporter";
|
|
script = ''
|
|
PATH=$(${pkgs.nix}/bin/nix-store -q --referrers ${pkgs.slurm} | ${pkgs.gnugrep}/bin/grep wrappedSlurm)/bin
|
|
${slurm-exporter}/bin/prometheus-slurm-exporter -listen-address :${builtins.toString cfg.port}
|
|
'';
|
|
serviceConfig = {
|
|
RestartSec = "15s";
|
|
Restart = "on-failure";
|
|
};
|
|
};
|
|
};
|
|
|
|
slurm-exporter = pkgs.buildGoModule rec {
|
|
pname = "prometheus-slurm-exporter";
|
|
version = "master";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "vpenso";
|
|
repo = "prometheus-slurm-exporter";
|
|
rev = "master";
|
|
sha256 = "sha256-KS9LoDuLQFq3KoKpHd8vg1jw20YCNRJNJrnBnu5vxvs=";
|
|
};
|
|
|
|
vendorHash = "sha256-A1dd9T9SIEHDCiVT2UwV6T02BSLh9ej6LC/2l54hgwI=";
|
|
|
|
nativeBuildInputs = [ pkgs.slurm ];
|
|
|
|
# subPackages = [ "." ];
|
|
|
|
# deleteVendor = true;
|
|
|
|
# runVend = true;
|
|
|
|
doCheck = false;
|
|
|
|
meta = with lib; {
|
|
description = "Simple command-line snippet manager, written in Go";
|
|
homepage = "https://github.com/knqyf263/pet";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ kalbasit ];
|
|
platforms = platforms.linux ++ platforms.darwin;
|
|
};
|
|
};
|
|
|
|
in {
|
|
options.features.monitoring.slurm-exporter = {
|
|
enable = mkEnableOption "Enable SLURM prometheus exporter";
|
|
|
|
port = mkOption {
|
|
type = types.ints.unsigned;
|
|
default = 8080;
|
|
description = "Collector http port";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable slurm-exporter-service;
|
|
}
|