enable_in_bg logic
This commit is contained in:
parent
7b4eddc967
commit
d590f6d5c1
|
@ -207,6 +207,7 @@ CREATE TABLE `alert_rule` (
|
||||||
`enable_stime` char(5) not null default '00:00',
|
`enable_stime` char(5) not null default '00:00',
|
||||||
`enable_etime` char(5) not null default '23:59',
|
`enable_etime` char(5) not null default '23:59',
|
||||||
`enable_days_of_week` varchar(32) not null default '' comment 'split by space: 0 1 2 3 4 5 6',
|
`enable_days_of_week` varchar(32) not null default '' comment 'split by space: 0 1 2 3 4 5 6',
|
||||||
|
`enable_in_bg` tinyint(1) not null default 0 comment '1: only this bg 0: global',
|
||||||
`notify_recovered` tinyint(1) not null comment 'whether notify when recovery',
|
`notify_recovered` tinyint(1) not null comment 'whether notify when recovery',
|
||||||
`notify_channels` varchar(255) not null default '' comment 'split by space: sms voice email dingtalk wecom',
|
`notify_channels` varchar(255) not null default '' comment 'split by space: sms voice email dingtalk wecom',
|
||||||
`notify_groups` varchar(255) not null default '' comment 'split by space: 233 43',
|
`notify_groups` varchar(255) not null default '' comment 'split by space: 233 43',
|
||||||
|
|
|
@ -28,6 +28,7 @@ type AlertRule struct {
|
||||||
EnableEtime string `json:"enable_etime"` // e.g. 23:59
|
EnableEtime string `json:"enable_etime"` // e.g. 23:59
|
||||||
EnableDaysOfWeek string `json:"-"` // split by space: 0 1 2 3 4 5 6
|
EnableDaysOfWeek string `json:"-"` // split by space: 0 1 2 3 4 5 6
|
||||||
EnableDaysOfWeekJSON []string `json:"enable_days_of_week" gorm:"-"` // for fe
|
EnableDaysOfWeekJSON []string `json:"enable_days_of_week" gorm:"-"` // for fe
|
||||||
|
EnableInBG int `json:"enable_in_bg"` // 0: global 1: enable one busi-group
|
||||||
NotifyRecovered int `json:"notify_recovered"` // whether notify when recovery
|
NotifyRecovered int `json:"notify_recovered"` // whether notify when recovery
|
||||||
NotifyChannels string `json:"-"` // split by space: sms voice email dingtalk wecom
|
NotifyChannels string `json:"-"` // split by space: sms voice email dingtalk wecom
|
||||||
NotifyChannelsJSON []string `json:"notify_channels" gorm:"-"` // for fe
|
NotifyChannelsJSON []string `json:"notify_channels" gorm:"-"` // for fe
|
||||||
|
|
|
@ -202,6 +202,12 @@ func (r RuleEval) judge(vectors []Vector) {
|
||||||
tagsMap[string(label)] = string(value)
|
tagsMap[string(label)] = string(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// handle rule tags
|
||||||
|
for _, tag := range r.rule.AppendTagsJSON {
|
||||||
|
arr := strings.SplitN(tag, "=", 2)
|
||||||
|
tagsMap[arr[0]] = arr[1]
|
||||||
|
}
|
||||||
|
|
||||||
// handle target note
|
// handle target note
|
||||||
targetIdent, has := vectors[i].Labels["ident"]
|
targetIdent, has := vectors[i].Labels["ident"]
|
||||||
targetNote := ""
|
targetNote := ""
|
||||||
|
@ -209,13 +215,13 @@ func (r RuleEval) judge(vectors []Vector) {
|
||||||
target, exists := memsto.TargetCache.Get(string(targetIdent))
|
target, exists := memsto.TargetCache.Get(string(targetIdent))
|
||||||
if exists {
|
if exists {
|
||||||
targetNote = target.Note
|
targetNote = target.Note
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// handle rule tags
|
// 对于包含ident的告警事件,check一下ident所属bg和rule所属bg是否相同
|
||||||
for _, tag := range r.rule.AppendTagsJSON {
|
// 如果告警规则选择了只在本BG生效,那其他BG的机器就不能因此规则产生告警
|
||||||
arr := strings.SplitN(tag, "=", 2)
|
if r.rule.EnableInBG == 1 && target.GroupId != r.rule.GroupId {
|
||||||
tagsMap[arr[0]] = arr[1]
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event := &models.AlertCurEvent{
|
event := &models.AlertCurEvent{
|
||||||
|
|
Loading…
Reference in New Issue