mirror of
https://github.com/prymitive/karma
synced 2026-08-28 11:17:28 +00:00
Remove alertmanager models in the models package
Those aren't needed anymore, only mapper package needs to know Alertmanager schema and it already does so
This commit is contained in:
+53
-53
@@ -34,13 +34,13 @@ var tests = []filterTest{
|
||||
filterTest{
|
||||
Expression: "@silenced=true",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silenced!=true",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
@@ -51,225 +51,225 @@ var tests = []filterTest{
|
||||
filterTest{
|
||||
Expression: "@silence_jira=1",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}, JiraID: "1"},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", JiraID: "1"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_jira=2",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1"},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_jira!=3",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}, JiraID: "x"},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", JiraID: "x"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_jira!=4",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}, JiraID: "4"},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", JiraID: "4"},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_jira!=5",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_jira=~abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}, JiraID: "xxabcxx"},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", JiraID: "xxabcxx"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_jira=~abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}, JiraID: "xxx"},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", JiraID: "xxx"},
|
||||
IsMatch: false,
|
||||
},
|
||||
|
||||
filterTest{
|
||||
Expression: "@silence_author=john",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", CreatedBy: "john"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", CreatedBy: "john"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_author=john",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", CreatedBy: "bob"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", CreatedBy: "bob"},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_author!=john",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", CreatedBy: "bob"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", CreatedBy: "bob"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_author!=john",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", CreatedBy: "john"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", CreatedBy: "john"},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@silence_author!=john",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1"},
|
||||
IsMatch: true,
|
||||
},
|
||||
|
||||
filterTest{
|
||||
Expression: "@age<1h",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{StartsAt: time.Now().Add(time.Minute * -55)}},
|
||||
Alert: models.UnseeAlert{StartsAt: time.Now().Add(time.Minute * -55)},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@age>1h",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{StartsAt: time.Now().Add(time.Hour * -2)}},
|
||||
Alert: models.UnseeAlert{StartsAt: time.Now().Add(time.Hour * -2)},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@age<-1h",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{StartsAt: time.Now().Add(time.Minute * -55)}},
|
||||
Alert: models.UnseeAlert{StartsAt: time.Now().Add(time.Minute * -55)},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@age>-1h",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{StartsAt: time.Now().Add(time.Hour * -2)}},
|
||||
Alert: models.UnseeAlert{StartsAt: time.Now().Add(time.Hour * -2)},
|
||||
IsMatch: true,
|
||||
},
|
||||
|
||||
filterTest{
|
||||
Expression: "node=vps1",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"node": "vps1"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"node": "vps1"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "node=vps1",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{}},
|
||||
Alert: models.UnseeAlert{},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "node!=vps1",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"node": "vps1"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"node": "vps1"}},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "node!=vps1",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"node": "vps2"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"node": "vps2"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "node=~vps",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"node": "vps1"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"node": "vps1"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "node!~vps",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"node": "vps1"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"node": "vps1"}},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "node!~abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"node": "vps1"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"node": "vps1"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"key": "abc"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"key": "abc"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"key": "XXXabcx"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"key": "XXXabcx"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Labels: map[string]string{"abc": "xxxab"}}},
|
||||
Alert: models.UnseeAlert{Labels: map[string]string{"abc": "xxxab"}},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Annotations: map[string]string{"key": "abc"}}},
|
||||
Alert: models.UnseeAlert{Annotations: map[string]string{"key": "abc"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Annotations: map[string]string{"key": "ccc abc"}}},
|
||||
Alert: models.UnseeAlert{Annotations: map[string]string{"key": "ccc abc"}},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Annotations: map[string]string{"abc": "zzz"}}},
|
||||
Alert: models.UnseeAlert{Annotations: map[string]string{"abc": "zzz"}},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", Comment: "abc"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", Comment: "abc"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", Comment: "abcxxx"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", Comment: "abcxxx"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", Comment: "ABCD"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", Comment: "ABCD"},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{Silenced: "1"}},
|
||||
Silence: models.UnseeSilence{AlertmanagerSilence: models.AlertmanagerSilence{ID: "1", Comment: "xzc"}},
|
||||
Alert: models.UnseeAlert{Silenced: "1"},
|
||||
Silence: models.UnseeSilence{ID: "1", Comment: "xzc"},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "abc",
|
||||
IsValid: true,
|
||||
Alert: models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{}},
|
||||
Alert: models.UnseeAlert{},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
@@ -366,7 +366,7 @@ func TestLimitFilter(t *testing.T) {
|
||||
t.Errorf("[%s] GetIsValid() returned %#v while %#v was expected", ft.Expression, f.GetIsValid(), ft.IsValid)
|
||||
}
|
||||
if f.GetIsValid() {
|
||||
alert := models.UnseeAlert{AlertmanagerAlert: models.AlertmanagerAlert{}}
|
||||
alert := models.UnseeAlert{}
|
||||
var index int = 0
|
||||
for _, isMatch := range ft.IsMatch {
|
||||
m := f.Match(&alert, index)
|
||||
|
||||
@@ -76,14 +76,12 @@ func (m AlertMapper) GetAlerts() ([]models.UnseeAlertGroup, error) {
|
||||
for _, b := range g.Blocks {
|
||||
for _, a := range b.Alerts {
|
||||
us := models.UnseeAlert{
|
||||
AlertmanagerAlert: models.AlertmanagerAlert{
|
||||
Annotations: a.Annotations,
|
||||
Labels: a.Labels,
|
||||
StartsAt: a.StartsAt,
|
||||
EndsAt: a.EndsAt,
|
||||
GeneratorURL: a.GeneratorURL,
|
||||
Inhibited: a.Inhibited,
|
||||
},
|
||||
Annotations: a.Annotations,
|
||||
Labels: a.Labels,
|
||||
StartsAt: a.StartsAt,
|
||||
EndsAt: a.EndsAt,
|
||||
GeneratorURL: a.GeneratorURL,
|
||||
Inhibited: a.Inhibited,
|
||||
}
|
||||
if a.Silenced > 0 {
|
||||
us.Silenced = string(a.Silenced)
|
||||
|
||||
@@ -77,15 +77,13 @@ func (m SilenceMapper) GetSilences() ([]models.UnseeSilence, error) {
|
||||
|
||||
for _, s := range resp.Data.Silences {
|
||||
us := models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
ID: string(s.ID),
|
||||
Matchers: s.Matchers,
|
||||
StartsAt: s.StartsAt,
|
||||
EndsAt: s.EndsAt,
|
||||
CreatedAt: s.CreatedAt,
|
||||
CreatedBy: s.CreatedBy,
|
||||
Comment: s.Comment,
|
||||
},
|
||||
ID: string(s.ID),
|
||||
Matchers: s.Matchers,
|
||||
StartsAt: s.StartsAt,
|
||||
EndsAt: s.EndsAt,
|
||||
CreatedAt: s.CreatedAt,
|
||||
CreatedBy: s.CreatedBy,
|
||||
Comment: s.Comment,
|
||||
}
|
||||
silences = append(silences, us)
|
||||
}
|
||||
|
||||
@@ -74,15 +74,13 @@ func (m AlertMapper) GetAlerts() ([]models.UnseeAlertGroup, error) {
|
||||
for _, b := range g.Blocks {
|
||||
for _, a := range b.Alerts {
|
||||
us := models.UnseeAlert{
|
||||
AlertmanagerAlert: models.AlertmanagerAlert{
|
||||
Annotations: a.Annotations,
|
||||
Labels: a.Labels,
|
||||
StartsAt: a.StartsAt,
|
||||
EndsAt: a.EndsAt,
|
||||
GeneratorURL: a.GeneratorURL,
|
||||
Inhibited: a.Inhibited,
|
||||
Silenced: a.Silenced,
|
||||
},
|
||||
Annotations: a.Annotations,
|
||||
Labels: a.Labels,
|
||||
StartsAt: a.StartsAt,
|
||||
EndsAt: a.EndsAt,
|
||||
GeneratorURL: a.GeneratorURL,
|
||||
Inhibited: a.Inhibited,
|
||||
Silenced: a.Silenced,
|
||||
}
|
||||
alertList = append(alertList, us)
|
||||
}
|
||||
|
||||
@@ -68,15 +68,13 @@ func (m SilenceMapper) GetSilences() ([]models.UnseeSilence, error) {
|
||||
|
||||
for _, s := range resp.Data {
|
||||
us := models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
ID: s.ID,
|
||||
Matchers: s.Matchers,
|
||||
StartsAt: s.StartsAt,
|
||||
EndsAt: s.EndsAt,
|
||||
CreatedAt: s.CreatedAt,
|
||||
CreatedBy: s.CreatedBy,
|
||||
Comment: s.Comment,
|
||||
},
|
||||
ID: s.ID,
|
||||
Matchers: s.Matchers,
|
||||
StartsAt: s.StartsAt,
|
||||
EndsAt: s.EndsAt,
|
||||
CreatedAt: s.CreatedAt,
|
||||
CreatedBy: s.CreatedBy,
|
||||
Comment: s.Comment,
|
||||
}
|
||||
silences = append(silences, us)
|
||||
}
|
||||
|
||||
+14
-30
@@ -2,27 +2,11 @@ package models
|
||||
|
||||
import "time"
|
||||
|
||||
// AlertmanagerAlert is vanilla alert object from Alertmanager
|
||||
type AlertmanagerAlert struct {
|
||||
Annotations map[string]string `json:"annotations"`
|
||||
Labels map[string]string `json:"labels"`
|
||||
StartsAt time.Time `json:"startsAt"`
|
||||
EndsAt time.Time `json:"endsAt"`
|
||||
GeneratorURL string `json:"generatorURL"`
|
||||
Inhibited bool `json:"inhibited"`
|
||||
Silenced string `json:"silenced"`
|
||||
}
|
||||
|
||||
// AlertmanagerAlertGroup is vanilla group object from Alertmanager, exposed under api/v1/alerts/groups
|
||||
type AlertmanagerAlertGroup struct {
|
||||
Labels map[string]string `json:"labels"`
|
||||
Blocks []struct {
|
||||
Alerts []AlertmanagerAlert `json:"alerts"`
|
||||
} `json:"blocks"`
|
||||
}
|
||||
|
||||
// AlertmanagerSilence is vanilla silence object from Alertmanager, exposed under api/v1/silences
|
||||
type AlertmanagerSilence struct {
|
||||
// UnseeSilence is vanilla silence + some additional attributes
|
||||
// Unsee adds JIRA support, it can extract JIRA IDs from comments
|
||||
// extracted ID is used to generate link to JIRA issue
|
||||
// this means Unsee needs to store additional fields for each silence
|
||||
type UnseeSilence struct {
|
||||
ID string `json:"id"`
|
||||
Matchers []struct {
|
||||
Name string `json:"name"`
|
||||
@@ -34,14 +18,7 @@ type AlertmanagerSilence struct {
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
CreatedBy string `json:"createdBy"`
|
||||
Comment string `json:"comment"`
|
||||
}
|
||||
|
||||
// UnseeSilence is vanilla silence + some additional attributes
|
||||
// Unsee adds JIRA support, it can extract JIRA IDs from comments
|
||||
// extracted ID is used to generate link to JIRA issue
|
||||
// this means Unsee needs to store additional fields for each silence
|
||||
type UnseeSilence struct {
|
||||
AlertmanagerSilence
|
||||
// unsee fields
|
||||
JiraID string `json:"jiraID"`
|
||||
JiraURL string `json:"jiraURL"`
|
||||
}
|
||||
@@ -53,7 +30,14 @@ type UnseeSilence struct {
|
||||
// unsee UI used this to show links differently than other annotations
|
||||
// * Fingerprint, which is a sha1 of the entire alert
|
||||
type UnseeAlert struct {
|
||||
AlertmanagerAlert
|
||||
Annotations map[string]string `json:"annotations"`
|
||||
Labels map[string]string `json:"labels"`
|
||||
StartsAt time.Time `json:"startsAt"`
|
||||
EndsAt time.Time `json:"endsAt"`
|
||||
GeneratorURL string `json:"generatorURL"`
|
||||
Inhibited bool `json:"inhibited"`
|
||||
Silenced string `json:"silenced"`
|
||||
// unsee fields
|
||||
Links map[string]string `json:"links"`
|
||||
Fingerprint string `json:"-"`
|
||||
}
|
||||
|
||||
+9
-27
@@ -21,71 +21,53 @@ var jiraRules = []string{
|
||||
var jiraTests = []jiraTest{
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "Lorem ipsum dolor sit amet",
|
||||
},
|
||||
Comment: "Lorem ipsum dolor sit amet",
|
||||
},
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "DVOPS-123",
|
||||
},
|
||||
Comment: "DVOPS-123",
|
||||
},
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "DEVOPS team",
|
||||
},
|
||||
Comment: "DEVOPS team",
|
||||
},
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "a project-1 b",
|
||||
},
|
||||
Comment: "a project-1 b",
|
||||
},
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "a PROJECT- b",
|
||||
},
|
||||
Comment: "a PROJECT- b",
|
||||
},
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "DEVOPS-1",
|
||||
},
|
||||
Comment: "DEVOPS-1",
|
||||
},
|
||||
jiraID: "DEVOPS-1",
|
||||
jiraLink: "https://jira.example.com/browse/DEVOPS-1",
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "DEVOPS-123",
|
||||
},
|
||||
Comment: "DEVOPS-123",
|
||||
},
|
||||
jiraID: "DEVOPS-123",
|
||||
jiraLink: "https://jira.example.com/browse/DEVOPS-123",
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "a DEVOPS-1 b",
|
||||
},
|
||||
Comment: "a DEVOPS-1 b",
|
||||
},
|
||||
jiraID: "DEVOPS-1",
|
||||
jiraLink: "https://jira.example.com/browse/DEVOPS-1",
|
||||
},
|
||||
jiraTest{
|
||||
silence: models.UnseeSilence{
|
||||
AlertmanagerSilence: models.AlertmanagerSilence{
|
||||
Comment: "PROJECT-9",
|
||||
},
|
||||
Comment: "PROJECT-9",
|
||||
},
|
||||
jiraID: "PROJECT-9",
|
||||
jiraLink: "https://example.com/browse/PROJECT-9",
|
||||
|
||||
Reference in New Issue
Block a user