This is an automated email from the ASF dual-hosted git repository.

miao pushed a commit to branch grafana_plugin
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/grafana_plugin by this push:
     new c36ee96c131 Fixed the issue where the Grafana plugin does not display 
data when there is no time value
c36ee96c131 is described below

commit c36ee96c131686dd934a50f1714c66ee1aed3215
Author: luke.miao <[email protected]>
AuthorDate: Thu Jul 25 16:33:22 2024 +0800

    Fixed the issue where the Grafana plugin does not display data when there 
is no time value
---
 iotdb-connector/grafana-plugin/go.mod              | 92 +++++++++++++++++++++-
 .../grafana-plugin/pkg/plugin/plugin.go            | 28 +++----
 2 files changed, 101 insertions(+), 19 deletions(-)

diff --git a/iotdb-connector/grafana-plugin/go.mod 
b/iotdb-connector/grafana-plugin/go.mod
index e6d4a76021b..90dad2ad93a 100644
--- a/iotdb-connector/grafana-plugin/go.mod
+++ b/iotdb-connector/grafana-plugin/go.mod
@@ -15,9 +15,95 @@
 
 module github.com/grafana/grafana-starter-datasource-backend
 
-go 1.16
+go 1.21
+
+toolchain go1.21.1
+
+require github.com/grafana/grafana-plugin-sdk-go v0.240.0
 
 require (
-       github.com/grafana/grafana-plugin-sdk-go v0.139.0
-       github.com/magefile/mage v1.13.0 // indirect
+       github.com/BurntSushi/toml v1.3.2 // indirect
+       github.com/apache/arrow/go/v15 v15.0.2 // indirect
+       github.com/beorn7/perks v1.0.1 // indirect
+       github.com/cenkalti/backoff/v4 v4.3.0 // indirect
+       github.com/cespare/xxhash/v2 v2.3.0 // indirect
+       github.com/cheekybits/genny v1.0.0 // indirect
+       github.com/chromedp/cdproto v0.0.0-20240709201219-e202069cc16b // 
indirect
+       github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
+       github.com/elazarl/goproxy v0.0.0-20240618083138-03be62527ccb // 
indirect
+       github.com/fatih/color v1.15.0 // indirect
+       github.com/getkin/kin-openapi v0.126.0 // indirect
+       github.com/go-logr/logr v1.4.2 // indirect
+       github.com/go-logr/stdr v1.2.2 // indirect
+       github.com/go-openapi/jsonpointer v0.21.0 // indirect
+       github.com/go-openapi/swag v0.23.0 // indirect
+       github.com/goccy/go-json v0.10.2 // indirect
+       github.com/gogo/protobuf v1.3.2 // indirect
+       github.com/golang/protobuf v1.5.4 // indirect
+       github.com/google/flatbuffers v23.5.26+incompatible // indirect
+       github.com/google/go-cmp v0.6.0 // indirect
+       github.com/google/uuid v1.6.0 // indirect
+       github.com/gorilla/mux v1.8.1 // indirect
+       github.com/grafana/otel-profiling-go v0.5.1 // indirect
+       github.com/grafana/pyroscope-go/godeltaprof v0.1.7 // indirect
+       github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus 
v1.0.1 // indirect
+       github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect
+       github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
+       github.com/hashicorp/go-hclog v1.6.3 // indirect
+       github.com/hashicorp/go-plugin v1.6.1 // indirect
+       github.com/hashicorp/yamux v0.1.1 // indirect
+       github.com/invopop/yaml v0.3.1 // indirect
+       github.com/josharian/intern v1.0.0 // indirect
+       github.com/json-iterator/go v1.1.12 // indirect
+       github.com/klauspost/compress v1.17.3 // indirect
+       github.com/klauspost/cpuid/v2 v2.2.5 // indirect
+       github.com/magefile/mage v1.15.0 // indirect
+       github.com/mailru/easyjson v0.7.7 // indirect
+       github.com/mattetti/filebuffer v1.0.1 // indirect
+       github.com/mattn/go-colorable v0.1.13 // indirect
+       github.com/mattn/go-isatty v0.0.19 // indirect
+       github.com/mattn/go-runewidth v0.0.9 // indirect
+       github.com/mitchellh/go-testing-interface v1.14.1 // indirect
+       github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 
indirect
+       github.com/modern-go/reflect2 v1.0.2 // indirect
+       github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
+       github.com/oklog/run v1.1.0 // indirect
+       github.com/olekukonko/tablewriter v0.0.5 // indirect
+       github.com/perimeterx/marshmallow v1.1.5 // indirect
+       github.com/pierrec/lz4/v4 v4.1.18 // indirect
+       github.com/prometheus/client_golang v1.19.1 // indirect
+       github.com/prometheus/client_model v0.6.1 // indirect
+       github.com/prometheus/common v0.54.0 // indirect
+       github.com/prometheus/procfs v0.14.0 // indirect
+       github.com/russross/blackfriday/v2 v2.1.0 // indirect
+       github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8 // indirect
+       github.com/unknwon/com v1.0.1 // indirect
+       github.com/unknwon/log v0.0.0-20150304194804-e617c87089d3 // indirect
+       github.com/urfave/cli v1.22.15 // indirect
+       github.com/zeebo/xxh3 v1.0.2 // indirect
+       
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.51.0 // indirect
+       
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace 
v0.53.0 // indirect
+       go.opentelemetry.io/contrib/propagators/jaeger v1.28.0 // indirect
+       go.opentelemetry.io/contrib/samplers/jaegerremote v0.20.0 // indirect
+       go.opentelemetry.io/otel v1.28.0 // indirect
+       go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 // indirect
+       go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0 
// indirect
+       go.opentelemetry.io/otel/metric v1.28.0 // indirect
+       go.opentelemetry.io/otel/sdk v1.28.0 // indirect
+       go.opentelemetry.io/otel/trace v1.28.0 // indirect
+       go.opentelemetry.io/proto/otlp v1.3.1 // indirect
+       golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
+       golang.org/x/mod v0.17.0 // indirect
+       golang.org/x/net v0.26.0 // indirect
+       golang.org/x/sync v0.7.0 // indirect
+       golang.org/x/sys v0.22.0 // indirect
+       golang.org/x/text v0.16.0 // indirect
+       golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
+       golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20240701130421-f6361c86f094 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240701130421-f6361c86f094 // indirect
+       google.golang.org/grpc v1.64.1 // indirect
+       google.golang.org/protobuf v1.34.2 // indirect
+       gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
+       gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff --git a/iotdb-connector/grafana-plugin/pkg/plugin/plugin.go 
b/iotdb-connector/grafana-plugin/pkg/plugin/plugin.go
index 370a2a5d854..a8a7eac7215 100644
--- a/iotdb-connector/grafana-plugin/pkg/plugin/plugin.go
+++ b/iotdb-connector/grafana-plugin/pkg/plugin/plugin.go
@@ -52,12 +52,12 @@ var (
 )
 
 // ApacheIoTDBDatasource creates a new datasource instance.
-func ApacheIoTDBDatasource(d backend.DataSourceInstanceSettings) 
(instancemgmt.Instance, error) {
+func ApacheIoTDBDatasource(ctx context.Context, d 
backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
        var dm dataSourceModel
        if err := json.Unmarshal(d.JSONData, &dm); err != nil {
                return nil, err
        }
-       ops, err := d.HTTPClientOptions()
+       ops, err := d.HTTPClientOptions(ctx)
        if err != nil {
                return nil, fmt.Errorf("http client options: %w", err)
        }
@@ -292,24 +292,20 @@ func (d *IoTDBDataSource) query(cxt context.Context, pCtx 
backend.PluginContext,
        // create data frame response.
        frame := data.NewFrame("response")
        for i := 0; i < len(queryDataResp.Expressions); i++ {
-               if queryDataResp.Timestamps == nil || 
len(queryDataResp.Timestamps) == 0 {
-                       times := make([]time.Time, 1)
-                       tmp := make([]float64, 1)
+               if queryDataResp.Timestamps != nil && 
len(queryDataResp.Timestamps) > 0 {
+                       times := make([]time.Time, 
len(queryDataResp.Timestamps))
+                       for c := 0; c < len(queryDataResp.Timestamps); c++ {
+                               times[c] = time.Unix(0, 
queryDataResp.Timestamps[c]*1000000)
+                       }
+               }
+               if queryDataResp.Values != nil && len(queryDataResp.Values) > 0 
{
+                       values := recoverType(queryDataResp.Values[i])
                        frame.Fields = append(frame.Fields,
                                data.NewField("time", nil, times),
-                               data.NewField(queryDataResp.Expressions[i], 
nil, tmp),
+                               data.NewField(queryDataResp.Expressions[i], 
nil, values),
                        )
-                       continue
                }
-               times := make([]time.Time, len(queryDataResp.Timestamps))
-               for c := 0; c < len(queryDataResp.Timestamps); c++ {
-                       times[c] = 
time.Unix(0,queryDataResp.Timestamps[c]*1000000)
-               }
-               values := recoverType(queryDataResp.Values[i])
-               frame.Fields = append(frame.Fields,
-                       data.NewField("time", nil, times),
-                       data.NewField(queryDataResp.Expressions[i], nil, 
values),
-               )
+
        }
 
        response.Frames = append(response.Frames, frame)

Reply via email to