Commit f6cbb261 by Kyle Brandt Committed by GitHub

BackendPlugin: Change QueryData response format (#23234)

* BackendPlugin: (wip) change response format
goes with https://github.com/grafana/grafana-plugin-sdk-go/pull/109

* fix error mapping in wrapper

* latest of my sdk branch

* latest of my sdk branch

* TransformWrapper fixes

* latest of sdk branch (removes extra meta)

* add metadata in wrappers

* also set error string

* sdk: v0.35.0
parent afd8ffde
...@@ -30,7 +30,7 @@ require ( ...@@ -30,7 +30,7 @@ require (
github.com/gorilla/websocket v1.4.1 github.com/gorilla/websocket v1.4.1
github.com/gosimple/slug v1.4.2 github.com/gosimple/slug v1.4.2
github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4 github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4
github.com/grafana/grafana-plugin-sdk-go v0.33.0 github.com/grafana/grafana-plugin-sdk-go v0.35.0
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd
github.com/hashicorp/go-plugin v1.0.1 github.com/hashicorp/go-plugin v1.0.1
github.com/hashicorp/go-version v1.1.0 github.com/hashicorp/go-version v1.1.0
......
...@@ -128,8 +128,8 @@ github.com/gosimple/slug v1.4.2 h1:jDmprx3q/9Lfk4FkGZtvzDQ9Cj9eAmsjzeQGp24PeiQ= ...@@ -128,8 +128,8 @@ github.com/gosimple/slug v1.4.2 h1:jDmprx3q/9Lfk4FkGZtvzDQ9Cj9eAmsjzeQGp24PeiQ=
github.com/gosimple/slug v1.4.2/go.mod h1:ER78kgg1Mv0NQGlXiDe57DpCyfbNywXXZ9mIorhxAf0= github.com/gosimple/slug v1.4.2/go.mod h1:ER78kgg1Mv0NQGlXiDe57DpCyfbNywXXZ9mIorhxAf0=
github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4 h1:SPdxCL9BChFTlyi0Khv64vdCW4TMna8+sxL7+Chx+Ag= github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4 h1:SPdxCL9BChFTlyi0Khv64vdCW4TMna8+sxL7+Chx+Ag=
github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4/go.mod h1:nc0XxBzjeGcrMltCDw269LoWF9S8ibhgxolCdA1R8To= github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4/go.mod h1:nc0XxBzjeGcrMltCDw269LoWF9S8ibhgxolCdA1R8To=
github.com/grafana/grafana-plugin-sdk-go v0.33.0 h1:+eFcOV/KioHTTRNimENZeajlkw31B+m92RNRShooPEQ= github.com/grafana/grafana-plugin-sdk-go v0.35.0 h1:IxNaNq8hN3ShQ804FURFOd1ehbKOmFROztY+8vohhW8=
github.com/grafana/grafana-plugin-sdk-go v0.33.0/go.mod h1:4rVPIvfv7SzFC0AA/8T5tmDRxIsrvDJOF9p4SrQGS1M= github.com/grafana/grafana-plugin-sdk-go v0.35.0/go.mod h1:zX/Zz/HYDAkL1NxffOZeixqPqIVVoCTWI2AuFy4J+V4=
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd h1:rNuUHR+CvK1IS89MMtcF0EpcVMZtjKfPRp4MEmt/aTs= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd h1:rNuUHR+CvK1IS89MMtcF0EpcVMZtjKfPRp4MEmt/aTs=
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
github.com/hashicorp/go-plugin v1.0.1 h1:4OtAfUGbnKC6yS48p0CtMX2oFYtzFZVv6rok3cRWgnE= github.com/hashicorp/go-plugin v1.0.1 h1:4OtAfUGbnKC6yS48p0CtMX2oFYtzFZVv6rok3cRWgnE=
...@@ -180,6 +180,7 @@ github.com/linkedin/goavro/v2 v2.9.7 h1:Vd++Rb/RKcmNJjM0HP/JJFMEWa21eUBVKPYlKehO ...@@ -180,6 +180,7 @@ github.com/linkedin/goavro/v2 v2.9.7 h1:Vd++Rb/RKcmNJjM0HP/JJFMEWa21eUBVKPYlKehO
github.com/linkedin/goavro/v2 v2.9.7/go.mod h1:UgQUb2N/pmueQYH9bfqFioWxzYCZXSfF8Jw03O5sjqA= github.com/linkedin/goavro/v2 v2.9.7/go.mod h1:UgQUb2N/pmueQYH9bfqFioWxzYCZXSfF8Jw03O5sjqA=
github.com/lunny/log v0.0.0-20160921050905-7887c61bf0de/go.mod h1:3q8WtuPQsoRbatJuy3nvq/hRSvuBJrHHr+ybPPiNvHQ= github.com/lunny/log v0.0.0-20160921050905-7887c61bf0de/go.mod h1:3q8WtuPQsoRbatJuy3nvq/hRSvuBJrHHr+ybPPiNvHQ=
github.com/lunny/nodb v0.0.0-20160621015157-fc1ef06ad4af/go.mod h1:Cqz6pqow14VObJ7peltM+2n3PWOz7yTrfUuGbVFkzN0= github.com/lunny/nodb v0.0.0-20160621015157-fc1ef06ad4af/go.mod h1:Cqz6pqow14VObJ7peltM+2n3PWOz7yTrfUuGbVFkzN0=
github.com/magefile/mage v1.9.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/mattetti/filebuffer v1.0.0 h1:ixTvQ0JjBTwWbdpDZ98lLrydo7KRi8xNRIi5RFszsbY= github.com/mattetti/filebuffer v1.0.0 h1:ixTvQ0JjBTwWbdpDZ98lLrydo7KRi8xNRIi5RFszsbY=
github.com/mattetti/filebuffer v1.0.0/go.mod h1:X6nyAIge2JGVmuJt2MFCqmHrb/5IHiphfHtot0s5cnI= github.com/mattetti/filebuffer v1.0.0/go.mod h1:X6nyAIge2JGVmuJt2MFCqmHrb/5IHiphfHtot0s5cnI=
github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE=
......
...@@ -2,12 +2,13 @@ package wrapper ...@@ -2,12 +2,13 @@ package wrapper
import ( import (
"context" "context"
"fmt"
"time" "time"
"github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/plugins/backendplugin" "github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2" "github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2"
"github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/tsdb" "github.com/grafana/grafana/pkg/tsdb"
...@@ -81,12 +82,24 @@ func (tw *DatasourcePluginWrapperV2) Query(ctx context.Context, ds *models.DataS ...@@ -81,12 +82,24 @@ func (tw *DatasourcePluginWrapperV2) Query(ctx context.Context, ds *models.DataS
return nil, err return nil, err
} }
return &tsdb.Response{ tR := &tsdb.Response{
Results: map[string]*tsdb.QueryResult{ Results: make(map[string]*tsdb.QueryResult, len(pbRes.Responses)),
"": { }
Dataframes: pbRes.Frames,
Meta: simplejson.NewFromAny(pbRes.Metadata), for refID, pRes := range pbRes.Responses {
}, qr := &tsdb.QueryResult{
}, RefId: refID,
}, nil Dataframes: pRes.Frames,
}
if len(pRes.JsonMeta) != 0 {
qr.Meta = simplejson.NewFromAny(pRes.JsonMeta)
}
if pRes.Error != "" {
qr.Error = fmt.Errorf(pRes.Error)
qr.ErrorString = pRes.Error
}
tR.Results[refID] = qr
}
return tR, nil
} }
...@@ -103,14 +103,25 @@ func (tw *TransformWrapper) Transform(ctx context.Context, query *tsdb.TsdbQuery ...@@ -103,14 +103,25 @@ func (tw *TransformWrapper) Transform(ctx context.Context, query *tsdb.TsdbQuery
return nil, err return nil, err
} }
return &tsdb.Response{ tR := &tsdb.Response{
Results: map[string]*tsdb.QueryResult{ Results: make(map[string]*tsdb.QueryResult, len(pbRes.Responses)),
"": { }
Dataframes: pbRes.Frames, for refID, res := range pbRes.Responses {
Meta: simplejson.NewFromAny(pbRes.Metadata), tRes := &tsdb.QueryResult{
}, RefId: refID,
}, Dataframes: res.Frames,
}, nil }
if len(res.JsonMeta) != 0 {
tRes.Meta = simplejson.NewFromAny(res.JsonMeta)
}
if res.Error != "" {
tRes.Error = fmt.Errorf(res.Error)
tRes.ErrorString = res.Error
}
tR.Results[refID] = tRes
}
return tR, nil
} }
type transformCallback struct { type transformCallback struct {
...@@ -168,18 +179,16 @@ func (s *transformCallback) QueryData(ctx context.Context, req *pluginv2.QueryDa ...@@ -168,18 +179,16 @@ func (s *transformCallback) QueryData(ctx context.Context, req *pluginv2.QueryDa
} }
// Convert tsdb results (map) to plugin-model/datasource (slice) results. // Convert tsdb results (map) to plugin-model/datasource (slice) results.
// Only error, tsdb.Series, and encoded Dataframes responses are mapped. // Only error, tsdb.Series, and encoded Dataframes responses are mapped.
responses := make(map[string]*pluginv2.DataResponse, len(tsdbRes.Results))
encodedFrames := [][]byte{}
for refID, res := range tsdbRes.Results { for refID, res := range tsdbRes.Results {
pRes := &pluginv2.DataResponse{}
if res.Error != nil { if res.Error != nil {
// TODO add Errors property to Frame pRes.Error = res.Error.Error()
encodedFrames = append(encodedFrames, nil)
continue
} }
if res.Dataframes != nil { if res.Dataframes != nil {
encodedFrames = append(encodedFrames, res.Dataframes...) pRes.Frames = res.Dataframes
responses[refID] = pRes
continue continue
} }
...@@ -193,8 +202,18 @@ func (s *transformCallback) QueryData(ctx context.Context, req *pluginv2.QueryDa ...@@ -193,8 +202,18 @@ func (s *transformCallback) QueryData(ctx context.Context, req *pluginv2.QueryDa
if err != nil { if err != nil {
return nil, err return nil, err
} }
encodedFrames = append(encodedFrames, encFrame) pRes.Frames = append(pRes.Frames, encFrame)
} }
if res.Meta != nil {
b, err := res.Meta.MarshalJSON()
if err != nil {
s.logger.Error("failed to marhsal json metadata", err)
}
pRes.JsonMeta = b
} }
return &pluginv2.QueryDataResponse{Frames: encodedFrames}, nil responses[refID] = pRes
}
return &pluginv2.QueryDataResponse{
Responses: responses,
}, nil
} }
...@@ -657,7 +657,7 @@ func UnmarshalArrow(b []byte) (*Frame, error) { ...@@ -657,7 +657,7 @@ func UnmarshalArrow(b []byte) (*Frame, error) {
if metaAsString, ok := getMDKey("meta", metaData); ok { if metaAsString, ok := getMDKey("meta", metaData); ok {
var err error var err error
frame.Meta, err = QueryResultMetaFromJSON(metaAsString) frame.Meta, err = FrameMetaFromJSON(metaAsString)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -692,3 +692,29 @@ func toJSONString(val interface{}) (string, error) { ...@@ -692,3 +692,29 @@ func toJSONString(val interface{}) (string, error) {
} }
return string(b), nil return string(b), nil
} }
// BytesSliceToFrames decodes a slice of encoded Arrow frames to a slice of *Frame.
func BytesSliceToFrames(bFrames [][]byte) ([]*Frame, error) {
frames := make([]*Frame, len(bFrames))
var err error
for i, encodedFrame := range bFrames {
frames[i], err = UnmarshalArrow(encodedFrame)
if err != nil {
return nil, err
}
}
return frames, nil
}
// FramesToBytesSlice encodes a slice of Frames into a slice of []byte.
func FramesToBytesSlice(frames []*Frame) ([][]byte, error) {
bs := make([][]byte, len(frames))
var err error
for i, frame := range frames {
bs[i], err = MarshalArrow(frame)
if err != nil {
return nil, err
}
}
return bs, nil
}
...@@ -28,7 +28,7 @@ type Frame struct { ...@@ -28,7 +28,7 @@ type Frame struct {
Fields []*Field Fields []*Field
RefID string RefID string
Meta *QueryResultMeta Meta *FrameMeta
Warnings []Warning Warnings []Warning
} }
...@@ -263,29 +263,13 @@ func FrameTestCompareOptions() []cmp.Option { ...@@ -263,29 +263,13 @@ func FrameTestCompareOptions() []cmp.Option {
if x == nil && y == nil { if x == nil && y == nil {
return true return true
} }
if y == nil { if y == nil && x != nil || y != nil && x == nil {
if math.IsNaN(float64(*x)) { return false
return true
}
if math.IsInf(float64(*x), 1) {
return true
} }
if math.IsInf(float64(*x), -1) { return (math.IsNaN(float64(*x)) && math.IsNaN(float64(*y))) ||
return true (math.IsInf(float64(*x), 1) && math.IsInf(float64(*y), 1)) ||
} (math.IsInf(float64(*x), -1) && math.IsInf(float64(*y), -1)) ||
} *x == *y
if x == nil {
if math.IsNaN(float64(*y)) {
return true
}
if math.IsInf(float64(*y), 1) {
return true
}
if math.IsInf(float64(*y), -1) {
return true
}
}
return *x == *y
}) })
f64s := cmp.Comparer(func(x, y float64) bool { f64s := cmp.Comparer(func(x, y float64) bool {
return (math.IsNaN(x) && math.IsNaN(y)) || return (math.IsNaN(x) && math.IsNaN(y)) ||
...@@ -297,29 +281,13 @@ func FrameTestCompareOptions() []cmp.Option { ...@@ -297,29 +281,13 @@ func FrameTestCompareOptions() []cmp.Option {
if x == nil && y == nil { if x == nil && y == nil {
return true return true
} }
if y == nil { if y == nil && x != nil || y != nil && x == nil {
if math.IsNaN(float64(*x)) { return false
return true
}
if math.IsInf(float64(*x), 1) {
return true
}
if math.IsInf(float64(*x), -1) {
return true
}
} }
if x == nil { return (math.IsNaN(float64(*x)) && math.IsNaN(float64(*y))) ||
if math.IsNaN(float64(*y)) { (math.IsInf(float64(*x), 1) && math.IsInf(float64(*y), 1)) ||
return true (math.IsInf(float64(*x), -1) && math.IsInf(float64(*y), -1)) ||
} *x == *y
if math.IsInf(float64(*y), 1) {
return true
}
if math.IsInf(float64(*y), -1) {
return true
}
}
return *x == *y
}) })
f32s := cmp.Comparer(func(x, y float32) bool { f32s := cmp.Comparer(func(x, y float32) bool {
return (math.IsNaN(float64(x)) && math.IsNaN(float64(y))) || return (math.IsNaN(float64(x)) && math.IsNaN(float64(y))) ||
...@@ -369,6 +337,8 @@ func (f *Frame) StringTable(maxFields, maxRows int) (string, error) { ...@@ -369,6 +337,8 @@ func (f *Frame) StringTable(maxFields, maxRows int) (string, error) {
sb := &strings.Builder{} sb := &strings.Builder{}
sb.WriteString(fmt.Sprintf("Name: %v\n", f.Name)) sb.WriteString(fmt.Sprintf("Name: %v\n", f.Name))
sb.WriteString(fmt.Sprintf("Dimensions: %v Fields by %v Rows\n", len(f.Fields), rowLen))
table := tablewriter.NewWriter(sb) table := tablewriter.NewWriter(sb)
// table formatting options // table formatting options
...@@ -377,9 +347,6 @@ func (f *Frame) StringTable(maxFields, maxRows int) (string, error) { ...@@ -377,9 +347,6 @@ func (f *Frame) StringTable(maxFields, maxRows int) (string, error) {
table.SetAutoWrapText(false) table.SetAutoWrapText(false)
table.SetAlignment(tablewriter.ALIGN_LEFT) table.SetAlignment(tablewriter.ALIGN_LEFT)
// (caption is below the table)
table.SetCaption(true, fmt.Sprintf("Field Count: %v\nRow Count: %v", len(f.Fields), rowLen))
// set table headers // set table headers
headers := make([]string, width) headers := make([]string, width)
for colIdx, field := range f.Fields { for colIdx, field := range f.Fields {
......
...@@ -2,24 +2,24 @@ package data ...@@ -2,24 +2,24 @@ package data
import "encoding/json" import "encoding/json"
// QueryResultMeta matches: // FrameMeta matches:
// https://github.com/grafana/grafana/blob/master/packages/grafana-data/src/types/data.ts#L11 // https://github.com/grafana/grafana/blob/master/packages/grafana-data/src/types/data.ts#L11
// NOTE -- in javascript this can accept any `[key: string]: any;` however // NOTE -- in javascript this can accept any `[key: string]: any;` however
// this interface only exposes the values we want to be exposed // this interface only exposes the values we want to be exposed
type QueryResultMeta struct { type FrameMeta struct {
// Used in Explore for highlighting
SearchWords []string `json:"searchWords,omitempty"`
// Used in Explore to show limit applied to search result
Limit int64 `json:"limit,omitempty"`
// Datasource specific values // Datasource specific values
Custom map[string]interface{} `json:"custom,omitempty"` Custom map[string]interface{} `json:"custom,omitempty"`
// Stats is TODO
Stats interface{} `json:"stats,omitempty"`
// Notices is TODO
Notices interface{} `json:"notices,omitempty"`
} }
// QueryResultMetaFromJSON creates a QueryResultMeta from a json string // FrameMetaFromJSON creates a QueryResultMeta from a json string
func QueryResultMetaFromJSON(jsonStr string) (*QueryResultMeta, error) { func FrameMetaFromJSON(jsonStr string) (*FrameMeta, error) {
var m QueryResultMeta var m FrameMeta
err := json.Unmarshal([]byte(jsonStr), &m) err := json.Unmarshal([]byte(jsonStr), &m)
if err != nil { if err != nil {
return nil, err return nil, err
......
...@@ -49,7 +49,7 @@ func (x CheckHealthResponse_HealthStatus) String() string { ...@@ -49,7 +49,7 @@ func (x CheckHealthResponse_HealthStatus) String() string {
} }
func (CheckHealthResponse_HealthStatus) EnumDescriptor() ([]byte, []int) { func (CheckHealthResponse_HealthStatus) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{13, 0} return fileDescriptor_5ab9ba5b8d8b2ba5, []int{14, 0}
} }
type DataSourceConfig struct { type DataSourceConfig struct {
...@@ -677,11 +677,8 @@ func (m *QueryDataRequest) GetQueries() []*DataQuery { ...@@ -677,11 +677,8 @@ func (m *QueryDataRequest) GetQueries() []*DataQuery {
} }
type QueryDataResponse struct { type QueryDataResponse struct {
// Arrow encoded DataFrames // Map of refId to response
// Each frame encodes its own: Errors, meta, and refId Responses map[string]*DataResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Frames [][]byte `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
// Additional response metadata
Metadata map[string]string `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -712,16 +709,66 @@ func (m *QueryDataResponse) XXX_DiscardUnknown() { ...@@ -712,16 +709,66 @@ func (m *QueryDataResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryDataResponse proto.InternalMessageInfo var xxx_messageInfo_QueryDataResponse proto.InternalMessageInfo
func (m *QueryDataResponse) GetFrames() [][]byte { func (m *QueryDataResponse) GetResponses() map[string]*DataResponse {
if m != nil {
return m.Responses
}
return nil
}
type DataResponse struct {
// Arrow encoded DataFrames
// Frame has its own meta, warnings, and repeats refId
Frames [][]byte `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
JsonMeta []byte `protobuf:"bytes,3,opt,name=jsonMeta,proto3" json:"jsonMeta,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DataResponse) Reset() { *m = DataResponse{} }
func (m *DataResponse) String() string { return proto.CompactTextString(m) }
func (*DataResponse) ProtoMessage() {}
func (*DataResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{10}
}
func (m *DataResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DataResponse.Unmarshal(m, b)
}
func (m *DataResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DataResponse.Marshal(b, m, deterministic)
}
func (m *DataResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_DataResponse.Merge(m, src)
}
func (m *DataResponse) XXX_Size() int {
return xxx_messageInfo_DataResponse.Size(m)
}
func (m *DataResponse) XXX_DiscardUnknown() {
xxx_messageInfo_DataResponse.DiscardUnknown(m)
}
var xxx_messageInfo_DataResponse proto.InternalMessageInfo
func (m *DataResponse) GetFrames() [][]byte {
if m != nil { if m != nil {
return m.Frames return m.Frames
} }
return nil return nil
} }
func (m *QueryDataResponse) GetMetadata() map[string]string { func (m *DataResponse) GetError() string {
if m != nil {
return m.Error
}
return ""
}
func (m *DataResponse) GetJsonMeta() []byte {
if m != nil { if m != nil {
return m.Metadata return m.JsonMeta
} }
return nil return nil
} }
...@@ -736,7 +783,7 @@ func (m *CollectMetricsRequest) Reset() { *m = CollectMetricsRequest{} } ...@@ -736,7 +783,7 @@ func (m *CollectMetricsRequest) Reset() { *m = CollectMetricsRequest{} }
func (m *CollectMetricsRequest) String() string { return proto.CompactTextString(m) } func (m *CollectMetricsRequest) String() string { return proto.CompactTextString(m) }
func (*CollectMetricsRequest) ProtoMessage() {} func (*CollectMetricsRequest) ProtoMessage() {}
func (*CollectMetricsRequest) Descriptor() ([]byte, []int) { func (*CollectMetricsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{10} return fileDescriptor_5ab9ba5b8d8b2ba5, []int{11}
} }
func (m *CollectMetricsRequest) XXX_Unmarshal(b []byte) error { func (m *CollectMetricsRequest) XXX_Unmarshal(b []byte) error {
...@@ -768,7 +815,7 @@ func (m *CollectMetricsResponse) Reset() { *m = CollectMetricsResponse{} ...@@ -768,7 +815,7 @@ func (m *CollectMetricsResponse) Reset() { *m = CollectMetricsResponse{}
func (m *CollectMetricsResponse) String() string { return proto.CompactTextString(m) } func (m *CollectMetricsResponse) String() string { return proto.CompactTextString(m) }
func (*CollectMetricsResponse) ProtoMessage() {} func (*CollectMetricsResponse) ProtoMessage() {}
func (*CollectMetricsResponse) Descriptor() ([]byte, []int) { func (*CollectMetricsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{11} return fileDescriptor_5ab9ba5b8d8b2ba5, []int{12}
} }
func (m *CollectMetricsResponse) XXX_Unmarshal(b []byte) error { func (m *CollectMetricsResponse) XXX_Unmarshal(b []byte) error {
...@@ -807,7 +854,7 @@ func (m *CollectMetricsResponse_Payload) Reset() { *m = CollectMetricsRe ...@@ -807,7 +854,7 @@ func (m *CollectMetricsResponse_Payload) Reset() { *m = CollectMetricsRe
func (m *CollectMetricsResponse_Payload) String() string { return proto.CompactTextString(m) } func (m *CollectMetricsResponse_Payload) String() string { return proto.CompactTextString(m) }
func (*CollectMetricsResponse_Payload) ProtoMessage() {} func (*CollectMetricsResponse_Payload) ProtoMessage() {}
func (*CollectMetricsResponse_Payload) Descriptor() ([]byte, []int) { func (*CollectMetricsResponse_Payload) Descriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{11, 0} return fileDescriptor_5ab9ba5b8d8b2ba5, []int{12, 0}
} }
func (m *CollectMetricsResponse_Payload) XXX_Unmarshal(b []byte) error { func (m *CollectMetricsResponse_Payload) XXX_Unmarshal(b []byte) error {
...@@ -846,7 +893,7 @@ func (m *CheckHealthRequest) Reset() { *m = CheckHealthRequest{} } ...@@ -846,7 +893,7 @@ func (m *CheckHealthRequest) Reset() { *m = CheckHealthRequest{} }
func (m *CheckHealthRequest) String() string { return proto.CompactTextString(m) } func (m *CheckHealthRequest) String() string { return proto.CompactTextString(m) }
func (*CheckHealthRequest) ProtoMessage() {} func (*CheckHealthRequest) ProtoMessage() {}
func (*CheckHealthRequest) Descriptor() ([]byte, []int) { func (*CheckHealthRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{12} return fileDescriptor_5ab9ba5b8d8b2ba5, []int{13}
} }
func (m *CheckHealthRequest) XXX_Unmarshal(b []byte) error { func (m *CheckHealthRequest) XXX_Unmarshal(b []byte) error {
...@@ -887,7 +934,7 @@ func (m *CheckHealthResponse) Reset() { *m = CheckHealthResponse{} } ...@@ -887,7 +934,7 @@ func (m *CheckHealthResponse) Reset() { *m = CheckHealthResponse{} }
func (m *CheckHealthResponse) String() string { return proto.CompactTextString(m) } func (m *CheckHealthResponse) String() string { return proto.CompactTextString(m) }
func (*CheckHealthResponse) ProtoMessage() {} func (*CheckHealthResponse) ProtoMessage() {}
func (*CheckHealthResponse) Descriptor() ([]byte, []int) { func (*CheckHealthResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_5ab9ba5b8d8b2ba5, []int{13} return fileDescriptor_5ab9ba5b8d8b2ba5, []int{14}
} }
func (m *CheckHealthResponse) XXX_Unmarshal(b []byte) error { func (m *CheckHealthResponse) XXX_Unmarshal(b []byte) error {
...@@ -946,7 +993,8 @@ func init() { ...@@ -946,7 +993,8 @@ func init() {
proto.RegisterType((*QueryDataRequest)(nil), "pluginv2.QueryDataRequest") proto.RegisterType((*QueryDataRequest)(nil), "pluginv2.QueryDataRequest")
proto.RegisterMapType((map[string]string)(nil), "pluginv2.QueryDataRequest.HeadersEntry") proto.RegisterMapType((map[string]string)(nil), "pluginv2.QueryDataRequest.HeadersEntry")
proto.RegisterType((*QueryDataResponse)(nil), "pluginv2.QueryDataResponse") proto.RegisterType((*QueryDataResponse)(nil), "pluginv2.QueryDataResponse")
proto.RegisterMapType((map[string]string)(nil), "pluginv2.QueryDataResponse.MetadataEntry") proto.RegisterMapType((map[string]*DataResponse)(nil), "pluginv2.QueryDataResponse.ResponsesEntry")
proto.RegisterType((*DataResponse)(nil), "pluginv2.DataResponse")
proto.RegisterType((*CollectMetricsRequest)(nil), "pluginv2.CollectMetricsRequest") proto.RegisterType((*CollectMetricsRequest)(nil), "pluginv2.CollectMetricsRequest")
proto.RegisterType((*CollectMetricsResponse)(nil), "pluginv2.CollectMetricsResponse") proto.RegisterType((*CollectMetricsResponse)(nil), "pluginv2.CollectMetricsResponse")
proto.RegisterType((*CollectMetricsResponse_Payload)(nil), "pluginv2.CollectMetricsResponse.Payload") proto.RegisterType((*CollectMetricsResponse_Payload)(nil), "pluginv2.CollectMetricsResponse.Payload")
...@@ -957,77 +1005,79 @@ func init() { ...@@ -957,77 +1005,79 @@ func init() {
func init() { proto.RegisterFile("backend.proto", fileDescriptor_5ab9ba5b8d8b2ba5) } func init() { proto.RegisterFile("backend.proto", fileDescriptor_5ab9ba5b8d8b2ba5) }
var fileDescriptor_5ab9ba5b8d8b2ba5 = []byte{ var fileDescriptor_5ab9ba5b8d8b2ba5 = []byte{
// 1115 bytes of a gzipped FileDescriptorProto // 1144 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0xc6,
0x10, 0x2e, 0x49, 0xfd, 0x71, 0xa4, 0x18, 0xea, 0x5a, 0x71, 0x08, 0x35, 0x49, 0x05, 0x22, 0x40, 0x13, 0xff, 0x53, 0x9f, 0xe6, 0x48, 0x31, 0xf4, 0x5f, 0x2b, 0x8e, 0xa0, 0x26, 0xa9, 0x40, 0x04,
0x95, 0x14, 0x15, 0x5a, 0xe5, 0xd0, 0x22, 0x39, 0xc5, 0x96, 0x0a, 0xc7, 0x8e, 0x7f, 0xba, 0x8a, 0xa8, 0x9a, 0xb6, 0x44, 0xab, 0x1c, 0x5a, 0xa4, 0xa7, 0xd8, 0x72, 0xe1, 0xd8, 0xf1, 0x47, 0x57,
0x51, 0x20, 0x45, 0x0f, 0x2b, 0x72, 0x2d, 0xb1, 0xe6, 0x8f, 0xcc, 0x5d, 0x1a, 0xf5, 0x03, 0x14, 0x36, 0x5a, 0xa4, 0xe8, 0x61, 0x45, 0xae, 0x25, 0xd6, 0x14, 0x57, 0xde, 0x5d, 0x1a, 0xf5, 0x03,
0x7d, 0x81, 0x3e, 0x47, 0xfa, 0x14, 0x3d, 0xf5, 0xd8, 0x43, 0x5f, 0xa7, 0xd8, 0xe5, 0x52, 0x24, 0x14, 0x7d, 0x81, 0x3e, 0x47, 0x2e, 0x7d, 0x86, 0x9e, 0x7a, 0xec, 0xa1, 0xaf, 0x53, 0xec, 0x72,
0x6d, 0xc9, 0x46, 0x5b, 0xe7, 0xb6, 0x33, 0x9c, 0x9d, 0x9d, 0xf9, 0xe6, 0x9b, 0xcf, 0x32, 0xdc, 0x29, 0x92, 0xb6, 0x64, 0x03, 0xad, 0x73, 0x9b, 0x99, 0x9d, 0x9d, 0x9d, 0xf9, 0xcd, 0x6f, 0x86,
0x9b, 0x12, 0xe7, 0x8c, 0x86, 0xee, 0x60, 0x11, 0x47, 0x3c, 0x42, 0x8d, 0x85, 0x9f, 0xcc, 0xbc, 0x12, 0x3c, 0x18, 0x13, 0xef, 0x9c, 0x46, 0xbe, 0x3b, 0xe7, 0x4c, 0x32, 0xb4, 0x36, 0x0f, 0xe3,
0xf0, 0x62, 0x68, 0xff, 0x69, 0x40, 0x7b, 0x44, 0x38, 0x99, 0x44, 0x49, 0xec, 0xd0, 0x9d, 0x28, 0x49, 0x10, 0x5d, 0x0e, 0x9c, 0x3f, 0xcb, 0xd0, 0x1a, 0x12, 0x49, 0x46, 0x2c, 0xe6, 0x1e, 0xdd,
0x3c, 0xf5, 0x66, 0x68, 0x03, 0x74, 0xcf, 0xb5, 0xb4, 0x9e, 0xd6, 0x37, 0xb0, 0xee, 0xb9, 0x08, 0x66, 0xd1, 0x59, 0x30, 0x41, 0xeb, 0x50, 0x0a, 0xfc, 0x8e, 0xd5, 0xb3, 0xfa, 0x65, 0x5c, 0x0a,
0x41, 0x25, 0x24, 0x01, 0xb5, 0xf4, 0x9e, 0xd6, 0x37, 0xb1, 0x3c, 0xa3, 0x36, 0x18, 0x49, 0xec, 0x7c, 0x84, 0xa0, 0x12, 0x91, 0x19, 0xed, 0x94, 0x7a, 0x56, 0xdf, 0xc6, 0x5a, 0x46, 0x2d, 0x28,
0x5b, 0x86, 0x74, 0x89, 0xa3, 0x88, 0x4a, 0x18, 0x8d, 0xad, 0x4a, 0x1a, 0x25, 0xce, 0xa8, 0x0b, 0xc7, 0x3c, 0xec, 0x94, 0xb5, 0x49, 0x89, 0xca, 0x2b, 0x16, 0x94, 0x77, 0x2a, 0x89, 0x97, 0x92,
0x0d, 0x97, 0x70, 0x32, 0x25, 0x8c, 0x5a, 0x55, 0xe9, 0x5f, 0xda, 0xe8, 0x19, 0xb4, 0xa7, 0x84, 0x51, 0x17, 0xd6, 0x7c, 0x22, 0xc9, 0x98, 0x08, 0xda, 0xa9, 0x6a, 0xfb, 0x42, 0x47, 0xcf, 0xa1,
0x79, 0xce, 0xab, 0x84, 0xcf, 0xc7, 0x21, 0x99, 0xfa, 0xd4, 0xb5, 0x6a, 0x3d, 0xad, 0xdf, 0xc0, 0x35, 0x26, 0x22, 0xf0, 0x5e, 0xc5, 0x72, 0xba, 0x13, 0x91, 0x71, 0x48, 0xfd, 0x4e, 0xad, 0x67,
0xd7, 0xfc, 0xe8, 0x89, 0xe8, 0x40, 0xf9, 0x4e, 0xc4, 0x23, 0x75, 0x99, 0xac, 0xec, 0x14, 0xaf, 0xf5, 0xd7, 0xf0, 0x0d, 0x3b, 0x7a, 0xa6, 0x2a, 0x30, 0xb6, 0x53, 0xf5, 0x48, 0x5d, 0x07, 0x2b,
0xfd, 0xc4, 0xa2, 0x50, 0xf4, 0x63, 0x35, 0x7a, 0x5a, 0xbf, 0x85, 0x97, 0x36, 0x3a, 0x87, 0x07, 0x1a, 0xd5, 0x6b, 0x3f, 0x09, 0x16, 0xa9, 0x7a, 0x3a, 0x6b, 0x3d, 0xab, 0xdf, 0xc4, 0x0b, 0x1d,
0x2e, 0x75, 0xe2, 0xcb, 0x05, 0xa7, 0xee, 0x84, 0x3a, 0x49, 0x4c, 0xf7, 0xb2, 0x50, 0xb3, 0x67, 0x5d, 0xc0, 0x23, 0x9f, 0x7a, 0xfc, 0x6a, 0x2e, 0xa9, 0x3f, 0xa2, 0x5e, 0xcc, 0xe9, 0x5e, 0xea,
0xf4, 0x9b, 0xc3, 0xaf, 0x07, 0x19, 0x28, 0x83, 0xab, 0x80, 0x0c, 0x46, 0xab, 0x6f, 0x8e, 0x43, 0x6a, 0xf7, 0xca, 0xfd, 0xc6, 0xe0, 0x4b, 0x37, 0x05, 0xc5, 0xbd, 0x0e, 0x88, 0x3b, 0x5c, 0x7e,
0x1e, 0x5f, 0xe2, 0x75, 0x79, 0x45, 0xd1, 0x3e, 0x61, 0xfc, 0x64, 0xe1, 0x12, 0x4e, 0xdd, 0x83, 0x73, 0x27, 0x92, 0xfc, 0x0a, 0xaf, 0x8a, 0xab, 0x92, 0x0e, 0x89, 0x90, 0xa7, 0x73, 0x9f, 0x48,
0x89, 0x05, 0x12, 0xd1, 0xb2, 0xb3, 0xbb, 0x07, 0x0f, 0x6f, 0x4a, 0x2f, 0x80, 0x3e, 0xa3, 0x97, 0xea, 0x1f, 0x8c, 0x3a, 0xa0, 0x11, 0x2d, 0x1a, 0xbb, 0x7b, 0xf0, 0xf8, 0xb6, 0xf0, 0x0a, 0xe8,
0x72, 0x1a, 0x26, 0x16, 0x47, 0xd4, 0x81, 0xea, 0x05, 0xf1, 0x93, 0x6c, 0x1e, 0xa9, 0xf1, 0x42, 0x73, 0x7a, 0xa5, 0xbb, 0x61, 0x63, 0x25, 0xa2, 0x36, 0x54, 0x2f, 0x49, 0x18, 0xa7, 0xfd, 0x48,
0xff, 0x46, 0xb3, 0x7f, 0x31, 0xa0, 0x75, 0x2c, 0xbb, 0x50, 0x93, 0xec, 0x40, 0x35, 0x8a, 0x67, 0x94, 0x97, 0xa5, 0xaf, 0x2c, 0xe7, 0x97, 0x32, 0x34, 0x8f, 0x75, 0x15, 0xa6, 0x93, 0x6d, 0xa8,
0xaf, 0xb3, 0x61, 0xa6, 0x86, 0xc0, 0x29, 0xed, 0xf5, 0xb5, 0xab, 0x72, 0x2c, 0xed, 0x12, 0x86, 0x32, 0x3e, 0x79, 0x9d, 0x36, 0x33, 0x51, 0x14, 0x4e, 0x49, 0xad, 0xaf, 0x7d, 0x13, 0x63, 0xa1,
0xc6, 0x15, 0x0c, 0x83, 0xf5, 0x18, 0x56, 0x24, 0x86, 0xcf, 0x73, 0x0c, 0x8b, 0x65, 0xdc, 0x15, 0x17, 0x30, 0x2c, 0x5f, 0xc3, 0x70, 0xb6, 0x1a, 0xc3, 0x8a, 0xc6, 0xf0, 0x45, 0x86, 0x61, 0x3e,
0x7e, 0xd5, 0x15, 0xf8, 0xa1, 0x6f, 0xa1, 0x2d, 0x28, 0xc5, 0x0a, 0xf3, 0x92, 0x34, 0x6a, 0x0e, 0x8d, 0xfb, 0xc2, 0xaf, 0xba, 0x04, 0x3f, 0xf4, 0x0d, 0xb4, 0x14, 0xa5, 0x44, 0xae, 0x5f, 0x9a,
0xbb, 0xeb, 0x27, 0x8a, 0xaf, 0xdd, 0xb9, 0xd3, 0x39, 0xbc, 0x83, 0x8a, 0x24, 0x64, 0x07, 0xaa, 0x46, 0x8d, 0x41, 0x77, 0x75, 0x47, 0xf1, 0x8d, 0x3b, 0xf7, 0xda, 0x87, 0xb7, 0x50, 0xd1, 0x84,
0x7e, 0x34, 0xf3, 0x42, 0x75, 0x2b, 0x35, 0x56, 0xae, 0x53, 0x07, 0xaa, 0x34, 0x20, 0x5e, 0xb6, 0x6c, 0x43, 0x35, 0x64, 0x93, 0x20, 0x32, 0xb7, 0x12, 0x65, 0xe9, 0x38, 0xb5, 0xa1, 0x4a, 0x67,
0x50, 0xa9, 0x21, 0x22, 0xe3, 0xc8, 0xa7, 0xd9, 0x4a, 0x89, 0xb3, 0xfd, 0x04, 0x60, 0xc2, 0x63, 0x24, 0x48, 0x07, 0x2a, 0x51, 0x94, 0x27, 0x67, 0x21, 0x4d, 0x47, 0x4a, 0xc9, 0xce, 0x33, 0x80,
0x2f, 0x9c, 0xbd, 0xf1, 0x18, 0x47, 0x5b, 0x50, 0x93, 0xcf, 0x32, 0x4b, 0xeb, 0x19, 0x7d, 0x13, 0x91, 0xe4, 0x41, 0x34, 0x79, 0x13, 0x08, 0x89, 0x36, 0xa1, 0xa6, 0x9f, 0x15, 0x1d, 0xab, 0x57,
0x2b, 0xcb, 0xfe, 0x4b, 0x87, 0xcd, 0x1d, 0xe2, 0xfb, 0x98, 0xa6, 0x4d, 0x62, 0x7a, 0x9e, 0x50, 0xee, 0xdb, 0xd8, 0x68, 0xce, 0x5f, 0x25, 0xd8, 0xd8, 0x26, 0x61, 0x88, 0x69, 0x52, 0x24, 0xa6,
0xc6, 0xd1, 0x00, 0x6a, 0x4e, 0x8a, 0x91, 0x26, 0x31, 0xda, 0x5a, 0x3d, 0x31, 0xac, 0xa2, 0x90, 0x17, 0x31, 0x15, 0x12, 0xb9, 0x50, 0xf3, 0x12, 0x8c, 0x2c, 0x8d, 0xd1, 0xe6, 0xf2, 0x8e, 0x61,
0xad, 0x96, 0x5a, 0x97, 0xd1, 0x1b, 0x79, 0xb4, 0xe8, 0x4f, 0x2d, 0x39, 0x82, 0xca, 0x82, 0xf0, 0xe3, 0x85, 0x1c, 0x33, 0xd4, 0x25, 0xed, 0xbd, 0x9e, 0x79, 0xab, 0xfa, 0xcc, 0x90, 0x23, 0xa8,
0xb9, 0x2a, 0x5d, 0x9e, 0x45, 0x5d, 0x01, 0xe5, 0xf3, 0xc8, 0x55, 0xb5, 0x2b, 0x2b, 0x93, 0x8d, 0xcc, 0x89, 0x9c, 0x9a, 0xd4, 0xb5, 0xac, 0xf2, 0x9a, 0x51, 0x39, 0x65, 0xbe, 0xc9, 0xdd, 0x68,
0x6a, 0x2e, 0x1b, 0x23, 0xa8, 0xcf, 0x29, 0x71, 0x69, 0xcc, 0xac, 0x9a, 0x24, 0xd1, 0xb3, 0xfc, 0xe9, 0xda, 0xa8, 0x66, 0x6b, 0x63, 0x08, 0xf5, 0x29, 0x25, 0x3e, 0xe5, 0xa2, 0x53, 0xd3, 0x24,
0x91, 0x15, 0x1d, 0x0c, 0x76, 0xd3, 0xe0, 0x94, 0x3b, 0xd9, 0x55, 0x51, 0xc3, 0x34, 0x72, 0x2f, 0x7a, 0x9e, 0x3d, 0xb2, 0xa4, 0x02, 0x77, 0x37, 0x71, 0x4e, 0xb8, 0x93, 0x5e, 0x55, 0x39, 0x8c,
0xa5, 0x2e, 0xb4, 0xb0, 0x3c, 0x77, 0x8f, 0xa1, 0x55, 0x0c, 0x5e, 0x31, 0xc1, 0x67, 0xc5, 0x09, 0x99, 0x7f, 0xa5, 0xf7, 0x42, 0x13, 0x6b, 0xb9, 0x7b, 0x0c, 0xcd, 0xbc, 0xf3, 0x92, 0x0e, 0x3e,
0x36, 0x87, 0x9d, 0xfc, 0xe5, 0x1c, 0xe2, 0xe2, 0x5c, 0xff, 0xd6, 0xa0, 0x53, 0xae, 0x89, 0x2d, 0xcf, 0x77, 0xb0, 0x31, 0x68, 0x67, 0x2f, 0x67, 0x10, 0xe7, 0xfb, 0xfa, 0xb7, 0x05, 0xed, 0x62,
0xa2, 0x90, 0x51, 0xf1, 0xbc, 0x13, 0xb9, 0x54, 0xe6, 0xae, 0x62, 0x79, 0x46, 0xe3, 0xbc, 0x31, 0x4e, 0x62, 0xce, 0x22, 0x41, 0xd5, 0xf3, 0x1e, 0xf3, 0xa9, 0x8e, 0x5d, 0xc5, 0x5a, 0x46, 0x3b,
0x5d, 0x36, 0xf6, 0xf9, 0xba, 0xc6, 0xd2, 0x24, 0xb7, 0x74, 0x66, 0x7c, 0xd0, 0xce, 0xf6, 0xc1, 0x59, 0x61, 0x25, 0x5d, 0xd8, 0x27, 0xab, 0x0a, 0x4b, 0x82, 0xdc, 0x51, 0x59, 0xf9, 0xbd, 0x56,
0x7c, 0xeb, 0x05, 0x14, 0x93, 0x70, 0x46, 0x51, 0x0f, 0x9a, 0xa7, 0x71, 0x14, 0x8c, 0x17, 0x91, 0xb6, 0x0f, 0xf6, 0x49, 0x30, 0xa3, 0x98, 0x44, 0x13, 0x8a, 0x7a, 0xd0, 0x38, 0xe3, 0x6c, 0xb6,
0x33, 0x3f, 0x98, 0x28, 0xed, 0x28, 0xba, 0xd0, 0x43, 0x30, 0x79, 0x94, 0x7d, 0xd7, 0xe5, 0xf7, 0x33, 0x67, 0xde, 0xf4, 0x60, 0x64, 0x76, 0x47, 0xde, 0x84, 0x1e, 0x83, 0x2d, 0x59, 0x7a, 0x5e,
0xdc, 0x61, 0xbf, 0xd7, 0xc0, 0x14, 0x8b, 0xf3, 0x5d, 0x42, 0x63, 0xb9, 0x26, 0x31, 0x3d, 0x55, 0xd2, 0xe7, 0x99, 0xc1, 0x79, 0x67, 0x81, 0xad, 0x06, 0xe7, 0xdb, 0x98, 0x72, 0x3d, 0x26, 0x9c,
0x1a, 0x64, 0xe2, 0xd4, 0x10, 0xcb, 0x1d, 0x90, 0x9f, 0x45, 0xd4, 0x71, 0xe4, 0x85, 0x9c, 0xa9, 0x9e, 0x99, 0x1d, 0x64, 0xe3, 0x44, 0x51, 0xc3, 0x3d, 0x23, 0x3f, 0x2b, 0xaf, 0x63, 0x16, 0x44,
0x2c, 0x65, 0x27, 0x7a, 0x0c, 0xe0, 0x85, 0x9c, 0xc6, 0x17, 0xc4, 0x3f, 0x98, 0x48, 0x08, 0x0c, 0x52, 0x98, 0x28, 0x45, 0x23, 0x7a, 0x0a, 0x10, 0x44, 0x92, 0xf2, 0x4b, 0x12, 0x1e, 0x8c, 0x34,
0x5c, 0xf0, 0xa0, 0xaf, 0xc0, 0xe4, 0x59, 0xd9, 0x92, 0x69, 0xcd, 0xe1, 0x66, 0xde, 0xea, 0xb2, 0x04, 0x65, 0x9c, 0xb3, 0xa0, 0x2f, 0xc0, 0x96, 0x69, 0xda, 0x9a, 0x69, 0x8d, 0xc1, 0x46, 0x56,
0x23, 0x9c, 0x47, 0x09, 0x3c, 0x85, 0xa0, 0x49, 0x0a, 0xb6, 0xb0, 0x3c, 0xdb, 0xbf, 0xe9, 0xd0, 0xea, 0xa2, 0x22, 0x9c, 0x79, 0x29, 0x3c, 0xd5, 0x42, 0xd3, 0x14, 0x6c, 0x62, 0x2d, 0x3b, 0xbf,
0x96, 0xc5, 0x8a, 0xa7, 0x3f, 0xe4, 0xaa, 0xbc, 0xca, 0x39, 0x61, 0x48, 0x4e, 0x7c, 0x96, 0x87, 0x95, 0xa0, 0xa5, 0x93, 0x55, 0x4f, 0xbf, 0xcf, 0x51, 0x79, 0x95, 0x71, 0xa2, 0xac, 0x39, 0xf1,
0x5d, 0x2d, 0x60, 0x0d, 0x1f, 0xbe, 0x80, 0xfa, 0x79, 0x42, 0x63, 0x8f, 0x32, 0x25, 0xba, 0x9b, 0x51, 0xe6, 0x76, 0x3d, 0x81, 0x15, 0x7c, 0xf8, 0x0c, 0xea, 0x17, 0x31, 0xe5, 0x01, 0x15, 0x66,
0x65, 0x99, 0x93, 0x69, 0x70, 0x16, 0xd3, 0x7d, 0x71, 0x2b, 0x55, 0xd6, 0xcb, 0xd8, 0xef, 0x1a, 0xe9, 0x6e, 0x14, 0xd7, 0x9c, 0x0e, 0x83, 0x53, 0x9f, 0xee, 0xcb, 0x3b, 0xa9, 0xb2, 0x7a, 0x8d,
0x7c, 0x5c, 0xa8, 0x4a, 0x71, 0x7d, 0x0b, 0x6a, 0xa7, 0x31, 0x09, 0x94, 0xe4, 0xb4, 0xb0, 0xb2, 0xfd, 0x6e, 0xc1, 0xff, 0x73, 0x59, 0x19, 0xae, 0xef, 0x82, 0xcd, 0x8d, 0x9c, 0x6c, 0x9d, 0xc2,
0xd0, 0x18, 0x1a, 0x01, 0xe5, 0x44, 0x08, 0xab, 0x22, 0xfc, 0xd3, 0x95, 0xcd, 0x29, 0xb6, 0x1f, 0xc8, 0xde, 0xf0, 0x77, 0x53, 0xc1, 0x14, 0x92, 0x5d, 0xee, 0x9e, 0xc0, 0x7a, 0xf1, 0x70, 0x49,
0xa8, 0xd8, 0xb4, 0xbd, 0xe5, 0xd5, 0xee, 0x4b, 0xb8, 0x57, 0xfa, 0xf4, 0xaf, 0x2a, 0x7e, 0x00, 0x76, 0x9f, 0x16, 0x89, 0xbc, 0x59, 0x2c, 0x36, 0xbd, 0x9e, 0xcf, 0xfa, 0x7b, 0x68, 0x16, 0xf2,
0xf7, 0x77, 0x22, 0xdf, 0xa7, 0x0e, 0x3f, 0xa0, 0x3c, 0xf6, 0x1c, 0xa6, 0xb0, 0xb4, 0x7f, 0xd5, 0xdd, 0x84, 0xda, 0x19, 0x27, 0x33, 0x93, 0x6c, 0x13, 0x1b, 0x4d, 0xaf, 0x5c, 0xce, 0x19, 0x4f,
0x60, 0xeb, 0xea, 0x17, 0xd5, 0xcf, 0x36, 0xd4, 0x83, 0xd4, 0xa5, 0x06, 0xdd, 0x2f, 0xec, 0xe9, 0xeb, 0xd6, 0x4a, 0xfa, 0xfd, 0x3b, 0xa0, 0xc5, 0xef, 0x9f, 0xd2, 0x9d, 0x47, 0xf0, 0x70, 0x9b,
0xca, 0x2b, 0x83, 0x63, 0x72, 0xe9, 0x47, 0xc4, 0xc5, 0xd9, 0xc5, 0xee, 0x53, 0xa8, 0x2b, 0x9f, 0x85, 0x21, 0xf5, 0xe4, 0x01, 0x95, 0x3c, 0xf0, 0x84, 0xe9, 0x94, 0xf3, 0xab, 0x05, 0x9b, 0xd7,
0xa0, 0xec, 0x22, 0x8e, 0x84, 0xdc, 0xd1, 0x24, 0xcd, 0xd8, 0xc2, 0x05, 0x8f, 0x3d, 0x02, 0xb4, 0x4f, 0xcc, 0xeb, 0x5b, 0x50, 0x9f, 0x25, 0x26, 0x43, 0xa3, 0x7e, 0x6e, 0x0b, 0x2c, 0xbd, 0xe2,
0x33, 0xa7, 0xce, 0xd9, 0x2e, 0x25, 0x3e, 0x9f, 0xff, 0x47, 0xb2, 0xd9, 0x7f, 0x68, 0xb0, 0x59, 0x1e, 0x93, 0xab, 0x90, 0x11, 0x1f, 0xa7, 0x17, 0xbb, 0x1f, 0x43, 0xdd, 0xd8, 0xd4, 0x40, 0xcc,
0x4a, 0xb3, 0x6c, 0xa6, 0xc6, 0x38, 0xe1, 0xea, 0xe5, 0x8d, 0x92, 0x98, 0x5e, 0x0f, 0x1f, 0xa4, 0x39, 0x53, 0xcb, 0x94, 0xc6, 0x49, 0xc4, 0x26, 0xce, 0x59, 0x9c, 0x21, 0xa0, 0xed, 0x29, 0xf5,
0xe6, 0x44, 0xde, 0xc0, 0xea, 0x26, 0xb2, 0x04, 0x20, 0x8c, 0x91, 0x59, 0x06, 0x70, 0x66, 0x0a, 0xce, 0x77, 0x29, 0x09, 0xe5, 0xf4, 0x5f, 0x52, 0xd9, 0xf9, 0xc3, 0x82, 0x8d, 0x42, 0x98, 0x45,
0x61, 0x90, 0x3f, 0x06, 0x28, 0x27, 0x9e, 0xcf, 0x94, 0x24, 0x15, 0x5d, 0xf6, 0x40, 0xd2, 0x6d, 0x31, 0x35, 0x21, 0x89, 0x34, 0x2f, 0xaf, 0x17, 0x56, 0xf5, 0x4d, 0x77, 0x37, 0x51, 0x47, 0xfa,
0x99, 0x13, 0x35, 0xa1, 0x7e, 0x72, 0xb8, 0x7f, 0x78, 0xf4, 0xfd, 0x61, 0xfb, 0x23, 0x54, 0x03, 0x06, 0x36, 0x37, 0x51, 0x47, 0x01, 0x22, 0x04, 0x99, 0xa4, 0x84, 0x4b, 0x55, 0xb5, 0x76, 0xf4,
0xfd, 0x68, 0xbf, 0xad, 0x21, 0x13, 0xaa, 0x63, 0x8c, 0x8f, 0x70, 0x5b, 0x1f, 0xfe, 0x00, 0x8d, 0x4f, 0x0d, 0x2a, 0x49, 0x10, 0x0a, 0x83, 0x7e, 0xde, 0xe4, 0xb8, 0x9a, 0xcc, 0x8b, 0x98, 0xa8,
0x4c, 0x07, 0xd1, 0x11, 0xb4, 0x8a, 0xba, 0x88, 0x1e, 0xdd, 0xf8, 0x87, 0xa0, 0xfb, 0xf8, 0x66, 0x01, 0xf5, 0xd3, 0xc3, 0xfd, 0xc3, 0xa3, 0xef, 0x0e, 0x5b, 0xff, 0x43, 0x35, 0x28, 0x1d, 0xed,
0x39, 0xfd, 0x52, 0x1b, 0xbe, 0x81, 0x8a, 0xfc, 0x21, 0x31, 0x02, 0x73, 0xc9, 0x3f, 0xd4, 0x5d, 0xb7, 0x2c, 0x64, 0x43, 0x75, 0x07, 0xe3, 0x23, 0xdc, 0x2a, 0x0d, 0x7e, 0x80, 0xb5, 0x74, 0xcb,
0xbf, 0x71, 0xdd, 0x4f, 0x6e, 0x20, 0xec, 0xf0, 0xbd, 0x06, 0xcd, 0x91, 0x47, 0x66, 0x61, 0xc4, 0xa2, 0x23, 0x68, 0xe6, 0xb7, 0x2e, 0x7a, 0x72, 0xeb, 0x67, 0xa6, 0xfb, 0xf4, 0xf6, 0x65, 0xfd,
0xb8, 0xe7, 0x30, 0xb4, 0x07, 0xcd, 0x02, 0xa4, 0xe8, 0xe1, 0x1a, 0xa4, 0xd3, 0xcc, 0x8f, 0x6e, 0xb9, 0x35, 0x78, 0x03, 0x15, 0xfd, 0x33, 0x65, 0x08, 0xf6, 0x82, 0xf4, 0xa8, 0xbb, 0x7a, 0x9e,
0x9c, 0x03, 0x9a, 0xc0, 0x46, 0x99, 0x6a, 0xe8, 0xd3, 0xf5, 0x24, 0x4c, 0x33, 0xf6, 0x6e, 0x63, 0xbb, 0x1f, 0xdc, 0x32, 0x25, 0x83, 0x77, 0x16, 0x34, 0x86, 0x01, 0x99, 0x44, 0x4c, 0xc8, 0xc0,
0xe9, 0xf0, 0x04, 0xcc, 0xb7, 0x31, 0x09, 0xd9, 0x69, 0x14, 0x07, 0x68, 0x17, 0xee, 0x2d, 0x8d, 0x13, 0x68, 0x0f, 0x1a, 0x39, 0x48, 0xd1, 0xe3, 0x15, 0x48, 0x27, 0x91, 0x9f, 0xdc, 0xda, 0x07,
0xff, 0x87, 0xc3, 0x8f, 0x70, 0xbf, 0x94, 0x49, 0x80, 0xbf, 0x4d, 0x9c, 0xb3, 0xbb, 0x81, 0x79, 0x34, 0x82, 0xf5, 0x22, 0xd5, 0xd0, 0x87, 0xab, 0x49, 0x98, 0x44, 0xec, 0xdd, 0xc5, 0xd2, 0xc1,
0xbb, 0xf5, 0x0e, 0x06, 0x2f, 0xb3, 0xef, 0xd3, 0x9a, 0xfc, 0x87, 0xe5, 0xf9, 0x3f, 0x01, 0x00, 0x29, 0xd8, 0x27, 0x9c, 0x44, 0xe2, 0x8c, 0xf1, 0x19, 0xda, 0x85, 0x07, 0x0b, 0xe5, 0xbf, 0xe1,
0x00, 0xff, 0xff, 0xfc, 0xf3, 0x6d, 0x5e, 0xc1, 0x0c, 0x00, 0x00, 0xf0, 0x23, 0x3c, 0x2c, 0x44, 0x52, 0xe0, 0x6f, 0x11, 0xef, 0xfc, 0x7e, 0x60, 0xde, 0x6a, 0xbe,
0x05, 0xf7, 0xeb, 0xf4, 0x7c, 0x5c, 0xd3, 0x7f, 0x87, 0x5e, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff,
0x4e, 0x49, 0x76, 0x89, 0x1f, 0x0d, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
......
...@@ -142,7 +142,7 @@ github.com/gosimple/slug ...@@ -142,7 +142,7 @@ github.com/gosimple/slug
# github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4 # github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4
github.com/grafana/grafana-plugin-model/go/datasource github.com/grafana/grafana-plugin-model/go/datasource
github.com/grafana/grafana-plugin-model/go/renderer github.com/grafana/grafana-plugin-model/go/renderer
# github.com/grafana/grafana-plugin-sdk-go v0.33.0 # github.com/grafana/grafana-plugin-sdk-go v0.35.0
github.com/grafana/grafana-plugin-sdk-go/backend/grpcplugin github.com/grafana/grafana-plugin-sdk-go/backend/grpcplugin
github.com/grafana/grafana-plugin-sdk-go/data github.com/grafana/grafana-plugin-sdk-go/data
github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2 github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment