From f918ea38cd3f63994dcf937d438a62cd5ca2e3ac Mon Sep 17 00:00:00 2001 From: Mathieu Doyon Date: Wed, 8 Apr 2015 14:28:36 -0400 Subject: [PATCH] Add time interval --- cachet/config.go | 3 ++- example.config.json | 1 + main.go | 4 ++-- readme.md | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cachet/config.go b/cachet/config.go index 35af034..97fee11 100644 --- a/cachet/config.go +++ b/cachet/config.go @@ -23,6 +23,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"` @@ -107,7 +108,7 @@ func init() { } } - flags := log.Llongfile|log.Ldate|log.Ltime + flags := log.Llongfile | log.Ldate | log.Ltime if len(os.Getenv("DEVELOPMENT")) > 0 { flags = 0 } diff --git a/example.config.json b/example.config.json index 737a2b1..f8130e7 100644 --- a/example.config.json +++ b/example.config.json @@ -1,6 +1,7 @@ { "api_url": "https://demo.cachethq.io/api", "api_token": "9yMHsdioQosnyVK4iCVR", + "interval": 60, "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 ba98abf..fdba4db 100644 --- a/readme.md +++ b/readme.md @@ -7,7 +7,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 @@ -32,6 +32,7 @@ Configuration { "api_url": "https://demo.cachethq.io/api", "api_token": "9yMHsdioQosnyVK4iCVR", + "interval": 60, "monitors": [ { "name": "nodegear frontend",