Commit Graph

5 Commits

Author SHA1 Message Date
95bf85dce4 fix: add writable state directory for flake collector
When running nix flake metadata, nix and git need writable cache
directories. System service users have home set to /var/empty which
is read-only, causing "cannot create directories" errors.

Add StateDirectory and set HOME/XDG_CACHE_HOME environment variables
to /var/lib/nixos-exporter when flake collector is enabled.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:27:07 +01:00
a065eab759 fix: improve error messages for flake metadata command
Capture stderr from nix flake metadata to show the actual error
message instead of just "exit status 1".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:21:52 +01:00
883ec25a62 fix: add nix and git to PATH for flake collector
The systemd service runs in a sandboxed environment without the usual
PATH. Add nix and git to the service path when flake collector is
enabled so it can run `nix flake metadata` on git+https:// URLs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:09:46 +01:00
858e047bff fix: add timeouts to prevent denial of service
Add 30-second timeout to nix flake metadata command to prevent hanging
on slow or unresponsive remotes. Add HTTP server timeouts (read, write,
idle) to protect against slowloris-style attacks.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 22:58:05 +01:00
f637da487c feat: implement nixos-exporter
Prometheus exporter for NixOS-specific metrics including:
- Generation collector: count, current, booted, age, config mismatch
- Flake collector: input age, input info, revision behind

Includes NixOS module, flake packaging, and documentation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 22:52:28 +01:00