diff --git a/nixos/viridian/services/prometheus.nix b/nixos/viridian/services/prometheus.nix new file mode 100644 index 0000000..339a0f9 --- /dev/null +++ b/nixos/viridian/services/prometheus.nix @@ -0,0 +1,33 @@ +{ config, ... }: + +{ + services.prometheus = { + enable = true; + port = 9001; # Port to listen on. + + # Valid in all configuration contexts, defaults for other configuration sections. + globalConfig = { + scrape_interval = "15s"; + }; + + # Collect specific metrics, format them, and expose them through HTTP endpoints for prometheus to scrape. + exporters = { + node = { + enable = true; + enabledCollectors = [ "systemd" "processes" ]; + port = 9100; + }; + }; + + # Specify a set of targets and parameters describing how to scrape them. + scrapeConfigs = [ + { + job_name = "node"; + static_configs = [{ + targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ]; + }]; + } + ]; + }; +} +