added scraping Routing Team as Team
parent
098986eb07
commit
9bc47bfde6
12
slack.go
12
slack.go
|
|
@ -67,11 +67,11 @@ func newSlackToModelProcess(cfg Config) processFunc {
|
|||
|
||||
event := model.Event{}
|
||||
if s.Event != "" && s.Source != "" && s.TS > 0 && s.EventName != "" {
|
||||
event = model.NewEvent(s.Event, s.Source, s.TS, s.EventName, s.Asset, s.Datacenter, "TODO", s.Resolved)
|
||||
event = model.NewEvent(s.Event, s.Source, s.TS, s.EventName, s.Asset, s.Datacenter, s.Team, s.Resolved)
|
||||
}
|
||||
message := model.Message{}
|
||||
if s.ID != "" && s.Source != "" && s.TS > 0 && s.Thread != "" {
|
||||
message = model.NewMessage(s.ID, s.Source, s.TS, "TODO", s.Plaintext, s.Thread)
|
||||
message = model.NewMessage(s.ID, s.Source, s.TS, s.Author, s.Plaintext, s.Thread)
|
||||
}
|
||||
thread := model.Thread{}
|
||||
if s.Thread != "" && s.Source != "" && s.TS > 0 && s.Event != "" {
|
||||
|
|
@ -99,6 +99,7 @@ type (
|
|||
Resolved bool
|
||||
Datacenter string
|
||||
Author string
|
||||
Team string
|
||||
}
|
||||
|
||||
slackMessage struct {
|
||||
|
|
@ -173,9 +174,13 @@ func parseSlack(b []byte) (parsedSlackMessage, error) {
|
|||
return parsedSlackMessage{}, ErrIrrelevantMessage
|
||||
}
|
||||
var tagsField string
|
||||
var teamField string
|
||||
for _, field := range s.Event.Attachments[0].Fields {
|
||||
if field.Title == "Tags" {
|
||||
switch field.Title {
|
||||
case "Tags":
|
||||
tagsField = field.Value
|
||||
case "Routed Teams":
|
||||
teamField = field.Value
|
||||
}
|
||||
}
|
||||
return parsedSlackMessage{
|
||||
|
|
@ -191,6 +196,7 @@ func parseSlack(b []byte) (parsedSlackMessage, error) {
|
|||
Resolved: !strings.HasPrefix(s.Event.Attachments[0].Color, "F"),
|
||||
Datacenter: tagsField,
|
||||
Author: s.Event.Bot.Name,
|
||||
Team: teamField,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,14 +40,14 @@ func TestSlackToModelPipeline(t *testing.T) {
|
|||
"Alertconfig Workflow Failed",
|
||||
"",
|
||||
"",
|
||||
"TODO",
|
||||
"Datastores Non-Critical",
|
||||
false,
|
||||
),
|
||||
Message: model.NewMessage(
|
||||
"1712927439.728409/1712927439",
|
||||
"https://renderinc.slack.com/archives/C06U1DDBBU4/p1712927439728409",
|
||||
1712927439,
|
||||
"TODO",
|
||||
"Opsgenie for Alert Management",
|
||||
"At least one alertconfig run has failed unexpectedly.\nDashboard: <https://grafana.render.com/d/VLZU83YVk?orgId=1>\nPanel: <https://grafana.render.com/d/VLZU83YVk?orgId=1&viewPanel=17>\nSource: <https://grafana.render.com/alerting/grafana/fa7b06b8-b4d8-4979-bce7-5e1c432edd81/view?orgId=1>",
|
||||
"1712927439.728409",
|
||||
),
|
||||
|
|
@ -166,6 +166,7 @@ func TestParseSlackTestdata(t *testing.T) {
|
|||
Asset: "At least one alertconfig run has failed unexpectedly.\nDashboard: <https://grafana.render.com/d/VLZU83YVk?orgId=1>\nPanel: <https://grafana.render.com/d/VLZU83YVk?orgId=1&viewPanel=17>\nSource: <https://grafana.render.com/alerting/grafana/fa7b06b8-b4d8-4979-bce7-5e1c432edd81/view?orgId=1>",
|
||||
Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb",
|
||||
Author: "Opsgenie for Alert Management",
|
||||
Team: "Datastores Non-Critical",
|
||||
},
|
||||
},
|
||||
"opsgenie_alert_resolved.json": {
|
||||
|
|
@ -203,6 +204,7 @@ func TestParseSlackTestdata(t *testing.T) {
|
|||
Resolved: true,
|
||||
Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb",
|
||||
Author: "Opsgenie for Alert Management",
|
||||
Team: "Datastores Non-Critical",
|
||||
},
|
||||
},
|
||||
"reingested_alert.json": {
|
||||
|
|
@ -219,6 +221,7 @@ func TestParseSlackTestdata(t *testing.T) {
|
|||
Resolved: true,
|
||||
Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb",
|
||||
Author: "Opsgenie for Alert Management",
|
||||
Team: "Datastores Non-Critical",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue