Files
2024-06-05 21:36:13 +02:00

35 lines
971 B
Go

package querydata
import (
"fmt"
"io"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/data"
jsoniter "github.com/json-iterator/go"
"github.com/grafana/grafana/pkg/tsdb/influxdb/influxql/converter"
"github.com/grafana/grafana/pkg/tsdb/influxdb/influxql/util"
"github.com/grafana/grafana/pkg/tsdb/influxdb/models"
)
func ResponseParse(buf io.ReadCloser, statusCode int, query *models.Query) *backend.DataResponse {
defer func() {
if err := buf.Close(); err != nil {
fmt.Println("Failed to close response body", "err", err)
}
}()
iter := jsoniter.Parse(jsoniter.ConfigDefault, buf, 1024)
r := converter.ReadInfluxQLStyleResult(iter, query)
// The ExecutedQueryString can be viewed in QueryInspector in UI
for i, frame := range r.Frames {
if i == 0 {
frame.Meta = &data.FrameMeta{ExecutedQueryString: query.RawQuery, PreferredVisualization: util.GetVisType(query.ResultFormat)}
}
}
return r
}