diff --git a/docker/initsql/n9e.sql b/docker/initsql/n9e.sql index e2cf8806121517a6517229cd587fd92589b90520..44285c57658dd053b0c4cb232707cebb3899f409 100644 --- a/docker/initsql/n9e.sql +++ b/docker/initsql/n9e.sql @@ -318,6 +318,7 @@ CREATE TABLE `alert_his_event` ( `target_note` varchar(191) not null default '' comment 'target note', `trigger_time` bigint not null, `trigger_value` varchar(255) not null, + `recover_time` bigint not null default 0, `tags` varchar(1024) not null default '' comment 'merge data_tags rule_tags, split by ,,', PRIMARY KEY (`id`), KEY (`hash`), diff --git a/etc/template/dingtalk.tpl b/etc/template/dingtalk.tpl index 95019ebac37cd0ae29eee8b50c83f8a43cb31873..59ece247710cf1f59685327c9b63fe1962d1d12e 100644 --- a/etc/template/dingtalk.tpl +++ b/etc/template/dingtalk.tpl @@ -2,5 +2,5 @@ 规则名称: {{.RuleName}}{{if .RuleNote}} 规则备注: {{.RuleNote}}{{end}} 监控指标: {{.TagsJSON}} -触发时间: {{timeformat .TriggerTime}} -触发时值: {{.TriggerValue}} \ No newline at end of file +{{if .IsRecovered}}恢复时间:{{timeformat .LastEvalTime}}{{else}}触发时间: {{timeformat .TriggerTime}} +触发时值: {{.TriggerValue}}{{end}} \ No newline at end of file diff --git a/etc/template/feishu.tpl b/etc/template/feishu.tpl index 95019ebac37cd0ae29eee8b50c83f8a43cb31873..59ece247710cf1f59685327c9b63fe1962d1d12e 100644 --- a/etc/template/feishu.tpl +++ b/etc/template/feishu.tpl @@ -2,5 +2,5 @@ 规则名称: {{.RuleName}}{{if .RuleNote}} 规则备注: {{.RuleNote}}{{end}} 监控指标: {{.TagsJSON}} -触发时间: {{timeformat .TriggerTime}} -触发时值: {{.TriggerValue}} \ No newline at end of file +{{if .IsRecovered}}恢复时间:{{timeformat .LastEvalTime}}{{else}}触发时间: {{timeformat .TriggerTime}} +触发时值: {{.TriggerValue}}{{end}} \ No newline at end of file diff --git a/etc/template/mailbody.tpl b/etc/template/mailbody.tpl index a45e35b64a10850d23aca855f55f14696f54c918..fa5e2d64f27fa101d7731e1d3f3d137816f15e24 100644 --- a/etc/template/mailbody.tpl +++ b/etc/template/mailbody.tpl @@ -162,6 +162,13 @@ 监控指标: {{.TagsJSON}} + + {{if .IsRecovered}} + + 恢复时间: + {{timeformat .LastEvalTime}} + + {{else}} 触发时值: {{.TriggerValue}} @@ -172,6 +179,8 @@ {{timeformat .TriggerTime}} + {{end}} + PromQL: diff --git a/etc/template/wecom.tpl b/etc/template/wecom.tpl index 1513cbd5b90ddaf3ca7d8198a725e805005d2bbe..d1c7410a243de2eb20a88de0c733faa45bede5a8 100644 --- a/etc/template/wecom.tpl +++ b/etc/template/wecom.tpl @@ -2,5 +2,5 @@ **规则标题**: {{.RuleName}}{{if .RuleNote}} **规则备注**: {{.RuleNote}}{{end}} **监控指标**: {{.TagsJSON}} -**触发时间**: {{timeformat .TriggerTime}} -**触发时值**: {{.TriggerValue}} \ No newline at end of file +{{if .IsRecovered}}**恢复时间**:{{timeformat .LastEvalTime}}{{else}}**触发时间**: {{timeformat .TriggerTime}} +**触发时值**: {{.TriggerValue}}{{end}} \ No newline at end of file diff --git a/src/models/alert_cur_event.go b/src/models/alert_cur_event.go index a43b64d10168d27d78c46529f8ec3430930a419d..a278bd90d1eecc034932acfca7f7ee7a05b8d4f0 100644 --- a/src/models/alert_cur_event.go +++ b/src/models/alert_cur_event.go @@ -37,7 +37,7 @@ type AlertCurEvent struct { TagsMap map[string]string `json:"-" gorm:"-"` // for internal usage IsRecovered bool `json:"is_recovered" gorm:"-"` // for notify.py NotifyUsersObj []*User `json:"notify_users_obj" gorm:"-"` // for notify.py - LastEvalTime int64 `json:"last_eval_time" gorm:"-"` // for internal usage + LastEvalTime int64 `json:"last_eval_time" gorm:"-"` // for notify.py } func (e *AlertCurEvent) TableName() string { @@ -80,6 +80,7 @@ func (e *AlertCurEvent) ToHis() *AlertHisEvent { TriggerTime: e.TriggerTime, TriggerValue: e.TriggerValue, Tags: e.Tags, + RecoverTime: e.LastEvalTime, } } diff --git a/src/models/alert_his_event.go b/src/models/alert_his_event.go index 39eb89a248dfe4055cdb84cf54fd176ea495e670..507c1a5ca3d78c9aea63b91c6c57ef52230b2d07 100644 --- a/src/models/alert_his_event.go +++ b/src/models/alert_his_event.go @@ -31,6 +31,7 @@ type AlertHisEvent struct { TargetNote string `json:"target_note"` TriggerTime int64 `json:"trigger_time"` TriggerValue string `json:"trigger_value"` + RecoverTime int64 `json:"recover_time"` Tags string `json:"-"` TagsJSON []string `json:"tags" gorm:"-"` }