From effd2098ee86d0af116908bce42a4097cf395840 Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 26 Sep 2016 10:51:45 +0200 Subject: [PATCH] feat(alerting): fixes broken image renderer --- pkg/services/alerting/eval_context.go | 13 ++----------- pkg/services/alerting/notifier.go | 15 ++++++++------- pkg/services/alerting/notifiers/webhook.go | 5 ++--- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/pkg/services/alerting/eval_context.go b/pkg/services/alerting/eval_context.go index 13067c25f08..a76ed8d519f 100644 --- a/pkg/services/alerting/eval_context.go +++ b/pkg/services/alerting/eval_context.go @@ -71,7 +71,7 @@ func (c *EvalContext) GetNotificationTitle() string { return "[" + c.GetStateModel().Text + "] " + c.Rule.Name } -func (c *EvalContext) getDashboardSlug() (string, error) { +func (c *EvalContext) GetDashboardSlug() (string, error) { if c.dashboardSlug != "" { return c.dashboardSlug, nil } @@ -86,7 +86,7 @@ func (c *EvalContext) getDashboardSlug() (string, error) { } func (c *EvalContext) GetRuleUrl() (string, error) { - if slug, err := c.getDashboardSlug(); err != nil { + if slug, err := c.GetDashboardSlug(); err != nil { return "", err } else { ruleUrl := fmt.Sprintf("%sdashboard/db/%s?fullscreen&edit&tab=alert&panelId=%d", setting.AppUrl, slug, c.Rule.PanelId) @@ -94,15 +94,6 @@ func (c *EvalContext) GetRuleUrl() (string, error) { } } -func (c *EvalContext) GetImageUrl() (string, error) { - if slug, err := c.getDashboardSlug(); err != nil { - return "", err - } else { - ruleUrl := fmt.Sprintf("%sdashboard-solo/db/%s?&panelId=%d", setting.AppUrl, slug, c.Rule.PanelId) - return ruleUrl, nil - } -} - func NewEvalContext(rule *Rule) *EvalContext { return &EvalContext{ StartTime: time.Now(), diff --git a/pkg/services/alerting/notifier.go b/pkg/services/alerting/notifier.go index 06828356eaf..68366d1abf3 100644 --- a/pkg/services/alerting/notifier.go +++ b/pkg/services/alerting/notifier.go @@ -2,6 +2,7 @@ package alerting import ( "errors" + "fmt" "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/components/imguploader" @@ -60,22 +61,22 @@ func (n *RootNotifier) sendNotifications(notifiers []Notifier, context *EvalCont } } -func (n *RootNotifier) uploadImage(context *EvalContext) error { +func (n *RootNotifier) uploadImage(context *EvalContext) (err error) { uploader, _ := imguploader.NewImageUploader() - imageUrl, err := context.GetImageUrl() - if err != nil { - return err - } - renderOpts := &renderer.RenderOpts{ - Url: imageUrl, Width: "800", Height: "400", Timeout: "30", OrgId: context.Rule.OrgId, } + if slug, err := context.GetDashboardSlug(); err != nil { + return err + } else { + renderOpts.Url = fmt.Sprintf("dashboard-solo/db/%s?&panelId=%d", slug, context.Rule.PanelId) + } + if imagePath, err := renderer.RenderToPng(renderOpts); err != nil { return err } else { diff --git a/pkg/services/alerting/notifiers/webhook.go b/pkg/services/alerting/notifiers/webhook.go index 7e28b35cd0a..320f273eddc 100644 --- a/pkg/services/alerting/notifiers/webhook.go +++ b/pkg/services/alerting/notifiers/webhook.go @@ -52,9 +52,8 @@ func (this *WebhookNotifier) Notify(context *alerting.EvalContext) { bodyJSON.Set("rule_url", ruleUrl) } - imageUrl, err := context.GetImageUrl() - if err == nil { - bodyJSON.Set("image_url", imageUrl) + if context.ImagePublicUrl != "" { + bodyJSON.Set("image_url", context.ImagePublicUrl) } body, _ := bodyJSON.MarshalJSON()