mirror of
				https://github.com/grafana/grafana.git
				synced 2025-02-25 18:55:37 -06:00 
			
		
		
		
	feat(alerting): fixes broken image renderer
This commit is contained in:
		@@ -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(),
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user