From d02028e581d5ed1f23ad3dfe10575d71e90609b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Wed, 5 Apr 2017 22:48:22 -0700 Subject: [PATCH] Add functions in alertmanager package for getting alerts and silences via the mapper package --- alertmanager/alertmanager.go | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 alertmanager/alertmanager.go diff --git a/alertmanager/alertmanager.go b/alertmanager/alertmanager.go new file mode 100644 index 000000000..dd95fd7d2 --- /dev/null +++ b/alertmanager/alertmanager.go @@ -0,0 +1,58 @@ +package alertmanager + +import ( + "time" + + "github.com/cloudflare/unsee/mapper" + "github.com/cloudflare/unsee/mapper/v04" + "github.com/cloudflare/unsee/mapper/v05" + "github.com/cloudflare/unsee/models" + + log "github.com/Sirupsen/logrus" +) + +// initialize all mappers +func init() { + mapper.RegisterAlertMapper(v04.AlertMapper{}) + mapper.RegisterAlertMapper(v05.AlertMapper{}) + mapper.RegisterSilenceMapper(v04.SilenceMapper{}) + mapper.RegisterSilenceMapper(v05.SilenceMapper{}) +} + +// GetAlerts will send request to Alertmanager and return list of alert groups +// from the API +func GetAlerts(version string) ([]models.UnseeAlertGroup, error) { + groups := []models.UnseeAlertGroup{} + + mapper, err := mapper.GetAlertMapper(version) + if err != nil { + return groups, err + } + + start := time.Now() + groups, err = mapper.GetAlerts() + if err != nil { + return groups, err + } + log.Infof("Got %d alert group(s) in %s", len(groups), time.Since(start)) + return groups, nil +} + +// GetSilences will send request to Alertmanager and return list of silences +// from the API +func GetSilences(version string) ([]models.UnseeSilence, error) { + silences := []models.UnseeSilence{} + + mapper, err := mapper.GetSilenceMapper(version) + if err != nil { + return silences, err + } + + start := time.Now() + silences, err = mapper.GetSilences() + if err != nil { + return silences, err + } + log.Infof("Got %d silences(s) in %s", len(silences), time.Since(start)) + return silences, nil +}