Prometheus: Read feature toggles once when creating plugin instance (#102131)
* initialize an instance with feature toggles * read grafana config only once * use feature toggles directly
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user