Rendering: add CSV support (#33729)

* Rendering: add CSV rendering support

* Rendering: save csv files into a separate folder

* add missing field

* Renderer: get filename from renderer plugin

* apply PR suggestions

* Rendering: remove old PhantomJS error

* Rendering: separate RenderCSV and Render functions

* fix alerting test

* Rendering: fix handling error in HTTP mode

* apply PR feedback

* Update pkg/services/rendering/http_mode.go

Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com>

* apply PR feedback

* Update rendering metrics with type label

* Rendering: return error if not able to parse header

* Rendering: update grpc generated file

* Rendering: use context.WithTimeout to render CSV too

Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com>
This commit is contained in:
Agnès Toulet
2021-05-12 17:16:57 +02:00
committed by GitHub
parent 81ad9769fa
commit ec71919e7b
12 changed files with 579 additions and 112 deletions

View File

@ -4,9 +4,7 @@ import (
"errors"
"fmt"
"net/http"
"runtime"
"strconv"
"strings"
"time"
"github.com/grafana/grafana/pkg/models"
@ -57,8 +55,8 @@ func (hs *HTTPServer) RenderToPng(c *models.ReqContext) {
Width: width,
Height: height,
Timeout: time.Duration(timeout) * time.Second,
OrgId: c.OrgId,
UserId: c.UserId,
OrgID: c.OrgId,
UserID: c.UserId,
OrgRole: c.OrgRole,
Path: c.Params("*") + queryParams,
Timezone: queryReader.Get("tz", ""),
@ -72,14 +70,6 @@ func (hs *HTTPServer) RenderToPng(c *models.ReqContext) {
c.Handle(hs.Cfg, 500, err.Error(), err)
return
}
if errors.Is(err, rendering.ErrPhantomJSNotInstalled) {
if strings.HasPrefix(runtime.GOARCH, "arm") {
c.Handle(hs.Cfg, 500, "Rendering failed - PhantomJS isn't included in arm build per default", err)
} else {
c.Handle(hs.Cfg, 500, "Rendering failed - PhantomJS isn't installed correctly", err)
}
return
}
c.Handle(hs.Cfg, 500, "Rendering failed.", err)
return