Change signature - return non-reference from ReadPrometheusStyleResult
Related to https://github.com/grafana/grafana/issues/52430
This commit is contained in:
@@ -163,14 +163,6 @@ func (api *LokiAPI) DataQuery(ctx context.Context, query lokiQuery) (data.Frames
|
||||
iter := jsoniter.Parse(jsoniter.ConfigDefault, resp.Body, 1024)
|
||||
res := converter.ReadPrometheusStyleResult(iter, converter.Options{MatrixWideSeries: false, VectorWideSeries: false})
|
||||
|
||||
if res == nil {
|
||||
// it's hard to say if this is an error-case or not.
|
||||
// we know the http-response was a success-response
|
||||
// (otherwise we wouldn't be here in the code),
|
||||
// so we will go with a success, with no data.
|
||||
return data.Frames{}, nil
|
||||
}
|
||||
|
||||
if res.Error != nil {
|
||||
return nil, res.Error
|
||||
}
|
||||
|
||||
@@ -27,9 +27,6 @@ func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *htt
|
||||
MatrixWideSeries: s.enableWideSeries,
|
||||
VectorWideSeries: s.enableWideSeries,
|
||||
})
|
||||
if r == nil {
|
||||
return nil, fmt.Errorf("received empty response from prometheus")
|
||||
}
|
||||
|
||||
// The ExecutedQueryString can be viewed in QueryInspector in UI
|
||||
for _, frame := range r.Frames {
|
||||
@@ -41,7 +38,7 @@ func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *htt
|
||||
}
|
||||
|
||||
r = processExemplars(q, r)
|
||||
return r, nil
|
||||
return &r, nil
|
||||
}
|
||||
|
||||
func addMetadataToMultiFrame(q *models.Query, frame *data.Frame) {
|
||||
@@ -135,7 +132,7 @@ func getName(q *models.Query, field *data.Field) string {
|
||||
return legend
|
||||
}
|
||||
|
||||
func processExemplars(q *models.Query, dr *backend.DataResponse) *backend.DataResponse {
|
||||
func processExemplars(q *models.Query, dr backend.DataResponse) backend.DataResponse {
|
||||
sampler := newExemplarSampler()
|
||||
|
||||
// we are moving from a multi-frame response returned
|
||||
@@ -203,7 +200,7 @@ func processExemplars(q *models.Query, dr *backend.DataResponse) *backend.DataRe
|
||||
|
||||
frames = append(frames, exemplarFrame)
|
||||
|
||||
return &backend.DataResponse{
|
||||
return backend.DataResponse{
|
||||
Frames: frames,
|
||||
Error: dr.Error,
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ type Options struct {
|
||||
}
|
||||
|
||||
// ReadPrometheusStyleResult will read results from a prometheus or loki server and return data frames
|
||||
func ReadPrometheusStyleResult(iter *jsoniter.Iterator, opt Options) *backend.DataResponse {
|
||||
func ReadPrometheusStyleResult(iter *jsoniter.Iterator, opt Options) backend.DataResponse {
|
||||
var rsp *backend.DataResponse
|
||||
status := "unknown"
|
||||
errorType := ""
|
||||
@@ -55,7 +55,7 @@ func ReadPrometheusStyleResult(iter *jsoniter.Iterator, opt Options) *backend.Da
|
||||
}
|
||||
|
||||
if status == "error" {
|
||||
return &backend.DataResponse{
|
||||
return backend.DataResponse{
|
||||
Error: fmt.Errorf("%s: %s", errorType, err),
|
||||
}
|
||||
}
|
||||
@@ -69,7 +69,7 @@ func ReadPrometheusStyleResult(iter *jsoniter.Iterator, opt Options) *backend.Da
|
||||
}
|
||||
}
|
||||
|
||||
return rsp
|
||||
return *rsp
|
||||
}
|
||||
|
||||
func readWarnings(iter *jsoniter.Iterator) []data.Notice {
|
||||
|
||||
@@ -68,7 +68,7 @@ func runScenario(name string, opts Options) func(t *testing.T) {
|
||||
}
|
||||
|
||||
fname := name + "-frame"
|
||||
experimental.CheckGoldenJSONResponse(t, "testdata", fname, rsp, update)
|
||||
experimental.CheckGoldenJSONResponse(t, "testdata", fname, &rsp, update)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user