From 568c9718b710cb7f3117eee14576716381d1587b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cyryl=20P=C5=82otnicki?= <cyplo@cyplo.dev>
Date: Sun, 16 Mar 2025 22:38:09 +0000
Subject: [PATCH] re-enable stats on bolty

---
 nixos/boxes/bolty/default.nix           |  2 ++
 nixos/boxes/bolty/prometheus-node.nix   | 35 ++++++++++++++++++++++++-
 nixos/boxes/bolty/prometheus-server.nix | 28 ++++++++++++++++++++
 3 files changed, 64 insertions(+), 1 deletion(-)
 create mode 100644 nixos/boxes/bolty/prometheus-server.nix

diff --git a/nixos/boxes/bolty/default.nix b/nixos/boxes/bolty/default.nix
index 31f8e545..5d936740 100644
--- a/nixos/boxes/bolty/default.nix
+++ b/nixos/boxes/bolty/default.nix
@@ -17,6 +17,8 @@
     ./networking.nix
     ./nix-store-server.nix
     ./print-server.nix
+    ./prometheus-node.nix
+    ./prometheus-server.nix
     ./real-hardware.nix
     ./restic-server.nix
     ./syncthing.nix
diff --git a/nixos/boxes/bolty/prometheus-node.nix b/nixos/boxes/bolty/prometheus-node.nix
index 840959c3..296aa5b4 100644
--- a/nixos/boxes/bolty/prometheus-node.nix
+++ b/nixos/boxes/bolty/prometheus-node.nix
@@ -7,6 +7,39 @@
   networking.firewall.allowedTCPPorts = [9100];
   services.prometheus = {
     enable = true;
-    exporters.node.enable = true;
+    exporters.node = {
+      enable = true;
+      enabledCollectors = [
+        "arp"
+        "bonding"
+        "conntrack"
+        "cpu"
+        "disable-defaults"
+        "diskstats"
+        "entropy"
+        "filefd"
+        "filesystem"
+        "hwmon"
+        "loadavg"
+        "logind"
+        "mdadm"
+        "meminfo"
+        "netclass"
+        "netdev"
+        "netstat"
+        "pressure"
+        "sockstat"
+        "systemd"
+        "textfile"
+        "time"
+        "vmstat"
+        "wifi"
+        "zfs"
+      ];
+    };
+    exporters.smartctl ={
+      enable = true;
+      devices = [ "/dev/sda" "/dev/sdb" "/dev/sdc" "/dev/nvme0n1" ];
+    };
   };
 }
diff --git a/nixos/boxes/bolty/prometheus-server.nix b/nixos/boxes/bolty/prometheus-server.nix
new file mode 100644
index 00000000..3cfc18e5
--- /dev/null
+++ b/nixos/boxes/bolty/prometheus-server.nix
@@ -0,0 +1,28 @@
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
+{
+  networking.firewall.allowedTCPPorts = [ config.services.prometheus.port ];
+  services.prometheus = {
+    enable = true;
+    globalConfig.scrape_interval = "1m";
+    scrapeConfigs = [
+      {
+        job_name = "node";
+        static_configs = [{
+          targets = ["127.0.0.1:${toString config.services.prometheus.exporters.node.port}"];
+        }];
+      }
+      {
+        job_name = "smartctl";
+        static_configs = [{
+          targets = ["127.0.0.1:${toString config.services.prometheus.exporters.smartctl.port}"];
+        }];
+      }
+    ];
+  };
+}
+