diff --git a/modules/services/grafana/module.nix b/modules/services/grafana/module.nix index 40e3227..83d5b26 100644 --- a/modules/services/grafana/module.nix +++ b/modules/services/grafana/module.nix @@ -44,7 +44,28 @@ in { check_for_updates = false; }; - # users.allow_signup = false; + users.allow_signup = false; + }; + provision = { + enable = true; + datasources.settings = { + datasources = [ + (mkIf config.modules.system.services.database.postgresql.enable { + name = "Prometheus"; + type = "prometheus"; + access = "proxy"; + url = "http://127.0.0.1:4024"; + isDefault = true; + }) + + (mkIf config.modules.system.services.prometheus.enable { + name = "PostgreSQL"; + type = "postgres"; + access = "proxy"; + url = "http://127.0.0.1:${toString config.services.prometheus.port}"; + }) + ]; + }; }; }; services.nginx = { diff --git a/modules/services/monitoring/loki/module.nix b/modules/services/monitoring/loki/module.nix new file mode 100644 index 0000000..f2e046a --- /dev/null +++ b/modules/services/monitoring/loki/module.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.options) mkEnableOption; + + cfg = config.modules.system.services.loki; + port = 4026; + dataDir = "/srv/data/loki"; +in { + options.modules.system.services.loki.enable = mkEnableOption "Grafana, a graphing service"; + + config = mkIf cfg.enable { + services.loki = { + enable = true; + package = pkgs.loki; + + configuration = { + + }; + }; + }; +} diff --git a/modules/services/prometheus/module.nix b/modules/services/prometheus/module.nix index f3d88f4..bed6038 100644 --- a/modules/services/prometheus/module.nix +++ b/modules/services/prometheus/module.nix @@ -13,10 +13,6 @@ in { options.modules.system.services.prometheus.enable = mkEnableOption "Grafana, a graphing service"; config = mkIf cfg.enable { - networking.firewall.allowedTCPPorts = [config.services.grafana.settings.server.http_port]; - - modules.system.services.database.postgresql.enable = true; - services.prometheus = { enable = true; package = pkgs.prometheus; @@ -34,6 +30,10 @@ in { port = 4024; user = "postgres"; }; + nginx = { + enable = true; + port = 4025; + }; }; scrapeConfigs = [ { @@ -51,6 +51,11 @@ in { scrape_interval = "30s"; static_configs = [{targets = ["localhost:${toString config.services.prometheus.exporters.postgres.port}"];}]; } + { + job_name = "nginx"; + scrape_interval = "30s"; + static_configs = [{targets = ["localhost:${toString config.services.prometheus.exporters.nginx.port}"];}]; + } ]; }; };