From 9b4b135a393f89a677f224b82b0e6ca755fbd62c Mon Sep 17 00:00:00 2001 From: Jackson Chen Date: Wed, 27 Sep 2023 15:15:32 +0200 Subject: [PATCH] implement priority for resolved alerts --- config.scfg | 1 + config/config.go | 8 ++++++++ config/config_test.go | 2 ++ main.go | 2 ++ 4 files changed, 13 insertions(+) diff --git a/config.scfg b/config.scfg index e1aa5f8..22d9b89 100644 --- a/config.scfg +++ b/config.scfg @@ -40,6 +40,7 @@ labels { resolved { tags "resolved,partying_face" icon "https://foo.com/resolved.png" + priority 1 } ntfy { diff --git a/config/config.go b/config/config.go index f7de2f0..3269a2e 100644 --- a/config/config.go +++ b/config/config.go @@ -79,6 +79,7 @@ type alertmanagerConfig struct { type resolvedConfig struct { Tags []string Icon string + Priority string } // ReadConfig reads an scfg formatted file and returns the configuration struct. @@ -415,6 +416,13 @@ func ReadConfig(path string) (*Config, error) { return nil, err } } + + d = resolvedDir.Children.Get("priority") + if d != nil { + if err := d.ParseParams(&config.Resolved.Priority); err != nil { + return nil, err + } + } } return config, nil diff --git a/config/config_test.go b/config/config_test.go index 9d75a47..be0c7b6 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -41,6 +41,7 @@ labels { resolved { tags "resolved,partying_face" icon "https://foo.com/resolved.png" + resolved 1 } ntfy { @@ -106,6 +107,7 @@ cache { Resolved: resolvedConfig{ Tags: []string{"resolved", "partying_face"}, Icon: "https://foo.com/resolved.png", + Priority: "1", }, } diff --git a/main.go b/main.go index 979886e..d5520d0 100644 --- a/main.go +++ b/main.go @@ -117,6 +117,7 @@ func (br *bridge) singleAlertNotifications(p *payload) []*notification { if alert.Status == "resolved" { tags = append(tags, br.cfg.Resolved.Tags...) n.icon = br.cfg.Resolved.Icon + n.priority = br.cfg.Resolved.Priority } n.emailAddress = br.cfg.Ntfy.EmailAddress @@ -226,6 +227,7 @@ func (br *bridge) multiAlertNotification(p *payload) *notification { if p.Status == "resolved" { tags = append(tags, br.cfg.Resolved.Tags...) n.icon = br.cfg.Resolved.Icon + n.priority = br.cfg.Resolved.Priority } n.emailAddress = br.cfg.Ntfy.EmailAddress