{ config, lib, ... }: let cfg = config.homelab.monitoring; in { options.homelab.monitoring = { enable = lib.mkOption { type = lib.types.bool; default = true; description = "Include this host in Prometheus node-exporter scrape targets"; }; scrapeTargets = lib.mkOption { type = lib.types.listOf (lib.types.submodule { options = { job_name = lib.mkOption { type = lib.types.str; description = "Prometheus scrape job name"; }; port = lib.mkOption { type = lib.types.port; description = "Port to scrape metrics from"; }; metrics_path = lib.mkOption { type = lib.types.str; default = "/metrics"; description = "HTTP path to scrape metrics from"; }; scheme = lib.mkOption { type = lib.types.str; default = "http"; description = "HTTP scheme (http or https)"; }; scrape_interval = lib.mkOption { type = lib.types.nullOr lib.types.str; default = null; description = "Override the global scrape interval for this target"; }; honor_labels = lib.mkOption { type = lib.types.bool; default = false; description = "Whether to honor labels from the scraped target"; }; }; }); default = [ ]; description = "Additional Prometheus scrape targets exposed by this host"; }; }; }