diff --git a/config.go b/config.go index 5d0e27ef134d5cd5d1ed50331eaf533db794560b..9849e693e338b0c5a805f7e6f11428fff558cbfb 100644 --- a/config.go +++ b/config.go @@ -84,5 +84,6 @@ func getTemplateData(monitor *AbstractMonitor) map[string]interface{} { "SystemName": monitor.config.SystemName, "API": monitor.config.API, "Monitor": monitor, + "now": time.Now().Format(monitor.config.DateFormat), } } diff --git a/http.go b/http.go index eaa0ad3fd37613be5c6e2ba745fe21c8794531e4..53067d6fef087a13463177605dc0dc078aa81c49 100644 --- a/http.go +++ b/http.go @@ -15,14 +15,14 @@ import ( // Investigating template var defaultHTTPInvestigatingTpl = MessageTemplate{ Subject: `{{ .Monitor.Name }} - {{ .SystemName }}`, - Message: `{{ .Name }} check **failed** - {{ .now }} + Message: `{{ .Monitor.Name }} check **failed** - {{ .now }} -{{ .lastFailReason }}`, +{{ .FailReason }}`, } // Fixed template var defaultHTTPFixedTpl = MessageTemplate{ - Subject: `{{ .Name }} - {{ .config.SystemName }}`, + Subject: `{{ .Monitor.Name }} - {{ .SystemName }}`, Message: `**Resolved** - {{ .now }} - - - diff --git a/monitor.go b/monitor.go index 41d3352cd53f92505b262914b69d9e0827d269b3..93493de5340745fa44aa8452b98fa65c464d62df 100644 --- a/monitor.go +++ b/monitor.go @@ -192,7 +192,10 @@ func (mon *AbstractMonitor) AnalyseData() { if triggered && mon.incident == nil { // create incident - subject, message := mon.Template.Investigating.Exec(getTemplateData(mon)) + tplData := getTemplateData(mon) + tplData["FailReason"] = mon.lastFailReason + + subject, message := mon.Template.Investigating.Exec(tplData) mon.incident = &Incident{ Name: subject, ComponentID: mon.ComponentID, diff --git a/template.go b/template.go index 48f7666777c10e99bd049fb4b3168dba05c0c449..31a09b0c5799210393c3b33db7a2e2dd38001376 100644 --- a/template.go +++ b/template.go @@ -3,8 +3,6 @@ package cachet import ( "bytes" "text/template" - - "github.com/Sirupsen/logrus" ) type MessageTemplate struct { @@ -39,13 +37,14 @@ func (t *MessageTemplate) Compile() error { } func (t *MessageTemplate) Exec(data interface{}) (string, string) { - buf := new(bytes.Buffer) + return t.exec(t.subjectTpl, data), t.exec(t.messageTpl, data) +} - logrus.Warnf("%#v", t.subjectTpl) - t.subjectTpl.Execute(buf, data) - subject := buf.String() +func (t *MessageTemplate) exec(tpl *template.Template, data interface{}) string { + buf := new(bytes.Buffer) - return subject, "" + tpl.Execute(buf, data) + return buf.String() } func compileTemplate(text string) (*template.Template, error) {