From b444a94a0668c05f9fe26c51b39677f1d075b4aa Mon Sep 17 00:00:00 2001 From: Akkia Date: Sun, 16 Apr 2023 22:47:12 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=84mutelabel=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/singleton/alertsentinel.go | 8 ++++---- service/singleton/notification.go | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/service/singleton/alertsentinel.go b/service/singleton/alertsentinel.go index 4df2687..674d182 100644 --- a/service/singleton/alertsentinel.go +++ b/service/singleton/alertsentinel.go @@ -165,8 +165,8 @@ func checkStatus() { go SendTriggerTasks(alert.FailTriggerTasks, curServer.ID) go SendNotification(alert.NotificationTag, message, NotificationMuteLabel.ServerIncident(server.ID, alert.ID), &curServer) // 清除恢复通知的静音缓存 - resolvedMuteLabel := fmt.Sprintf("%s:%s", *NotificationMuteLabel.ServerIncidentResolved(server.ID, alert.ID), alert.NotificationTag) - Cache.Delete(resolvedMuteLabel) + resolvedMuteLabel := NotificationMuteLabel.AppendNotificationTag(NotificationMuteLabel.ServerIncidentResolved(server.ID, alert.ID), alert.NotificationTag) + Cache.Delete(*resolvedMuteLabel) } } else { // 本次通过检查但上一次的状态为失败,则发送恢复通知 @@ -177,8 +177,8 @@ func checkStatus() { go SendTriggerTasks(alert.RecoverTriggerTasks, curServer.ID) go SendNotification(alert.NotificationTag, message, NotificationMuteLabel.ServerIncidentResolved(server.ID, alert.ID), &curServer) // 清除失败通知的静音缓存 - incidentMuteLabel := fmt.Sprintf("%s:%s", *NotificationMuteLabel.ServerIncident(server.ID, alert.ID), alert.NotificationTag) - Cache.Delete(incidentMuteLabel) + incidentMuteLabel := NotificationMuteLabel.AppendNotificationTag(NotificationMuteLabel.ServerIncident(server.ID, alert.ID), alert.NotificationTag) + Cache.Delete(*incidentMuteLabel) } alertsPrevState[alert.ID][server.ID] = _RuleCheckPass } diff --git a/service/singleton/notification.go b/service/singleton/notification.go index 2b4d047..e8c93c3 100644 --- a/service/singleton/notification.go +++ b/service/singleton/notification.go @@ -106,7 +106,7 @@ func OnDeleteNotification(id uint64) { func SendNotification(notificationTag string, desc string, muteLabel *string, ext ...*model.Server) { if muteLabel != nil { // 将通知方式组名称加入静音标志 - muteLabel := fmt.Sprintf("%s:%s", *muteLabel, notificationTag) + muteLabel := *NotificationMuteLabel.AppendNotificationTag(muteLabel, notificationTag) // 通知防骚扰策略 var flag bool if cacheN, has := Cache.Get(muteLabel); has { @@ -179,6 +179,11 @@ func (_NotificationMuteLabel) ServerIncidentResolved(alertId uint64, serverId ui return &label } +func (_NotificationMuteLabel) AppendNotificationTag(label *string, notificationTag string) *string { + newLabel := fmt.Sprintf("%s:%s", *label, notificationTag) + return &newLabel +} + func (_NotificationMuteLabel) ServiceLatencyMin(serviceId uint64) *string { label := fmt.Sprintf("bf::sln-%d", serviceId) return &label