Rendering: Add logs (#97885)
* Rendering: add logs * fix tests and lint issues
This commit is contained in:
@@ -271,6 +271,16 @@ func (rs *RenderingService) Render(ctx context.Context, renderType RenderType, o
|
||||
}
|
||||
|
||||
func (rs *RenderingService) render(ctx context.Context, renderType RenderType, opts Opts, renderKeyProvider renderKeyProvider) (*RenderResult, error) {
|
||||
if !rs.IsAvailable(ctx) {
|
||||
rs.log.Warn("Could not render image, no image renderer found/installed. " +
|
||||
"For image rendering support please install the grafana-image-renderer plugin. " +
|
||||
"Read more at https://grafana.com/docs/grafana/latest/administration/image_rendering/")
|
||||
if opts.ErrorRenderUnavailable {
|
||||
return nil, ErrRenderUnavailable
|
||||
}
|
||||
return rs.renderUnavailableImage(), nil
|
||||
}
|
||||
|
||||
if int(atomic.LoadInt32(&rs.inProgressCount)) > opts.ConcurrentLimit {
|
||||
rs.log.Warn("Could not render image, hit the currency limit", "concurrencyLimit", opts.ConcurrentLimit, "path", opts.Path)
|
||||
if opts.ErrorConcurrentLimitReached {
|
||||
@@ -287,15 +297,10 @@ func (rs *RenderingService) render(ctx context.Context, renderType RenderType, o
|
||||
}, nil
|
||||
}
|
||||
|
||||
if !rs.IsAvailable(ctx) {
|
||||
rs.log.Warn("Could not render image, no image renderer found/installed. " +
|
||||
"For image rendering support please install the grafana-image-renderer plugin. " +
|
||||
"Read more at https://grafana.com/docs/grafana/latest/administration/image_rendering/")
|
||||
if opts.ErrorRenderUnavailable {
|
||||
return nil, ErrRenderUnavailable
|
||||
}
|
||||
return rs.renderUnavailableImage(), nil
|
||||
}
|
||||
defer func() {
|
||||
metrics.MRenderingQueue.Set(float64(atomic.AddInt32(&rs.inProgressCount, -1)))
|
||||
}()
|
||||
metrics.MRenderingQueue.Set(float64(atomic.AddInt32(&rs.inProgressCount, 1)))
|
||||
|
||||
if renderType == RenderPDF {
|
||||
if !rs.features.IsEnabled(ctx, featuremgmt.FlagNewPDFRendering) {
|
||||
@@ -318,12 +323,14 @@ func (rs *RenderingService) render(ctx context.Context, renderType RenderType, o
|
||||
|
||||
defer renderKeyProvider.afterRequest(ctx, opts.AuthOpts, renderKey)
|
||||
|
||||
defer func() {
|
||||
metrics.MRenderingQueue.Set(float64(atomic.AddInt32(&rs.inProgressCount, -1)))
|
||||
}()
|
||||
res, err := rs.renderAction(ctx, renderType, renderKey, opts)
|
||||
if err != nil {
|
||||
rs.log.Error("Failed to render image", "path", opts.Path, "error", err)
|
||||
return nil, err
|
||||
}
|
||||
rs.log.Debug("Successfully rendered image", "path", opts.Path)
|
||||
|
||||
metrics.MRenderingQueue.Set(float64(atomic.AddInt32(&rs.inProgressCount, 1)))
|
||||
return rs.renderAction(ctx, renderType, renderKey, opts)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (rs *RenderingService) RenderCSV(ctx context.Context, opts CSVOpts, session Session) (*RenderCSVResult, error) {
|
||||
|
||||
@@ -121,7 +121,8 @@ func TestRenderLimitImage(t *testing.T) {
|
||||
|
||||
rs := RenderingService{
|
||||
Cfg: &setting.Cfg{
|
||||
HomePath: path,
|
||||
HomePath: path,
|
||||
RendererUrl: "http://localhost:8081/render",
|
||||
},
|
||||
inProgressCount: 2,
|
||||
log: log.New("test"),
|
||||
@@ -161,7 +162,9 @@ func TestRenderLimitImage(t *testing.T) {
|
||||
|
||||
func TestRenderLimitImageError(t *testing.T) {
|
||||
rs := RenderingService{
|
||||
Cfg: &setting.Cfg{},
|
||||
Cfg: &setting.Cfg{
|
||||
RendererUrl: "http://localhost:8081/render",
|
||||
},
|
||||
inProgressCount: 2,
|
||||
log: log.New("test"),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user