6 log "github.com/sirupsen/logrus"
8 "github.com/kelseyhightower/envconfig"
12 VaultURL string `envconfig:"VAULT_URL" required:"true"`
13 EtcdURL string `envconfig:"ETCD_URL" required:"true"`
14 SlackWebHookURL string `envconfig:"SLACK_WEBHOOK_URL" required:"true"`
15 SlackChannel string `envconfig:"SLACK_CHANNEL" required:"true"`
16 Verbose bool `envconfig:"VERBOSE"`
21 err := envconfig.Process("monitor", &config)
23 log.Fatalf("Error reading config: %s", err)
27 log.SetLevel(log.DebugLevel)
30 checks := []CheckProvider{
31 NewVault(config.VaultURL),
32 NewEtcd(config.EtcdURL),
36 for _, check := range checks {
37 success, msg := check.Test()
38 log.Infof("%s check [success: %t, msg: %s]", check.Name(), success, msg)
40 msgs = append(msgs, msg)
45 log.Infof("All checks successful.")
49 slack := DefaultSlackClient(config.SlackWebHookURL, config.SlackChannel)
50 err = slack.Send(strings.Join(msgs, "\n"))
52 log.Fatalf("Error sending to Slack: %s", err)