moira
/
tags.go
36 строк · 1.0 Кб
1package moira2
3var eventStateWeight = map[string]int{4OK: 0,5WARN: 1,6ERROR: 100,7NODATA: 10000,8}
9
10// EventHighDegradationTag is reserved tag that describes High Degradation
11var EventHighDegradationTag = "HIGH DEGRADATION"12
13// EventDegradationTag is reserved tag that describes Degradation
14var EventDegradationTag = "DEGRADATION"15
16// EventProgressTag is reserved tag that describes Progress
17var EventProgressTag = "PROGRESS"18
19// GetEventTags returns additional subscription tags based on trigger state
20func (event *NotificationEvent) GetEventTags() []string {21tags := []string{event.State, event.OldState}22if oldStateWeight, ok := eventStateWeight[event.OldState]; ok {23if newStateWeight, ok := eventStateWeight[event.State]; ok {24if newStateWeight > oldStateWeight {25if newStateWeight-oldStateWeight >= 100 {26tags = append(tags, EventHighDegradationTag)27}28tags = append(tags, EventDegradationTag)29}30if newStateWeight < oldStateWeight {31tags = append(tags, EventProgressTag)32}33}34}35return tags36}
37