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:
ismail simsek
2025-03-14 13:54:19 +01:00
committed by GitHub
parent d72b664981
commit 399df82f0b
3 changed files with 9 additions and 5 deletions
+5 -3
View File
@@ -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 {
+1 -1
View File
@@ -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,