From 7ca9bf89751d2027a6c093f09cfa54adfe30c9df Mon Sep 17 00:00:00 2001 From: Katharina Heidenreich Date: Sat, 11 Apr 2026 13:17:18 +0200 Subject: [PATCH] feat: add prometheus config --- config/services.nix | 18 ++++++++++++++++++ services/default.nix | 1 + services/prometheus.nix | 24 ++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 services/prometheus.nix diff --git a/config/services.nix b/config/services.nix index d62ce92..c73f456 100644 --- a/config/services.nix +++ b/config/services.nix @@ -11,4 +11,22 @@ rec { "processes" ]; }; + + prometheus = { + port = 9090; + scrapeConfigs = { + node = { + scrape_interval = "60s"; + metrics_path = "/metrics"; + static_configs = [ + { + targets = [ + "localhost:9100" + "pi.home:9100" + ]; + } + ]; + }; + }; + }; } diff --git a/services/default.nix b/services/default.nix index 1e9cfb5..a87a956 100644 --- a/services/default.nix +++ b/services/default.nix @@ -4,5 +4,6 @@ ./openssh.nix ./forgejo.nix ./node-exporter.nix + ./prometheus.nix ]; } diff --git a/services/prometheus.nix b/services/prometheus.nix new file mode 100644 index 0000000..1c028c3 --- /dev/null +++ b/services/prometheus.nix @@ -0,0 +1,24 @@ +{lib, ...}: +let + serv = import ../config/services.nix; + conf = lib.attrsets.mapAttrsToList (name: cfg: { + job_name = name; + + scrape_interval = cfg.scrape_interval; + + metrics_path = cfg.metrics_path; + + static_configs = cfg.static_configs; + }) serv.prometheus.scrapeConfigs; +in +{ + services.prometheus = { + enable = true; + + scrapeConfigs = conf; + + port = serv.prometheus.port; + }; + + networking.firewall.allowedTCPPorts = [ serv.prometheus.port ]; +} \ No newline at end of file