From 726aee86f2436cb4a40da273efbef32227d85f50 Mon Sep 17 00:00:00 2001 From: yumusb <43062104+yumusb@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:15:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(notifier):=20=E4=BF=AE=E5=A4=8D=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E5=91=8A=E8=AD=A6=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - agent_offline 和 service 告警显示秒数而非百分比 - cert 告警显示天数 - network 告警显示 MB/s - cpu/memory/disk 告警保持百分比显示 - 新增 agent_offline 类型的告警名称映射 --- internal/service/notifier.go | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/internal/service/notifier.go b/internal/service/notifier.go index b709e4d..dbdc502 100644 --- a/internal/service/notifier.go +++ b/internal/service/notifier.go @@ -47,8 +47,10 @@ func (n *Notifier) buildMessage(agent *models.Agent, record *models.AlertRecord) levelIcon = "🚨" } - // 告警类型名称 + // 告警类型名称和单位 alertTypeName := "" + thresholdUnit := "%" + valueUnit := "%" switch record.AlertType { case "cpu": alertTypeName = "CPU告警" @@ -57,11 +59,21 @@ func (n *Notifier) buildMessage(agent *models.Agent, record *models.AlertRecord) case "disk": alertTypeName = "磁盘告警" case "network": - alertTypeName = "网络断开告警" + alertTypeName = "网络告警" + thresholdUnit = "MB/s" + valueUnit = "MB/s" case "cert": alertTypeName = "证书告警" + thresholdUnit = "天" + valueUnit = "天" case "service": alertTypeName = "服务告警" + thresholdUnit = "秒" + valueUnit = "秒" + case "agent_offline": + alertTypeName = "探针离线告警" + thresholdUnit = "秒" + valueUnit = "秒" } if record.Status == "firing" { @@ -73,8 +85,8 @@ func (n *Notifier) buildMessage(agent *models.Agent, record *models.AlertRecord) "IP: %s\n"+ "告警类型: %s\n"+ "告警消息: %s\n"+ - "阈值: %.2f%%\n"+ - "当前值: %.2f%%\n"+ + "阈值: %.2f%s\n"+ + "当前值: %.2f%s\n"+ "触发时间: %s", levelIcon, alertTypeName, @@ -85,7 +97,9 @@ func (n *Notifier) buildMessage(agent *models.Agent, record *models.AlertRecord) record.AlertType, record.Message, record.Threshold, + thresholdUnit, record.ActualValue, + valueUnit, time.Unix(record.FiredAt/1000, 0).Local().Format("2006-01-02 15:04:05"), ) } else if record.Status == "resolved" { @@ -96,7 +110,7 @@ func (n *Notifier) buildMessage(agent *models.Agent, record *models.AlertRecord) "主机: %s\n"+ "IP: %s\n"+ "告警类型: %s\n"+ - "当前值: %.2f%%\n"+ + "当前值: %.2f%s\n"+ "恢复时间: %s", alertTypeName, agent.Name, @@ -105,6 +119,7 @@ func (n *Notifier) buildMessage(agent *models.Agent, record *models.AlertRecord) agent.IP, record.AlertType, record.ActualValue, + valueUnit, time.Unix(record.ResolvedAt/1000, 0).Local().Format("2006-01-02 15:04:05"), ) }