From 9bc47bfde6e3b3dfca09fb4433e0d1c759776da0 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Tue, 16 Apr 2024 07:40:43 -0600 Subject: [PATCH] added scraping Routing Team as Team --- slack.go | 12 +++++++++--- slack_test.go | 7 +++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/slack.go b/slack.go index 8e081bd..5e58978 100644 --- a/slack.go +++ b/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 } diff --git a/slack_test.go b/slack_test.go index bff4d8a..1fb4be0 100644 --- a/slack_test.go +++ b/slack_test.go @@ -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: \nPanel: \nSource: ", "1712927439.728409", ), @@ -166,6 +166,7 @@ func TestParseSlackTestdata(t *testing.T) { Asset: "At least one alertconfig run has failed unexpectedly.\nDashboard: \nPanel: \nSource: ", 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", }, }, }