diff --git a/pkg/services/alerting/eval_context.go b/pkg/services/alerting/eval_context.go index d9aaec28b0a..cf698d8f7a4 100644 --- a/pkg/services/alerting/eval_context.go +++ b/pkg/services/alerting/eval_context.go @@ -26,7 +26,6 @@ type EvalContext struct { ImagePublicUrl string ImageOnDiskPath string NoDataFound bool - RetryCount int Ctx context.Context } @@ -107,6 +106,5 @@ func NewEvalContext(alertCtx context.Context, rule *Rule) *EvalContext { Logs: make([]*ResultLogEntry, 0), EvalMatches: make([]*EvalMatch, 0), log: log.New("alerting.evalContext"), - RetryCount: 0, } } diff --git a/pkg/services/alerting/notifiers/base_test.go b/pkg/services/alerting/notifiers/base_test.go deleted file mode 100644 index 8cfc1ec3ae9..00000000000 --- a/pkg/services/alerting/notifiers/base_test.go +++ /dev/null @@ -1,30 +0,0 @@ -package notifiers - -// import . "github.com/smartystreets/goconvey/convey" -// -// func TestBaseNotifier( t *testing.T ) { -// Convey("Parsing base notification state", t, func() { -// -// Convey("matches", func() { -// json := ` -// { -// "states": "critical" -// }` -// -// settingsJSON, _ := simplejson.NewJson([]byte(json)) -// not := NewNotifierBase("ops", "email", settingsJSON) -// So(not.MatchSeverity(m.AlertSeverityCritical), ShouldBeTrue) -// }) -// -// Convey("does not match", func() { -// json := ` -// { -// "severityFilter": "critical" -// }` -// -// settingsJSON, _ := simplejson.NewJson([]byte(json)) -// not := NewNotifierBase("ops", "email", settingsJSON) -// So(not.MatchSeverity(m.AlertSeverityWarning), ShouldBeFalse) -// }) -// }) -// } diff --git a/pkg/services/alerting/notifiers/email.go b/pkg/services/alerting/notifiers/email.go index 80fb674c67f..05a1665470e 100644 --- a/pkg/services/alerting/notifiers/email.go +++ b/pkg/services/alerting/notifiers/email.go @@ -1,6 +1,8 @@ package notifiers import ( + "encoding/base64" + "io/ioutil" "strings" "github.com/grafana/grafana/pkg/bus" @@ -45,6 +47,14 @@ func (this *EmailNotifier) Notify(evalContext *alerting.EvalContext) error { return err } + imageLink := evalContext.ImagePublicUrl + if imageLink == "" { + imageBytes, err := ioutil.ReadFile(evalContext.ImageOnDiskPath) + if err == nil { + imageLink = "data:image/jpg;base64," + base64.StdEncoding.EncodeToString(imageBytes) + } + } + cmd := &m.SendEmailCommandSync{ SendEmailCommand: m.SendEmailCommand{ Data: map[string]interface{}{