From 6c31263e606d44bcf2ef4618d13521cd613d0a7f Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Sat, 12 Oct 2024 17:22:25 -0400 Subject: [PATCH] add bandwidth alerts --- beszel/internal/agent/system.go | 1 + beszel/internal/alerts/alerts.go | 2 ++ beszel/internal/entities/system/system.go | 1 + beszel/site/src/components/command-palette.tsx | 2 +- .../src/components/systems-table/systems-table.tsx | 5 +++-- beszel/site/src/components/table-alerts.tsx | 14 ++++++++++++-- 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/beszel/internal/agent/system.go b/beszel/internal/agent/system.go index 448bacf..4716dd2 100644 --- a/beszel/internal/agent/system.go +++ b/beszel/internal/agent/system.go @@ -214,6 +214,7 @@ func (a *Agent) getSystemStats() system.Stats { a.systemInfo.MemPct = systemStats.MemPct a.systemInfo.DiskPct = systemStats.DiskPct a.systemInfo.Uptime, _ = host.Uptime() + a.systemInfo.Bandwidth = twoDecimals(systemStats.NetworkSent + systemStats.NetworkRecv) return systemStats } diff --git a/beszel/internal/alerts/alerts.go b/beszel/internal/alerts/alerts.go index bfdc7c2..8f5eef9 100644 --- a/beszel/internal/alerts/alerts.go +++ b/beszel/internal/alerts/alerts.go @@ -57,6 +57,8 @@ func (am *AlertManager) HandleSystemAlerts(systemRecord *models.Record, systemIn am.handleSlidingValueAlert(systemRecord, alertRecord, name, "%", systemInfo.MemPct) case "Disk": am.handleSlidingValueAlert(systemRecord, alertRecord, name+" usage", "%", systemInfo.DiskPct) + case "Bandwidth": + am.handleSlidingValueAlert(systemRecord, alertRecord, name, " MB/s", systemInfo.Bandwidth) case "Temperature": if temperatures == nil { continue diff --git a/beszel/internal/entities/system/system.go b/beszel/internal/entities/system/system.go index 56ad70b..9829212 100644 --- a/beszel/internal/entities/system/system.go +++ b/beszel/internal/entities/system/system.go @@ -61,6 +61,7 @@ type Info struct { Cpu float64 `json:"cpu"` MemPct float64 `json:"mp"` DiskPct float64 `json:"dp"` + Bandwidth float64 `json:"b"` AgentVersion string `json:"v"` } diff --git a/beszel/site/src/components/command-palette.tsx b/beszel/site/src/components/command-palette.tsx index e9fb89d..f4b9010 100644 --- a/beszel/site/src/components/command-palette.tsx +++ b/beszel/site/src/components/command-palette.tsx @@ -143,7 +143,7 @@ export default function CommandPalette() { }} > - Database backups + Backups Admin sortableHeader(column, 'Net', EthernetIcon), cell: (info) => { + const val = (info.getValue() as number) || 0 return ( - {decimalString((info.getValue() as number) || 0, 2)} MB/s + {decimalString(val, val >= 100 ? 1 : 2)} MB/s ) }, diff --git a/beszel/site/src/components/table-alerts.tsx b/beszel/site/src/components/table-alerts.tsx index 1273e55..1df814e 100644 --- a/beszel/site/src/components/table-alerts.tsx +++ b/beszel/site/src/components/table-alerts.tsx @@ -48,7 +48,7 @@ export default function AlertsButton({ system }: { system: SystemRecord }) { /> - + {system.name} alerts @@ -82,6 +82,14 @@ export default function AlertsButton({ system }: { system: SystemRecord }) { title="Disk Usage" description="Triggers when root usage exceeds a threshold." /> +