diff --git a/hosts/srv-monitor/default.nix b/hosts/srv-monitor/default.nix index 3d8f909..772be88 100644 --- a/hosts/srv-monitor/default.nix +++ b/hosts/srv-monitor/default.nix @@ -62,7 +62,10 @@ victoriametrics.enable = true; victorialogs.enable = true; }; - dashboards.node-exporter-full.enable = true; + dashboards = { + nodeExporter.enable = true; + victoriametrics.enable = true; + }; }; victoriametrics = { diff --git a/modules/system/services/grafana.nix b/modules/system/services/grafana.nix index aa7364b..95445e3 100644 --- a/modules/system/services/grafana.nix +++ b/modules/system/services/grafana.nix @@ -41,7 +41,10 @@ in }; }; }; - dashboards.node-exporter-full.enable = lib.mkEnableOption ""; + dashboards = { + nodeExporter.enable = lib.mkEnableOption ""; + victoriametrics.enable = lib.mkEnableOption ""; + }; }; config = lib.mkIf cfg.enable { @@ -117,12 +120,22 @@ in ++ (lib.optional cfg.datasources.victorialogs.enable victoriametrics-logs-datasource); }; - environment.etc."grafana-dashboards/node-exporter-full.json" = { - enable = cfg.dashboards.node-exporter-full.enable; - source = pkgs.fetchurl { - name = "node-exporter-full.json"; - url = "https://grafana.com/api/dashboards/1860/revisions/41/download"; - hash = "sha256-EywgxEayjwNIGDvSmA/S56Ld49qrTSbIYFpeEXBJlTs="; + environment.etc = { + "grafana-dashboards/node-exporter-full.json" = { + enable = cfg.dashboards.nodeExporter.enable; + source = pkgs.fetchurl { + name = "node-exporter-full.json"; + url = "https://grafana.com/api/dashboards/1860/revisions/41/download"; + hash = "sha256-EywgxEayjwNIGDvSmA/S56Ld49qrTSbIYFpeEXBJlTs="; + }; + }; + "grafana-dashboards/victoriametrics-single-node.json" = { + enable = cfg.dashboards.victoriametrics.enable; + source = pkgs.fetchurl { + name = "victoriametrics-single-node.json"; + url = "https://grafana.com/api/dashboards/10229/revisions/41/download"; + hash = "sha256-mwtah8A2w81WZjf5bUXoTJfS1R9UX+tua2PiDrBKJCQ="; + }; }; }; }; diff --git a/modules/system/services/victoriametrics.nix b/modules/system/services/victoriametrics.nix index 6b643e5..c27d1d2 100644 --- a/modules/system/services/victoriametrics.nix +++ b/modules/system/services/victoriametrics.nix @@ -42,7 +42,13 @@ in services.victoriametrics = { enable = true; - package = pkgs-unstable.victoriametrics; + # The victoriametrics grafana-dashboard expects the version label to have the format `victoria-metrics-*` + package = pkgs-unstable.victoriametrics.overrideAttrs ( + _: previousAttrs: { + version = "victoria-metrics-" + previousAttrs.version; + __intentionallyOverridingVersion = true; + } + ); listenAddress = "localhost:${builtins.toString cfg.port}"; extraOptions = [ "-selfScrapeInterval=15s" ]; };