Prometheus: Refactor error handling logic (#62254)

* Refactor error handling logic
- Enable query inspector to show error information
- Update naming

* Change fetch method return signature

* update the snapshot

* Revert "update the snapshot"

This reverts commit 28b26ce426.
This commit is contained in:
ismail simsek
2023-01-31 19:26:45 +01:00
committed by GitHub
parent 4186871390
commit 49258b135a
2 changed files with 39 additions and 31 deletions
+10 -5
View File
@@ -17,7 +17,7 @@ import (
"github.com/grafana/grafana/pkg/util/converter"
)
func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *http.Response) (backend.DataResponse, error) {
func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *http.Response) backend.DataResponse {
defer func() {
if err := res.Body.Close(); err != nil {
s.log.FromContext(ctx).Error("Failed to close response body", "err", err)
@@ -30,6 +30,12 @@ func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *htt
VectorWideSeries: s.enableWideSeries,
})
// Add frame to attach metadata
if len(r.Frames) == 0 && !q.ExemplarQuery {
r.Frames = append(r.Frames, data.NewFrame(""))
}
// The ExecutedQueryString can be viewed in QueryInspector in UI
for _, frame := range r.Frames {
if s.enableWideSeries {
addMetadataToWideFrame(q, frame)
@@ -38,12 +44,11 @@ func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *htt
}
}
if r.Error != nil {
return r, r.Error
if r.Error == nil {
r = s.processExemplars(q, r)
}
r = s.processExemplars(q, r)
return r, nil
return r
}
func (s *QueryData) processExemplars(q *models.Query, dr backend.DataResponse) backend.DataResponse {