loki: better handle an empty-response (#52397)

pull/51797/head^2
Gábor Farkas 3 years ago committed by GitHub
parent ba543343c4
commit 46eec85b1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      pkg/tsdb/loki/api.go
  2. 2
      pkg/tsdb/loki/framing_test.go
  3. 5
      pkg/tsdb/loki/testdata/empty.golden.jsonc
  4. 1
      pkg/tsdb/loki/testdata/empty.json

@ -163,6 +163,14 @@ 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
}

@ -48,6 +48,8 @@ func TestSuccessResponse(t *testing.T) {
{name: "parse a simple streams response", filepath: "streams_simple", query: streamsQuery},
{name: "parse a streams response with parse errors", filepath: "streams_parse_errors", query: streamsQuery},
{name: "parse an empty response", filepath: "empty", query: matrixQuery},
}
for _, test := range tt {

@ -0,0 +1,5 @@
// 🌟 This was machine generated. Do not edit. 🌟
// 🌟 This was machine generated. Do not edit. 🌟
{
"frames": []
}
Loading…
Cancel
Save