{ config, pkgs, ... }:

let
  cfg = config.services.prometheus;
in {
  services.prometheus = {
    enable = true;
    listenAddress = "127.0.0.1";
    port = 9001;

    # StateDirectory must be under /var/lib.
    # TODO: Back up to /tank/services/metrics/prometheus

    scrapeConfigs = [
      {
        job_name = "node";
        static_configs = [
          {
            targets = [
              "burnham.home.feal.no:9100"
              "challenger.home.feal.no:9100"
              "defiant.home.feal.no:9100"
              "edison.home.feal.no:9100"
              "malcolm.home.feal.no:9100"
              "mccoy.home.feal.no:9100"
              "scotty.home.feal.no:9100"
              "sulu.home.feal.no:9100"
            ];
          }
        ];
      }
      {
        job_name = "snmp";
        static_configs = [{
          targets = [
            "feal-syn1.home.feal.no"
            "feal-syn2.home.feal.no"
          ];
        }];
        metrics_path = "/snmp";
        params.module = ["synology"];
        relabel_configs = [
          {
            source_labels = ["__address__"];
            target_label = "__param_target";
          }
          {
            source_labels = ["__param_target"];
            target_label = "instance";
          }
          {
            target_label = "__address__";
            replacement = "127.0.0.1:9116";
          }
        ];
      }
    ];
  };
}