added scraping Routing Team as Team

main
Bel LaPointe 2024-04-16 07:40:43 -06:00
parent 098986eb07
commit 9bc47bfde6
2 changed files with 14 additions and 5 deletions

View File

@ -67,11 +67,11 @@ func newSlackToModelProcess(cfg Config) processFunc {
event := model.Event{} event := model.Event{}
if s.Event != "" && s.Source != "" && s.TS > 0 && s.EventName != "" { 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{} message := model.Message{}
if s.ID != "" && s.Source != "" && s.TS > 0 && s.Thread != "" { 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{} thread := model.Thread{}
if s.Thread != "" && s.Source != "" && s.TS > 0 && s.Event != "" { if s.Thread != "" && s.Source != "" && s.TS > 0 && s.Event != "" {
@ -99,6 +99,7 @@ type (
Resolved bool Resolved bool
Datacenter string Datacenter string
Author string Author string
Team string
} }
slackMessage struct { slackMessage struct {
@ -173,9 +174,13 @@ func parseSlack(b []byte) (parsedSlackMessage, error) {
return parsedSlackMessage{}, ErrIrrelevantMessage return parsedSlackMessage{}, ErrIrrelevantMessage
} }
var tagsField string var tagsField string
var teamField string
for _, field := range s.Event.Attachments[0].Fields { for _, field := range s.Event.Attachments[0].Fields {
if field.Title == "Tags" { switch field.Title {
case "Tags":
tagsField = field.Value tagsField = field.Value
case "Routed Teams":
teamField = field.Value
} }
} }
return parsedSlackMessage{ return parsedSlackMessage{
@ -191,6 +196,7 @@ func parseSlack(b []byte) (parsedSlackMessage, error) {
Resolved: !strings.HasPrefix(s.Event.Attachments[0].Color, "F"), Resolved: !strings.HasPrefix(s.Event.Attachments[0].Color, "F"),
Datacenter: tagsField, Datacenter: tagsField,
Author: s.Event.Bot.Name, Author: s.Event.Bot.Name,
Team: teamField,
}, nil }, nil
} }

View File

@ -40,14 +40,14 @@ func TestSlackToModelPipeline(t *testing.T) {
"Alertconfig Workflow Failed", "Alertconfig Workflow Failed",
"", "",
"", "",
"TODO", "Datastores Non-Critical",
false, false,
), ),
Message: model.NewMessage( Message: model.NewMessage(
"1712927439.728409/1712927439", "1712927439.728409/1712927439",
"https://renderinc.slack.com/archives/C06U1DDBBU4/p1712927439728409", "https://renderinc.slack.com/archives/C06U1DDBBU4/p1712927439728409",
1712927439, 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&amp;viewPanel=17>\nSource: <https://grafana.render.com/alerting/grafana/fa7b06b8-b4d8-4979-bce7-5e1c432edd81/view?orgId=1>", "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&amp;viewPanel=17>\nSource: <https://grafana.render.com/alerting/grafana/fa7b06b8-b4d8-4979-bce7-5e1c432edd81/view?orgId=1>",
"1712927439.728409", "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&amp;viewPanel=17>\nSource: <https://grafana.render.com/alerting/grafana/fa7b06b8-b4d8-4979-bce7-5e1c432edd81/view?orgId=1>", 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&amp;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", Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb",
Author: "Opsgenie for Alert Management", Author: "Opsgenie for Alert Management",
Team: "Datastores Non-Critical",
}, },
}, },
"opsgenie_alert_resolved.json": { "opsgenie_alert_resolved.json": {
@ -203,6 +204,7 @@ func TestParseSlackTestdata(t *testing.T) {
Resolved: true, Resolved: true,
Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb", Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb",
Author: "Opsgenie for Alert Management", Author: "Opsgenie for Alert Management",
Team: "Datastores Non-Critical",
}, },
}, },
"reingested_alert.json": { "reingested_alert.json": {
@ -219,6 +221,7 @@ func TestParseSlackTestdata(t *testing.T) {
Resolved: true, Resolved: true,
Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb", Datacenter: "alertname:Alertconfig Workflow Failed, grafana_folder:Datastores, rule_uid:a7639f7e-6950-41be-850a-b22119f74cbb",
Author: "Opsgenie for Alert Management", Author: "Opsgenie for Alert Management",
Team: "Datastores Non-Critical",
}, },
}, },
} }