Change signature - return non-reference from ReadPrometheusStyleResult

Related to https://github.com/grafana/grafana/issues/52430
This commit is contained in:
KonH
2022-10-18 20:25:04 +02:00
parent 984ec00aac
commit 4337152712
4 changed files with 7 additions and 18 deletions
-8
View File
@@ -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
}
+3 -6
View File
@@ -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,
}
+3 -3
View File
@@ -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 {
+1 -1
View File
@@ -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)
}
}