{ self, config, pkgs, ... }: { # grafana configuration services.grafana = { enable = true; settings.server = { domain = "stats.mossnet.lan"; http_port = 2342; http_addr = "127.0.0.1"; }; # TODO enable # provision.alerting.rules.path = "${self}/hosts/profiles/monitoring/alert-rules.yaml"; }; # nginx reverse proxy services.nginx.recommendedProxySettings = true; # Needed for new grafana versions services.nginx.virtualHosts.${config.services.grafana.domain} = { locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.grafana.port}"; proxyWebsockets = true; }; }; services.prometheus = { enable = true; port = 9001; exporters = { node = { enable = true; enabledCollectors = [ "systemd" ]; port = 9002; }; dnsmasq = { enable = false; port = 9153; }; }; scrapeConfigs = [ { job_name = "box"; static_configs = [{ targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ]; }]; } { job_name = "dns"; static_configs = [{ targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.dnsmasq.port}" ]; }]; } ]; }; # services.loki = { # enable = true; # configFile = /var/loki-config.yaml; # }; #systemd.services.promtail = { # description = "Promtail service for Loki"; # wantedBy = [ "multi-user.target" ]; # serviceConfig = { # ExecStart = '' # ${pkgs.grafana-loki}/bin/promtail --config.file ${/var/promtail.yaml} # ''; # }; #}; }