grafana: Add victorialogs dashboard

This commit is contained in:
SebastianStork 2025-09-20 22:59:27 +02:00
parent d7d28fa19f
commit 387af935d1
4 changed files with 41 additions and 10 deletions

View file

@ -63,8 +63,9 @@
victorialogs.enable = true; victorialogs.enable = true;
}; };
dashboards = { dashboards = {
nodeExporter.enable = true; nodeExporter = true;
victoriametrics.enable = true; victoriametrics = true;
victorialogs = true;
}; };
}; };
@ -81,7 +82,10 @@
alloy = { alloy = {
enable = true; enable = true;
domain = "alloy-${config.networking.hostName}.${tailscaleDomain}"; domain = "alloy-${config.networking.hostName}.${tailscaleDomain}";
collect.hostMetrics = true; collect = {
hostMetrics = true;
victorialogsMetrics = true;
};
}; };
caddy.virtualHosts = caddy.virtualHosts =

View file

@ -23,6 +23,7 @@ in
}; };
collect = { collect = {
hostMetrics = lib.mkEnableOption ""; hostMetrics = lib.mkEnableOption "";
victorialogsMetrics = lib.mkEnableOption "";
sshdLogs = lib.mkEnableOption ""; sshdLogs = lib.mkEnableOption "";
}; };
}; };
@ -56,10 +57,10 @@ in
} }
''; '';
"alloy/node-exporter.alloy" = lib.mkIf cfg.collect.hostMetrics { "alloy/host-metrics.alloy" = lib.mkIf cfg.collect.hostMetrics {
text = '' text = ''
prometheus.exporter.unix "default" { prometheus.exporter.unix "default" {
enable_collectors = [ "systemd" ] enable_collectors = ["systemd"]
} }
prometheus.scrape "node_exporter" { prometheus.scrape "node_exporter" {
@ -70,6 +71,18 @@ in
''; '';
}; };
"alloy/victorialogs-metrics.alloy" = lib.mkIf cfg.collect.victorialogsMetrics {
text = ''
prometheus.scrape "victorialogs" {
targets = [{
__address__ = "localhost:${builtins.toString config.custom.services.victorialogs.port}",
}]
forward_to = [prometheus.remote_write.default.receiver]
scrape_interval = "15s"
}
'';
};
"alloy/sshd-logs.alloy" = lib.mkIf cfg.collect.sshdLogs { "alloy/sshd-logs.alloy" = lib.mkIf cfg.collect.sshdLogs {
text = '' text = ''
loki.source.journal "sshd" { loki.source.journal "sshd" {

View file

@ -42,8 +42,9 @@ in
}; };
}; };
dashboards = { dashboards = {
nodeExporter.enable = lib.mkEnableOption ""; nodeExporter = lib.mkEnableOption "";
victoriametrics.enable = lib.mkEnableOption ""; victoriametrics = lib.mkEnableOption "";
victorialogs = lib.mkEnableOption "";
}; };
}; };
@ -122,7 +123,7 @@ in
environment.etc = { environment.etc = {
"grafana-dashboards/node-exporter-full.json" = { "grafana-dashboards/node-exporter-full.json" = {
enable = cfg.dashboards.nodeExporter.enable; enable = cfg.dashboards.nodeExporter;
source = pkgs.fetchurl { source = pkgs.fetchurl {
name = "node-exporter-full.json"; name = "node-exporter-full.json";
url = "https://grafana.com/api/dashboards/1860/revisions/41/download"; url = "https://grafana.com/api/dashboards/1860/revisions/41/download";
@ -130,13 +131,21 @@ in
}; };
}; };
"grafana-dashboards/victoriametrics-single-node.json" = { "grafana-dashboards/victoriametrics-single-node.json" = {
enable = cfg.dashboards.victoriametrics.enable; enable = cfg.dashboards.victoriametrics;
source = pkgs.fetchurl { source = pkgs.fetchurl {
name = "victoriametrics-single-node.json"; name = "victoriametrics-single-node.json";
url = "https://grafana.com/api/dashboards/10229/revisions/41/download"; url = "https://grafana.com/api/dashboards/10229/revisions/41/download";
hash = "sha256-mwtah8A2w81WZjf5bUXoTJfS1R9UX+tua2PiDrBKJCQ="; hash = "sha256-mwtah8A2w81WZjf5bUXoTJfS1R9UX+tua2PiDrBKJCQ=";
}; };
}; };
"grafana-dashboards/victorialogs-single-node.json" = {
enable = cfg.dashboards.victorialogs;
source = pkgs.fetchurl {
name = "victorialogs-single-node.json";
url = "https://grafana.com/api/dashboards/22084/revisions/8/download";
hash = "sha256-/a3Rbp/6oyiLBnQtGupyFZW+fIHQfkyKRRTyfofxVTM=";
};
};
}; };
}; };
} }

View file

@ -46,7 +46,12 @@ in
services.victorialogs = { services.victorialogs = {
enable = true; enable = true;
package = pkgs-unstable.victorialogs; package = pkgs-unstable.victorialogs.overrideAttrs (
_: previousAttrs: {
version = "victoria-logs-" + previousAttrs.version;
__intentionallyOverridingVersion = true;
}
);
listenAddress = "localhost:${builtins.toString cfg.port}"; listenAddress = "localhost:${builtins.toString cfg.port}";
extraOptions = [ "-retention.maxDiskSpaceUsageBytes=${cfg.maxDiskSpaceUsage}" ]; extraOptions = [ "-retention.maxDiskSpaceUsageBytes=${cfg.maxDiskSpaceUsage}" ];
}; };