diff --git a/pkg/promlib/library.go b/pkg/promlib/library.go index cbee4a19ffc..f1438ed585e 100644 --- a/pkg/promlib/library.go +++ b/pkg/promlib/library.go @@ -67,8 +67,10 @@ func newInstanceSettings(httpClientProvider *sdkhttpclient.Provider, log log.Log return nil, fmt.Errorf("error creating http client: %v", err) } + featureToggles := backend.GrafanaConfigFromContext(ctx).FeatureToggles() + // New version using custom client and better response parsing - qd, err := querydata.New(httpClient, settings, log) + qd, err := querydata.New(httpClient, settings, log, featureToggles) if err != nil { return nil, err } diff --git a/pkg/promlib/querydata/request.go b/pkg/promlib/querydata/request.go index 20126f0b98f..7739bf46222 100644 --- a/pkg/promlib/querydata/request.go +++ b/pkg/promlib/querydata/request.go @@ -46,12 +46,14 @@ type QueryData struct { URL string TimeInterval string exemplarSampler func() exemplar.Sampler + featureToggles backend.FeatureToggles } func New( httpClient *http.Client, settings backend.DataSourceInstanceSettings, plog log.Logger, + featureToggles backend.FeatureToggles, ) (*QueryData, error) { jsonData, err := utils.GetJsonData(settings) if err != nil { @@ -86,6 +88,7 @@ func New( ID: settings.ID, URL: settings.URL, exemplarSampler: exemplarSampler, + featureToggles: featureToggles, }, nil } @@ -98,9 +101,8 @@ func (s *QueryData) Execute(ctx context.Context, req *backend.QueryDataRequest) } var ( - cfg = backend.GrafanaConfigFromContext(ctx) - hasPromQLScopeFeatureFlag = cfg.FeatureToggles().IsEnabled("promQLScope") - hasPrometheusRunQueriesInParallel = cfg.FeatureToggles().IsEnabled("prometheusRunQueriesInParallel") + hasPromQLScopeFeatureFlag = s.featureToggles.IsEnabled("promQLScope") + hasPrometheusRunQueriesInParallel = s.featureToggles.IsEnabled("prometheusRunQueriesInParallel") ) if hasPrometheusRunQueriesInParallel { diff --git a/pkg/promlib/querydata/request_test.go b/pkg/promlib/querydata/request_test.go index bfbde8dfb96..d462b82d693 100644 --- a/pkg/promlib/querydata/request_test.go +++ b/pkg/promlib/querydata/request_test.go @@ -472,7 +472,7 @@ func setup() (*testContext, error) { return nil, err } - queryData, _ := querydata.New(httpClient, settings, log.New()) + queryData, _ := querydata.New(httpClient, settings, log.New(), backend.FeatureToggles{}) return &testContext{ httpProvider: httpProvider,