moira

Форк
0
/
tags.go 
36 строк · 1.0 Кб
1
package moira
2

3
var eventStateWeight = map[string]int{
4
	OK:     0,
5
	WARN:   1,
6
	ERROR:  100,
7
	NODATA: 10000,
8
}
9

10
// EventHighDegradationTag is reserved tag that describes High Degradation
11
var EventHighDegradationTag = "HIGH DEGRADATION"
12

13
// EventDegradationTag is reserved tag that describes Degradation
14
var EventDegradationTag = "DEGRADATION"
15

16
// EventProgressTag is reserved tag that describes Progress
17
var EventProgressTag = "PROGRESS"
18

19
// GetEventTags returns additional subscription tags based on trigger state
20
func (event *NotificationEvent) GetEventTags() []string {
21
	tags := []string{event.State, event.OldState}
22
	if oldStateWeight, ok := eventStateWeight[event.OldState]; ok {
23
		if newStateWeight, ok := eventStateWeight[event.State]; ok {
24
			if newStateWeight > oldStateWeight {
25
				if newStateWeight-oldStateWeight >= 100 {
26
					tags = append(tags, EventHighDegradationTag)
27
				}
28
				tags = append(tags, EventDegradationTag)
29
			}
30
			if newStateWeight < oldStateWeight {
31
				tags = append(tags, EventProgressTag)
32
			}
33
		}
34
	}
35
	return tags
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.