From 3b3e2c9b57c8fe62c5f81da9ff376616cbec666d Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 23 Dec 2025 20:49:14 +0100 Subject: [PATCH] feat(self_host/monitoring): adding the reproductible dashboard config - Using assets for more simplicities --- services/self_host/monitor.nix | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/services/self_host/monitor.nix b/services/self_host/monitor.nix index 360a9eb..2cf4905 100644 --- a/services/self_host/monitor.nix +++ b/services/self_host/monitor.nix @@ -7,6 +7,7 @@ let cfg = config.service.selfhost.monitor; + dashboardsDir = ../../assets/grafana_dashboards; monitored = [ "nginx" "grafana" @@ -18,7 +19,36 @@ in enable = true; package = pkgs.grafana; dataDir = "/var/lib/grafana"; + provision = { + dashboards.settings.providers = [ + { + name = "nixos-dashboards"; + type = "file"; + updateIntervalSeconds = 30; + editable = false; + options = { + path = "/etc/grafana/dashboards"; + foldersFromFilesStructure = false; + }; + } + ]; + datasources.settings.datasources = [ + { + name = "Prometheus"; + type = "prometheus"; + uid = "prometheus"; + access = "proxy"; + url = "http://127.0.0.1:9090"; + isDefault = true; + editable = false; + jsonData = { + httpMethod = "POST"; + timeInterval = "15s"; + }; + } + ]; + }; settings = { server = { root_url = "https://monitor.enium.eu"; @@ -37,6 +67,8 @@ in }; security = { + cookie_secure = true; + cookie_samesite = "none"; allow_embedding = true; }; }; @@ -157,6 +189,8 @@ in ruleFiles = lib.mkForce [ "/etc/prometheus/services.rules" ]; }; + environment.etc."grafana/dashboards".source = dashboardsDir; + environment.etc."prometheus/services.rules".text = '' groups: - name: services