From 6ae583f46f86fea04d85487e03bf6efc7a51e991 Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Sun, 22 May 2022 12:31:33 +0200 Subject: [PATCH] try folder size exporter --- common/default.nix | 4 ++++ nixos/machines/hera/configuration.nix | 1 + nixos/machines/zeus/configuration.nix | 1 + .../roles/prometheus-folder-size-exporter.nix | 22 +++++++++++++++++++ overlays/prometheus-folder-size-exporter.nix | 13 +++++++++++ 5 files changed, 41 insertions(+) create mode 100644 nixos/roles/prometheus-folder-size-exporter.nix create mode 100644 overlays/prometheus-folder-size-exporter.nix diff --git a/common/default.nix b/common/default.nix index b0907610..6d011d8a 100644 --- a/common/default.nix +++ b/common/default.nix @@ -7,6 +7,10 @@ with lib; { config = { m-0.monitoring = [ + { + host = "hera:9974"; + name = "hera-folder-sizes"; + } { host = "apollo:9100"; name = "apollo"; diff --git a/nixos/machines/hera/configuration.nix b/nixos/machines/hera/configuration.nix index 0d6bd69b..591ee183 100644 --- a/nixos/machines/hera/configuration.nix +++ b/nixos/machines/hera/configuration.nix @@ -29,6 +29,7 @@ in { ../../roles/mailman.nix ../../roles/firefox-sync.nix ../../roles/goatcounter.nix + ../../roles/prometheus-folder-size-exporter.nix ./web.nix ./mail.nix ./boot.nix diff --git a/nixos/machines/zeus/configuration.nix b/nixos/machines/zeus/configuration.nix index 9758b5f9..9d5a683a 100644 --- a/nixos/machines/zeus/configuration.nix +++ b/nixos/machines/zeus/configuration.nix @@ -39,6 +39,7 @@ in { nixos.source = "/disk/persist/maralorn/git/config"; machine-id.source = "/disk/persist/machine-id"; }; + environment.systemPackages = [pkgs.prometheus-folder-size-exporter]; systemd.services."activate-home-manager" = { path = [pkgs.nix pkgs.dbus]; diff --git a/nixos/roles/prometheus-folder-size-exporter.nix b/nixos/roles/prometheus-folder-size-exporter.nix new file mode 100644 index 00000000..b2c9158e --- /dev/null +++ b/nixos/roles/prometheus-folder-size-exporter.nix @@ -0,0 +1,22 @@ +{pkgs, ...}: let + config = [ + { + "path" = "/"; + explode_depth = 1; + "sum_remaining_subfolders" = true; + } + ]; +in { + systemd.services.prometheus-folder-size-exporter = { + after = ["network-online.target"]; + wants = ["network-online.target"]; + description = "Prometheus folder size exporter"; + wantedBy = ["multi-user.target"]; + + serviceConfig = { + DynamicUser = true; + Type = "simple"; + ExecStart = "${pkgs.prometheus-folder-size-exporter}/bin/prometheus-folder-size-exporter -b 60 -i ${builtins.toJSON config} -p 9974"; + }; + }; +} diff --git a/overlays/prometheus-folder-size-exporter.nix b/overlays/prometheus-folder-size-exporter.nix new file mode 100644 index 00000000..99babcbc --- /dev/null +++ b/overlays/prometheus-folder-size-exporter.nix @@ -0,0 +1,13 @@ +final: prev: { + prometheus-folder-size-exporter = final.rustPlatform.buildRustPackage rec { + pname = "prometheus_folder_size_exporter"; + version = "0.5.0"; + src = final.fetchFromGitHub { + owner = "MindFlavor"; + repo = pname; + rev = version; + sha256 = "sha256-G1oWGiTyftloPxgOuiYFO7hofHdbwPCG4QDXK1t5qWk="; + }; + cargoSha256 = "sha256:0baxb2fqdywfj9jxmhinm7fqyyn6sdfh6s5vnn7mgwawg00b7h7l"; + }; +}