From fc8c23fd66bcbd066730183a60bcf53d982d6469 Mon Sep 17 00:00:00 2001 From: MacRimi Date: Tue, 27 Oct 2026 22:22:05 +0100 Subject: [PATCH] feat(monitor): VM disk thresholds in Settings --- AppImage/components/health-thresholds.tsx | 15 ++++++++++++++- AppImage/messages/de/common.json | 4 ++++ AppImage/messages/en/common.json | 4 ++++ AppImage/messages/es/common.json | 4 ++++ AppImage/messages/fr/common.json | 4 ++++ AppImage/messages/it/common.json | 4 ++++ AppImage/messages/pt/common.json | 4 ++++ AppImage/messages/sk/common.json | 4 ++++ AppImage/messages/sv/common.json | 4 ++++ 9 files changed, 46 insertions(+), 1 deletion(-) diff --git a/AppImage/components/health-thresholds.tsx b/AppImage/components/health-thresholds.tsx index e82ecfc0..9de79744 100644 --- a/AppImage/components/health-thresholds.tsx +++ b/AppImage/components/health-thresholds.tsx @@ -19,6 +19,7 @@ import { FolderOpen, Database, Waves, + Monitor, } from "lucide-react" import { getApiUrl, getAuthToken } from "../lib/api-config" import { useT } from "../lib/i18n/provider" @@ -85,6 +86,7 @@ interface ThresholdsTree { memory: { warning: ThresholdLeaf; critical: ThresholdLeaf; swap_high: ThresholdLeaf; available_min: ThresholdLeaf } host_storage: { warning: ThresholdLeaf; critical: ThresholdLeaf } lxc_rootfs: { warning: ThresholdLeaf; critical: ThresholdLeaf } + vm_disk: { warning: ThresholdLeaf; critical: ThresholdLeaf } cpu_temperature: { warning: ThresholdLeaf; critical: ThresholdLeaf } disk_temperature: { hdd: { warning: ThresholdLeaf; critical: ThresholdLeaf } @@ -202,6 +204,17 @@ const SECTIONS: SectionDef[] = [ { path: ["lxc_rootfs", "critical"], label: "Critical" }, ], }, + { + id: "vm_disk", + title: "Disk space — VMs", + icon: Monitor, + description: + "Filesystems of running VMs as the QEMU guest agent reports them, passthrough drives included. VMs without the guest agent are not evaluated.", + fields: [ + { path: ["vm_disk", "warning"], label: "Warning" }, + { path: ["vm_disk", "critical"], label: "Critical" }, + ], + }, { id: "lxc_mount", title: "LXC mount points", @@ -285,7 +298,7 @@ function computeVisualRange( // ─── Component ─────────────────────────────────────────────────────────────── // Guests and PVE storages do not exist on a Proxmox Backup Server. -const PVE_ONLY_SECTIONS = new Set(["lxc_rootfs", "lxc_mount", "pve_storage"]) +const PVE_ONLY_SECTIONS = new Set(["lxc_rootfs", "vm_disk", "lxc_mount", "pve_storage"]) export function HealthThresholds() { const t = useT() diff --git a/AppImage/messages/de/common.json b/AppImage/messages/de/common.json index b319a539..8fc8a742 100644 --- a/AppImage/messages/de/common.json +++ b/AppImage/messages/de/common.json @@ -2576,6 +2576,10 @@ "title": "Speicherplatz – LXC rootfs", "description": "Root-Laufwerk pro Container, bewertet anhand der Rootfs-Größe von PVE." }, + "vm_disk": { + "title": "Speicherplatz - VMs", + "description": "Dateisysteme laufender VMs, wie der QEMU-Gastagent sie meldet, einschließlich durchgereichter Laufwerke. VMs ohne Gastagent werden nicht ausgewertet." + }, "lxc_mount": { "title": "LXC-Montagepunkte", "description": "Kapazität der Mountpunkte innerhalb laufender CTs (mp0, mp1, NFS, Bind-Mounts). Schließt die Rootfs aus; das steht oben." diff --git a/AppImage/messages/en/common.json b/AppImage/messages/en/common.json index 5c4d153c..2c965461 100644 --- a/AppImage/messages/en/common.json +++ b/AppImage/messages/en/common.json @@ -2703,6 +2703,10 @@ "title": "Disk space - LXC rootfs", "description": "Per-container root disk, evaluated against the rootfs size from PVE." }, + "vm_disk": { + "title": "Disk space - VMs", + "description": "Filesystems of running VMs as the QEMU guest agent reports them, passthrough drives included. VMs without the guest agent are not evaluated." + }, "lxc_mount": { "title": "LXC mount points", "description": "Capacity of mountpoints inside running CTs (mp0, mp1, NFS, bind mounts). Excludes the rootfs; that is covered above." diff --git a/AppImage/messages/es/common.json b/AppImage/messages/es/common.json index 66553422..73f83291 100644 --- a/AppImage/messages/es/common.json +++ b/AppImage/messages/es/common.json @@ -2729,6 +2729,10 @@ "title": "Espacio en disco - rootfs LXC", "description": "Disco raíz por contenedor, evaluado con respecto al tamaño de rootfs de PVE." }, + "vm_disk": { + "title": "Espacio en disco - VMs", + "description": "Sistemas de archivos de las VM en marcha según los informa el agente invitado de QEMU, incluidos los discos en passthrough. Las VM sin agente invitado no se evalúan." + }, "lxc_mount": { "title": "Puntos de montaje LXC", "description": "Capacidad de puntos de montaje dentro de CT en ejecución (mp0, mp1, NFS, montajes vinculados). Excluye los rootfs; que se trata arriba." diff --git a/AppImage/messages/fr/common.json b/AppImage/messages/fr/common.json index 621d96f2..2568f206 100644 --- a/AppImage/messages/fr/common.json +++ b/AppImage/messages/fr/common.json @@ -2576,6 +2576,10 @@ "title": "Espace disque - rootfs LXC", "description": "Disque racine par conteneur, évalué par rapport à la taille rootfs de PVE." }, + "vm_disk": { + "title": "Espace disque - VM", + "description": "Systèmes de fichiers des VM en cours d'exécution, tels que les signale l'agent invité QEMU, disques en passthrough compris. Les VM sans agent invité ne sont pas évaluées." + }, "lxc_mount": { "title": "Points de montage LXC", "description": "Capacité des points de montage à l’intérieur des CT en cours d’exécution (mp0, mp1, NFS, montages de liaison). Exclut les rootfs ; qui est couvert ci-dessus." diff --git a/AppImage/messages/it/common.json b/AppImage/messages/it/common.json index 01c7c3d3..d806845d 100644 --- a/AppImage/messages/it/common.json +++ b/AppImage/messages/it/common.json @@ -2576,6 +2576,10 @@ "title": "Spazio disco: rootfs LXC", "description": "Disco root di ciascun container, valutato rispetto alla dimensione rootfs indicata da PVE." }, + "vm_disk": { + "title": "Spazio su disco - VM", + "description": "File system delle VM in esecuzione come li riporta l'agente guest QEMU, inclusi i dischi in passthrough. Le VM senza agente guest non vengono valutate." + }, "lxc_mount": { "title": "Punti di montaggio LXC", "description": "Capacità dei punti di montaggio nei CT in esecuzione (mp0, mp1, NFS, bind mount). Esclude il rootfs, trattato sopra." diff --git a/AppImage/messages/pt/common.json b/AppImage/messages/pt/common.json index eb08496c..b3dab814 100644 --- a/AppImage/messages/pt/common.json +++ b/AppImage/messages/pt/common.json @@ -2576,6 +2576,10 @@ "title": "Espaço em disco - rootfs LXC", "description": "Disco raiz por contêiner, avaliado em relação ao tamanho do rootfs do PVE." }, + "vm_disk": { + "title": "Espaço em disco - VMs", + "description": "Sistemas de ficheiros das VMs em execução, conforme os reporta o agente convidado do QEMU, incluindo discos em passthrough. As VMs sem agente convidado não são avaliadas." + }, "lxc_mount": { "title": "Pontos de montagem LXC", "description": "Capacidade de pontos de montagem dentro de CTs em execução (mp0, mp1, NFS, montagens de ligação). Exclui os rootfs; que é abordado acima." diff --git a/AppImage/messages/sk/common.json b/AppImage/messages/sk/common.json index 6d2f0191..38bfc2f3 100644 --- a/AppImage/messages/sk/common.json +++ b/AppImage/messages/sk/common.json @@ -2575,6 +2575,10 @@ "title": "Miesto na disku - LXC rootfs", "description": "Koreňový disk každého kontajnera, hodnotený podľa veľkosti rootfs z PVE." }, + "vm_disk": { + "title": "Miesto na disku - VM", + "description": "Súborové systémy spustených VM podľa hlásenia hosťovského agenta QEMU vrátane diskov v passthrough. VM bez hosťovského agenta sa nevyhodnocujú." + }, "lxc_mount": { "title": "Prípojné body LXC", "description": "Kapacita prípojných bodov v bežiacich CT (mp0, mp1, NFS, bind mounty). Rootfs je riešený vyššie." diff --git a/AppImage/messages/sv/common.json b/AppImage/messages/sv/common.json index f3887cad..8d312688 100644 --- a/AppImage/messages/sv/common.json +++ b/AppImage/messages/sv/common.json @@ -2576,6 +2576,10 @@ "title": "Diskutrymme - LXC rootfs", "description": "Rotskiva per behållare, utvärderad mot rootfs-storleken från PVE." }, + "vm_disk": { + "title": "Diskutrymme - VM", + "description": "Filsystem i körande VM så som QEMU-gästagenten rapporterar dem, inklusive genomsläppta diskar. VM utan gästagent utvärderas inte." + }, "lxc_mount": { "title": "LXC fästpunkter", "description": "Kapacitet för monteringspunkter inuti körda CT: er (mp0, mp1, NFS, bind mounts). Utesluter rootfs; som täcks ovan."