diff --git a/cachet/config.go b/cachet/config.go index 13b73e9..9e48ff0 100644 --- a/cachet/config.go +++ b/cachet/config.go @@ -4,13 +4,14 @@ import ( "encoding/json" "flag" "fmt" - "github.com/castawaylabs/cachet-monitor/system" "io" "io/ioutil" "log" "net/http" "net/url" "os" + + "github.com/castawaylabs/cachet-monitor/system" ) // Static config @@ -23,6 +24,7 @@ var Logger *log.Logger type CachetConfig struct { APIUrl string `json:"api_url"` APIToken string `json:"api_token"` + Interval int64 `json:"interval"` Monitors []*Monitor `json:"monitors"` SystemName string `json:"system_name"` LogPath string `json:"log_path"` diff --git a/example.config.json b/example.config.json index f77e43b..81b2c5a 100644 --- a/example.config.json +++ b/example.config.json @@ -1,6 +1,7 @@ { "api_url": "https://demo.cachethq.io/api/v1", "api_token": "9yMHsdioQosnyVK4iCVR", + "interval": 5, "monitors": [ { "name": "nodegear frontend", diff --git a/main.go b/main.go index e5fde68..d0c672c 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,7 @@ func main() { config := cachet.Config log := cachet.Logger - log.Printf("System: %s, API: %s\n", config.SystemName, config.APIUrl) + log.Printf("System: %s, Interval: %d second(s), API: %s\n", config.SystemName, config.Interval, config.APIUrl) log.Printf("Starting %d monitors:\n", len(config.Monitors)) for _, mon := range config.Monitors { log.Printf(" %s: GET %s & Expect HTTP %d\n", mon.Name, mon.URL, mon.ExpectedStatusCode) @@ -20,7 +20,7 @@ func main() { log.Println() - ticker := time.NewTicker(time.Second) + ticker := time.NewTicker(time.Duration(config.Interval)*time.Second) for range ticker.C { for _, mon := range config.Monitors { go mon.Run() diff --git a/readme.md b/readme.md index 80956ab..28a9581 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ Features -------- - [x] Creates & Resolves Incidents -- [x] Posts monitor lag every second +- [x] Posts monitor lag every second * config.Interval - [x] Updates Component to Partial Outage - [x] Updates Component to Major Outage if in Partial Outage - [x] Can be run on multiple servers and geo regions @@ -34,6 +34,7 @@ Configuration { "api_url": "https://demo.cachethq.io/api/v1", "api_token": "9yMHsdioQosnyVK4iCVR", + "interval": 60, "monitors": [ { "name": "nodegear frontend",