{ # enable the node exporter on all nixos hosts # https://github.com/NixOS/nixpkgs/blob/nixos-25.05/nixos/modules/services/monitoring/prometheus/exporters/node.nix services.prometheus.exporters.node = { enable = true; listenAddress = "0.0.0.0"; port = 9100; # There're already a lot of collectors enabled by default # https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default enabledCollectors = [ "systemd" "logind" ]; # use either enabledCollectors or disabledCollectors # disabledCollectors = []; extraFlags = [ # Exclude pseudo/ephemeral FS: # - /proc, /sys: kernel pseudo-FS, always size 0 # - /dev: tmpfs/devices, not meaningful for disk usage # Exclude container/runtime mounts: # - /var/lib/docker/, /var/lib/containers/ and /var/lib/kubelet/ → too much overlay/tmpfs mounts, # often EACCES (strict perms, namespaces) → false alerts # Exclude user bind mounts: # - /home/ryan/.+ → bind-mounted from /persistent (NixOS tmpfs-root setup), # monitoring /persistent is sufficient "--collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/containers/.+|var/lib/kubelet/.+|home/ryan/.+)($|/)" ]; }; }