{ config, pkgs, ... }: {
  services.grafana = {
    enable = true;
    settings.server = {
      domain = "grafana.technogothic.net";
      http_port = 2342;
      http_addr = "localhost";
    };
    settings."auth.anonymous" = {
      enabled = true;
      org_name = "Main Org.";
      org_role = "Viewer";
    };
  };

  networking.firewall.allowedTCPPorts =
    [ config.services.grafana.settings.server.http_port ];

  services.prometheus = {
    enable = true;
    port = 9001;
    retentionTime = "365d";
    scrapeConfigs = [
      {
        job_name = "bloodletting";
        static_configs = [{
          targets = [
            "localhost:${
              toString config.services.prometheus.exporters.node.port
            }"
          ];
        }];
      }
      {
        job_name = "nginx";
        static_configs = [{
          targets = [
            "localhost:${
              toString config.services.prometheus.exporters.nginx.port
            }"
          ];
        }];
      }
      {
        job_name = "telegraf";
        static_configs = [{
          targets = [
            config.services.telegraf.extraConfig.outputs.prometheus_client.listen
          ];
        }];
      }
      {
        job_name = "process";
        static_configs = [{
          targets = [
            "localhost:${
              toString config.services.prometheus.exporters.process.port
            }"
          ];
        }];
      }
    ];
  };
}
