mirror of
https://github.com/henrygd/beszel.git
synced 2026-09-21 17:07:47 +02:00
feat(alerts): add container health alerts with log excerpt on notifications (#2225)
Add a new "ContainerHealth" alert type that fires when a Docker container's health check reports unhealthy, and resolves when it recovers. This mirrors the existing Status (up/down) alert pattern: an alert can be armed per system and honors the "min minutes" delay before firing. When the alert fires, the notification (email and any configured webhook, including Discord via shoutrrr) includes a log excerpt fetched live from the agent for up to 2 of the unhealthy containers, prioritizing lines containing "error" or "fatal" (falling back to the log tail if none match), capped to keep the message well under Discord's size limit. --------- Co-authored-by: hank <hank@henrygd.me>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { t } from "@lingui/core/macro"
|
||||
import { CpuIcon, HardDriveIcon, MemoryStickIcon, ServerCrashIcon, ServerIcon } from "lucide-react"
|
||||
import { ContainerIcon, CpuIcon, HardDriveIcon, MemoryStickIcon, ServerCrashIcon, ServerIcon } from "lucide-react"
|
||||
import type { RecordSubscription } from "pocketbase"
|
||||
import { EthernetIcon, GpuIcon } from "@/components/ui/icons"
|
||||
import { $alerts } from "@/lib/stores"
|
||||
@@ -104,6 +104,16 @@ export const alertInfo: Record<string, AlertInfo> = {
|
||||
start: 20,
|
||||
invert: true,
|
||||
},
|
||||
ContainerHealth: {
|
||||
name: () => t`Container Health`,
|
||||
unit: "",
|
||||
icon: ContainerIcon,
|
||||
desc: () => t`Triggers when a Docker container's health check reports unhealthy`,
|
||||
note: () =>
|
||||
t`Notifications may include recent container log excerpts.`,
|
||||
/** "for x minutes" is appended to desc when only one value */
|
||||
singleDesc: () => `${t`Container`} ${t`Unhealthy`}`,
|
||||
},
|
||||
SystemdFailed: {
|
||||
name: () => t`Failed Services`,
|
||||
unit: "",
|
||||
|
||||
Reference in New Issue
Block a user