{ self, config, lib, pkgs, ... }: with self.lib.mon; let exp = config.services.prometheus.exporters; in { services.prometheus = { scrapeConfigs = [ (mkScrapeConfig "node" [ "ettves" "phaenn" "fra01" "nyc01" "sin01" ] exp.node.port) (mkScrapeConfig "zfs" [ "ettves" "phaenn" ] exp.zfs.port) (mkScrapeConfig "smartctl" [ "ettves" "phaenn" ] exp.smartctl.port) (mkScrapeConfig "nginx" [ "ettves" "phaenn" "fra01" "nyc01" "sin01" ] exp.nginx.port) (mkScrapeConfig "postgres" [ "ettves" ] exp.postgres.port) (mkScrapeConfig "quassel" [ "localhost" ] config.services.quassel.settings.metrics.port) { job_name = "authentik"; static_configs = [ { targets = [ "ettves:9300" "ettves:9303" "ettves:9304" ]; } ]; relabel_configs = relabelConfig; } (mkScrapeConfig "garage" [ "fra01" "nyc01" "sin01" ] 3903) (mkScrapeConfig "pdns" [ "ettves" "fra01" "nyc01" "sin01" ] 8081) ((mkScrape "mail" [ "mail.vapor.systems:443" ]) // { metrics_path = "/metrics/prometheus"; scheme = "https"; basic_auth = { username = "prometheus"; password_file = "/etc/secrets/prometheus"; }; }) ((mkScrape "minecraft" [ "ettves:25585" "ettves:9150" "ettves:9225" ]) // { relabel_configs = [ { source_labels = ["__address__"]; target_label = "server"; regex = "(ettves:25585)|(ettves:9150)"; replacement = "dungeons"; } { source_labels = ["__address__"]; target_label = "server"; regex = "(ettves:9225)"; replacement = "vanilla"; } ]; }) ]; }; secrets = { prometheus = { source = ../../secrets/prometheus; dest = "/etc/secrets/prometheus"; owner = config.users.users.prometheus.name; }; }; }