mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Prometheus: Add error source, don't swallow errors (#96511)
add error source, don't swallow errors
This commit is contained in:
parent
df628951f5
commit
287ce2ef40
@ -234,10 +234,7 @@ func (s *QueryData) fetch(traceCtx context.Context, client *client.Client, q *mo
|
||||
func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models.Query, enablePrometheusDataplaneFlag bool) backend.DataResponse {
|
||||
res, err := c.QueryRange(ctx, q)
|
||||
if err != nil {
|
||||
return backend.DataResponse{
|
||||
Error: err,
|
||||
Status: backend.StatusBadGateway,
|
||||
}
|
||||
return addErrorSourceToDataResponse(err)
|
||||
}
|
||||
|
||||
defer func() {
|
||||
@ -253,16 +250,14 @@ func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models.
|
||||
func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *models.Query, enablePrometheusDataplaneFlag bool) backend.DataResponse {
|
||||
res, err := c.QueryInstant(ctx, q)
|
||||
if err != nil {
|
||||
return backend.DataResponse{
|
||||
Error: err,
|
||||
Status: backend.StatusBadGateway,
|
||||
}
|
||||
return addErrorSourceToDataResponse(err)
|
||||
}
|
||||
|
||||
// This is only for health check fall back scenario
|
||||
if res.StatusCode != 200 && q.RefId == "__healthcheck__" {
|
||||
return backend.DataResponse{
|
||||
Error: errors.New(res.Status),
|
||||
ErrorSource: backend.ErrorSourceFromHTTPStatus(res.StatusCode),
|
||||
}
|
||||
}
|
||||
|
||||
@ -279,9 +274,14 @@ func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *model
|
||||
func (s *QueryData) exemplarQuery(ctx context.Context, c *client.Client, q *models.Query, enablePrometheusDataplaneFlag bool) backend.DataResponse {
|
||||
res, err := c.QueryExemplars(ctx, q)
|
||||
if err != nil {
|
||||
return backend.DataResponse{
|
||||
response := backend.DataResponse{
|
||||
Error: err,
|
||||
}
|
||||
|
||||
if backend.IsDownstreamHTTPError(err) {
|
||||
response.ErrorSource = backend.ErrorSourceDownstream
|
||||
}
|
||||
return response
|
||||
}
|
||||
|
||||
defer func() {
|
||||
@ -304,3 +304,15 @@ func addDataResponse(res *backend.DataResponse, dr *backend.DataResponse) {
|
||||
}
|
||||
dr.Frames = append(dr.Frames, res.Frames...)
|
||||
}
|
||||
|
||||
func addErrorSourceToDataResponse(err error) backend.DataResponse {
|
||||
response := backend.DataResponse{
|
||||
Error: err,
|
||||
Status: backend.StatusBadGateway,
|
||||
}
|
||||
|
||||
if backend.IsDownstreamHTTPError(err) {
|
||||
response.ErrorSource = backend.ErrorSourceDownstream
|
||||
}
|
||||
return response
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user