From e4c76db64870d3520a07f79b2a993a447a89ec19 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Wed, 27 May 2026 20:38:28 -0400 Subject: [PATCH] add unbound dashboard --- clients/quadraticserver/stats/grafana.nix | 10 +++++++++- clients/quadraticserver/stats/prometheus.nix | 18 +++++++++++++++++- modules/server/dns.nix | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/clients/quadraticserver/stats/grafana.nix b/clients/quadraticserver/stats/grafana.nix index 9620bd6..6907501 100644 --- a/clients/quadraticserver/stats/grafana.nix +++ b/clients/quadraticserver/stats/grafana.nix @@ -168,13 +168,21 @@ in dashboards.settings.providers = [ { - name = "Node exporter"; + name = "Node Exporter"; options.path = pkgs.fetchurl { name = "dashboard-node-exporter-full.json"; url = "https://grafana.com/api/dashboards/1860/revisions/42/download"; hash = "sha256-pNgn6xgZBEu6LW0lc0cXX2gRkQ8lg/rer34SPE3yEl4="; }; } + { + name = "Unbound Info"; + options.path = pkgs.fetchurl { + name = "unbound-info.json"; + url = "https://github.com/rfmoz/grafana-dashboards/raw/refs/heads/master/prometheus/unbound-full.json"; + hash = "sha256-It6MNTaJyVXf5LvE55Bl20ij+Fxh1NWbsosXoLkpamM="; + }; + } { name = "Caddy Hosts"; options.path = pkgs.stdenv.mkDerivation { diff --git a/clients/quadraticserver/stats/prometheus.nix b/clients/quadraticserver/stats/prometheus.nix index 3003e29..f66f8ee 100644 --- a/clients/quadraticserver/stats/prometheus.nix +++ b/clients/quadraticserver/stats/prometheus.nix @@ -4,7 +4,7 @@ enable = true; listenAddress = "127.0.0.7"; - globalConfig.scrape_interval = "3s"; + globalConfig.scrape_interval = "10s"; scrapeConfigs = [ { job_name = "node"; @@ -16,6 +16,16 @@ } ]; } + { + job_name = "unbound"; + static_configs = [ + { + targets = with config.services.prometheus.exporters.unbound; [ + "${listenAddress}:${toString port}" + ]; + } + ]; + } { job_name = "caddy"; static_configs = [ @@ -33,6 +43,12 @@ "processes" ]; }; + unbound = { + enable = true; + listenAddress = "127.0.0.5"; + unbound.host = "unix://${config.services.unbound.localControlSocketPath}"; + group = config.services.unbound.group; + }; }; }; } diff --git a/modules/server/dns.nix b/modules/server/dns.nix index 26e111b..4b633f3 100644 --- a/modules/server/dns.nix +++ b/modules/server/dns.nix @@ -1,8 +1,10 @@ { services.unbound = { enable = true; + localControlSocketPath = "/run/unbound/control.sock"; settings = { server = { + extended-statistics = true; rrset-cache-size = "64M"; msg-cache-size = "64M"; discard-timeout = 4800;