InfluxDB: Update feature toggle retrieval (#110941)
* Update how feature toggles are retrieved * Update wire * Update Influx registration * Update test
This commit is contained in:
@@ -227,7 +227,7 @@ func NewPlugin(pluginID string, cfg *setting.Cfg, httpClientProvider *httpclient
|
||||
case Graphite:
|
||||
svc = graphite.ProvideService(httpClientProvider, tracer)
|
||||
case InfluxDB:
|
||||
svc = influxdb.ProvideService(httpClientProvider, features)
|
||||
svc = influxdb.ProvideService(httpClientProvider)
|
||||
case Loki:
|
||||
svc = loki.ProvideService(httpClientProvider, tracer)
|
||||
case OpenTSDB:
|
||||
|
||||
@@ -385,7 +385,7 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api
|
||||
elasticsearchService := elasticsearch.ProvideService(httpclientProvider)
|
||||
tracer := otelTracer()
|
||||
graphiteService := graphite.ProvideService(httpclientProvider, tracer)
|
||||
influxdbService := influxdb.ProvideService(httpclientProvider, featureToggles)
|
||||
influxdbService := influxdb.ProvideService(httpclientProvider)
|
||||
lokiService := loki.ProvideService(httpclientProvider, tracer)
|
||||
opentsdbService := opentsdb.ProvideService(httpclientProvider)
|
||||
prometheusService := prometheus.ProvideService(httpclientProvider)
|
||||
@@ -976,7 +976,7 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac
|
||||
elasticsearchService := elasticsearch.ProvideService(httpclientProvider)
|
||||
tracer := otelTracer()
|
||||
graphiteService := graphite.ProvideService(httpclientProvider, tracer)
|
||||
influxdbService := influxdb.ProvideService(httpclientProvider, featureToggles)
|
||||
influxdbService := influxdb.ProvideService(httpclientProvider)
|
||||
lokiService := loki.ProvideService(httpclientProvider, tracer)
|
||||
opentsdbService := opentsdb.ProvideService(httpclientProvider)
|
||||
prometheusService := prometheus.ProvideService(httpclientProvider)
|
||||
|
||||
@@ -155,7 +155,7 @@ func TestIntegrationPluginManager(t *testing.T) {
|
||||
cm := cloudmonitoring.ProvideService(hcp)
|
||||
es := elasticsearch.ProvideService(hcp)
|
||||
grap := graphite.ProvideService(hcp, tracer)
|
||||
idb := influxdb.ProvideService(hcp, features)
|
||||
idb := influxdb.ProvideService(hcp)
|
||||
lk := loki.ProvideService(hcp, tracer)
|
||||
otsdb := opentsdb.ProvideService(hcp)
|
||||
pr := prometheus.ProvideService(hcp)
|
||||
|
||||
@@ -10,7 +10,6 @@ import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/tracing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/flux"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/fsql"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/influxql"
|
||||
@@ -37,7 +36,7 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque
|
||||
case influxVersionFlux:
|
||||
return CheckFluxHealth(ctx, dsInfo, req)
|
||||
case influxVersionInfluxQL:
|
||||
return CheckInfluxQLHealth(ctx, dsInfo, req, s.features)
|
||||
return CheckInfluxQLHealth(ctx, dsInfo, req)
|
||||
case influxVersionSQL:
|
||||
return CheckSQLHealth(ctx, dsInfo, req)
|
||||
default:
|
||||
@@ -80,7 +79,7 @@ func CheckFluxHealth(ctx context.Context, dsInfo *models.DatasourceInfo,
|
||||
return getHealthCheckMessage(logger, "", errors.New("error getting flux query buckets"))
|
||||
}
|
||||
|
||||
func CheckInfluxQLHealth(ctx context.Context, dsInfo *models.DatasourceInfo, req *backend.CheckHealthRequest, features featuremgmt.FeatureToggles) (*backend.CheckHealthResult, error) {
|
||||
func CheckInfluxQLHealth(ctx context.Context, dsInfo *models.DatasourceInfo, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) {
|
||||
logger := logger.FromContext(ctx)
|
||||
tracer := tracing.DefaultTracer()
|
||||
resp, err := influxql.Query(ctx, tracer, dsInfo, &backend.QueryDataRequest{
|
||||
@@ -93,7 +92,7 @@ func CheckInfluxQLHealth(ctx context.Context, dsInfo *models.DatasourceInfo, req
|
||||
JSON: []byte(`{"query": "SHOW measurements", "rawQuery": true}`),
|
||||
},
|
||||
},
|
||||
}, features)
|
||||
})
|
||||
if err != nil {
|
||||
return getHealthCheckMessage(logger, "error performing influxQL query", err)
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/tracing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/flux"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/fsql"
|
||||
|
||||
@@ -23,14 +22,12 @@ import (
|
||||
var logger log.Logger = log.New("tsdb.influxdb")
|
||||
|
||||
type Service struct {
|
||||
im instancemgmt.InstanceManager
|
||||
features featuremgmt.FeatureToggles
|
||||
im instancemgmt.InstanceManager
|
||||
}
|
||||
|
||||
func ProvideService(httpClient httpclient.Provider, features featuremgmt.FeatureToggles) *Service {
|
||||
func ProvideService(httpClient httpclient.Provider) *Service {
|
||||
return &Service{
|
||||
im: datasource.NewInstanceManager(newInstanceSettings(httpClient)),
|
||||
features: features,
|
||||
im: datasource.NewInstanceManager(newInstanceSettings(httpClient)),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +112,7 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest)
|
||||
case influxVersionFlux:
|
||||
return flux.Query(ctx, dsInfo, *req)
|
||||
case influxVersionInfluxQL:
|
||||
return influxql.Query(ctx, tracer, dsInfo, req, s.features)
|
||||
return influxql.Query(ctx, tracer, dsInfo, req)
|
||||
case influxVersionSQL:
|
||||
return fsql.Query(ctx, dsInfo, *req)
|
||||
default:
|
||||
|
||||
@@ -16,7 +16,6 @@ import (
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/influxql/buffered"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/influxql/querydata"
|
||||
@@ -34,16 +33,18 @@ var (
|
||||
glog = log.New("tsdb.influx_influxql")
|
||||
)
|
||||
|
||||
func Query(ctx context.Context, tracer trace.Tracer, dsInfo *models.DatasourceInfo, req *backend.QueryDataRequest, features featuremgmt.FeatureToggles) (*backend.QueryDataResponse, error) {
|
||||
func Query(ctx context.Context, tracer trace.Tracer, dsInfo *models.DatasourceInfo, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) {
|
||||
logger := glog.FromContext(ctx)
|
||||
response := backend.NewQueryDataResponse()
|
||||
var err error
|
||||
|
||||
config := backend.GrafanaConfigFromContext(ctx)
|
||||
|
||||
// We are testing running of queries in parallel behind feature flag
|
||||
if features.IsEnabled(ctx, featuremgmt.FlagInfluxdbRunQueriesInParallel) {
|
||||
if config.FeatureToggles().IsEnabled("influxdbRunQueriesInParallel") {
|
||||
concurrentQueryCount, err := req.PluginContext.GrafanaConfig.ConcurrentQueryCount()
|
||||
if err != nil {
|
||||
logger.Debug(fmt.Sprintf("Concurrent Query Count read/parse error: %v", err), featuremgmt.FlagInfluxdbRunQueriesInParallel)
|
||||
logger.Debug(fmt.Sprintf("Concurrent Query Count read/parse error: %v", err), "influxdbRunQueriesInParallel")
|
||||
concurrentQueryCount = 10
|
||||
}
|
||||
|
||||
@@ -82,7 +83,7 @@ func Query(ctx context.Context, tracer trace.Tracer, dsInfo *models.DatasourceIn
|
||||
return nil
|
||||
}
|
||||
|
||||
resp, err := execute(ctx, tracer, dsInfo, logger, query, request, features.IsEnabled(ctx, featuremgmt.FlagInfluxqlStreamingParser))
|
||||
resp, err := execute(ctx, tracer, dsInfo, logger, query, request, config.FeatureToggles().IsEnabled("influxqlStreamingParser"))
|
||||
|
||||
responseLock.Lock()
|
||||
defer responseLock.Unlock()
|
||||
@@ -127,7 +128,7 @@ func Query(ctx context.Context, tracer trace.Tracer, dsInfo *models.DatasourceIn
|
||||
continue
|
||||
}
|
||||
|
||||
resp, err := execute(ctx, tracer, dsInfo, logger, query, request, features.IsEnabled(ctx, featuremgmt.FlagInfluxqlStreamingParser))
|
||||
resp, err := execute(ctx, tracer, dsInfo, logger, query, request, config.FeatureToggles().IsEnabled("influxqlStreamingParser"))
|
||||
|
||||
if err != nil {
|
||||
response.Responses[query.RefID] = backend.DataResponse{Error: err}
|
||||
|
||||
@@ -14,7 +14,6 @@ import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/httpclient"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/tsdb/influxdb/models"
|
||||
)
|
||||
|
||||
@@ -118,8 +117,5 @@ func GetMockService(version string, rt RoundTripper) *Service {
|
||||
version: version,
|
||||
fakeRoundTripper: rt,
|
||||
},
|
||||
|
||||
// featuremgmt.FlagInfluxqlStreamingParser: false
|
||||
features: featuremgmt.WithFeatures(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user