mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Rendering: Check timeout error when the request failed (#57654)
* Check timeout error when the request failed * Update error and check * Uses errors.As to fix the lint
This commit is contained in:
parent
2a36301817
commit
bff9671b81
@ -137,8 +137,8 @@ func (rs *RenderingService) renderCSVViaHTTP(ctx context.Context, renderKey stri
|
||||
return &RenderCSVResult{FilePath: filePath, FileName: downloadFileName}, nil
|
||||
}
|
||||
|
||||
func (rs *RenderingService) doRequest(ctx context.Context, url *url.URL, headers map[string][]string) (*http.Response, error) {
|
||||
req, err := http.NewRequestWithContext(ctx, "GET", url.String(), nil)
|
||||
func (rs *RenderingService) doRequest(ctx context.Context, u *url.URL, headers map[string][]string) (*http.Response, error) {
|
||||
req, err := http.NewRequestWithContext(ctx, "GET", u.String(), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -149,12 +149,18 @@ func (rs *RenderingService) doRequest(ctx context.Context, url *url.URL, headers
|
||||
req.Header[k] = v
|
||||
}
|
||||
|
||||
rs.log.Debug("calling remote rendering service", "url", url)
|
||||
rs.log.Debug("calling remote rendering service", "url", u)
|
||||
|
||||
// make request to renderer server
|
||||
resp, err := netClient.Do(req)
|
||||
if err != nil {
|
||||
rs.log.Error("Failed to send request to remote rendering service", "error", err)
|
||||
var urlErr *url.Error
|
||||
if errors.As(err, &urlErr) {
|
||||
if urlErr.Timeout() {
|
||||
return nil, ErrServerTimeout
|
||||
}
|
||||
}
|
||||
return nil, fmt.Errorf("failed to send request to remote rendering service: %w", err)
|
||||
}
|
||||
|
||||
|
@ -7,11 +7,13 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
"github.com/grafana/grafana/pkg/util/errutil"
|
||||
)
|
||||
|
||||
var ErrTimeout = errors.New("timeout error - you can set timeout in seconds with &timeout url parameter")
|
||||
var ErrConcurrentLimitReached = errors.New("rendering concurrent limit reached")
|
||||
var ErrRenderUnavailable = errors.New("rendering plugin not available")
|
||||
var ErrServerTimeout = errutil.NewBase(errutil.StatusUnknown, "rendering.serverTimeout", errutil.WithPublicMessage("error trying to connect to image-renderer service"))
|
||||
|
||||
type RenderType string
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user