diff --git a/ee/query-service/anomaly/seasonal.go b/ee/query-service/anomaly/seasonal.go index ea71a3a749..9fbd52a8b8 100644 --- a/ee/query-service/anomaly/seasonal.go +++ b/ee/query-service/anomaly/seasonal.go @@ -38,12 +38,6 @@ func WithKeyGenerator[T BaseProvider](keyGenerator cache.KeyGenerator) GenericPr } } -func WithFeatureLookup[T BaseProvider](ff interfaces.FeatureLookup) GenericProviderOption[T] { - return func(p T) { - p.GetBaseSeasonalProvider().ff = ff - } -} - func WithReader[T BaseProvider](reader interfaces.Reader) GenericProviderOption[T] { return func(p T) { p.GetBaseSeasonalProvider().reader = reader diff --git a/ee/query-service/app/api/queryrange.go b/ee/query-service/app/api/queryrange.go index 6a9c49ba4d..feed8008e1 100644 --- a/ee/query-service/app/api/queryrange.go +++ b/ee/query-service/app/api/queryrange.go @@ -88,28 +88,24 @@ func (aH *APIHandler) queryRangeV4(w http.ResponseWriter, r *http.Request) { anomaly.WithCache[*anomaly.WeeklyProvider](aH.opts.Cache), anomaly.WithKeyGenerator[*anomaly.WeeklyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.WeeklyProvider](aH.opts.DataConnector), - anomaly.WithFeatureLookup[*anomaly.WeeklyProvider](aH.opts.FeatureFlags), ) case anomaly.SeasonalityDaily: provider = anomaly.NewDailyProvider( anomaly.WithCache[*anomaly.DailyProvider](aH.opts.Cache), anomaly.WithKeyGenerator[*anomaly.DailyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.DailyProvider](aH.opts.DataConnector), - anomaly.WithFeatureLookup[*anomaly.DailyProvider](aH.opts.FeatureFlags), ) case anomaly.SeasonalityHourly: provider = anomaly.NewHourlyProvider( anomaly.WithCache[*anomaly.HourlyProvider](aH.opts.Cache), anomaly.WithKeyGenerator[*anomaly.HourlyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.HourlyProvider](aH.opts.DataConnector), - anomaly.WithFeatureLookup[*anomaly.HourlyProvider](aH.opts.FeatureFlags), ) default: provider = anomaly.NewDailyProvider( anomaly.WithCache[*anomaly.DailyProvider](aH.opts.Cache), anomaly.WithKeyGenerator[*anomaly.DailyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.DailyProvider](aH.opts.DataConnector), - anomaly.WithFeatureLookup[*anomaly.DailyProvider](aH.opts.FeatureFlags), ) } anomalies, err := provider.GetAnomalies(r.Context(), &anomaly.GetAnomaliesRequest{Params: queryRangeParams}) diff --git a/ee/query-service/app/server.go b/ee/query-service/app/server.go index e4daf18a16..6cb3b6dc07 100644 --- a/ee/query-service/app/server.go +++ b/ee/query-service/app/server.go @@ -172,7 +172,6 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) { reader, c, serverOptions.DisableRules, - lm, serverOptions.UseLogsNewSchema, serverOptions.UseTraceNewSchema, serverOptions.SigNoz.Alertmanager, @@ -532,7 +531,6 @@ func makeRulesManager( ch baseint.Reader, cache cache.Cache, disableRules bool, - fm baseint.FeatureLookup, useLogsNewSchema bool, useTraceNewSchema bool, alertmanager alertmanager.Alertmanager, @@ -549,7 +547,6 @@ func makeRulesManager( Context: context.Background(), Logger: zap.L(), DisableRules: disableRules, - FeatureFlags: fm, Reader: ch, Cache: cache, EvalDelay: baseconst.GetEvalDelay(), diff --git a/ee/query-service/rules/anomaly.go b/ee/query-service/rules/anomaly.go index 7478c65321..c0d099a18b 100644 --- a/ee/query-service/rules/anomaly.go +++ b/ee/query-service/rules/anomaly.go @@ -53,7 +53,6 @@ type AnomalyRule struct { func NewAnomalyRule( id string, p *baserules.PostableRule, - featureFlags interfaces.FeatureLookup, reader interfaces.Reader, cache cache.Cache, opts ...baserules.RuleOption, @@ -89,10 +88,9 @@ func NewAnomalyRule( zap.L().Info("using seasonality", zap.String("seasonality", t.seasonality.String())) querierOptsV2 := querierV2.QuerierOptions{ - Reader: reader, - Cache: cache, - KeyGenerator: queryBuilder.NewKeyGenerator(), - FeatureLookup: featureFlags, + Reader: reader, + Cache: cache, + KeyGenerator: queryBuilder.NewKeyGenerator(), } t.querierV2 = querierV2.NewQuerier(querierOptsV2) @@ -102,21 +100,18 @@ func NewAnomalyRule( anomaly.WithCache[*anomaly.HourlyProvider](cache), anomaly.WithKeyGenerator[*anomaly.HourlyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.HourlyProvider](reader), - anomaly.WithFeatureLookup[*anomaly.HourlyProvider](featureFlags), ) } else if t.seasonality == anomaly.SeasonalityDaily { t.provider = anomaly.NewDailyProvider( anomaly.WithCache[*anomaly.DailyProvider](cache), anomaly.WithKeyGenerator[*anomaly.DailyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.DailyProvider](reader), - anomaly.WithFeatureLookup[*anomaly.DailyProvider](featureFlags), ) } else if t.seasonality == anomaly.SeasonalityWeekly { t.provider = anomaly.NewWeeklyProvider( anomaly.WithCache[*anomaly.WeeklyProvider](cache), anomaly.WithKeyGenerator[*anomaly.WeeklyProvider](queryBuilder.NewKeyGenerator()), anomaly.WithReader[*anomaly.WeeklyProvider](reader), - anomaly.WithFeatureLookup[*anomaly.WeeklyProvider](featureFlags), ) } return &t, nil diff --git a/ee/query-service/rules/manager.go b/ee/query-service/rules/manager.go index 686fe5019c..e690376244 100644 --- a/ee/query-service/rules/manager.go +++ b/ee/query-service/rules/manager.go @@ -23,7 +23,6 @@ func PrepareTaskFunc(opts baserules.PrepareTaskOptions) (baserules.Task, error) tr, err := baserules.NewThresholdRule( ruleId, opts.Rule, - opts.FF, opts.Reader, opts.UseLogsNewSchema, opts.UseTraceNewSchema, @@ -66,7 +65,6 @@ func PrepareTaskFunc(opts baserules.PrepareTaskOptions) (baserules.Task, error) ar, err := NewAnomalyRule( ruleId, opts.Rule, - opts.FF, opts.Reader, opts.Cache, baserules.WithEvalDelay(opts.ManagerOpts.EvalDelay), @@ -123,7 +121,6 @@ func TestNotification(opts baserules.PrepareTestRuleOptions) (int, *basemodel.Ap rule, err = baserules.NewThresholdRule( alertname, parsedRule, - opts.FF, opts.Reader, opts.UseLogsNewSchema, opts.UseTraceNewSchema, @@ -160,7 +157,6 @@ func TestNotification(opts baserules.PrepareTestRuleOptions) (int, *basemodel.Ap rule, err = NewAnomalyRule( alertname, parsedRule, - opts.FF, opts.Reader, opts.Cache, baserules.WithSendAlways(), diff --git a/pkg/query-service/app/server.go b/pkg/query-service/app/server.go index 37ebbc710d..23f5a252f9 100644 --- a/pkg/query-service/app/server.go +++ b/pkg/query-service/app/server.go @@ -151,7 +151,6 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) { reader, c, serverOptions.DisableRules, - fm, serverOptions.UseLogsNewSchema, serverOptions.UseTraceNewSchema, serverOptions.SigNoz.SQLStore, @@ -483,7 +482,6 @@ func makeRulesManager( ch interfaces.Reader, cache cache.Cache, disableRules bool, - fm interfaces.FeatureLookup, useLogsNewSchema bool, useTraceNewSchema bool, sqlstore sqlstore.SQLStore, @@ -499,7 +497,6 @@ func makeRulesManager( Context: context.Background(), Logger: zap.L(), DisableRules: disableRules, - FeatureFlags: fm, Reader: ch, Cache: cache, EvalDelay: constants.GetEvalDelay(), diff --git a/pkg/query-service/rules/manager.go b/pkg/query-service/rules/manager.go index 434c99dc74..1b875a31bf 100644 --- a/pkg/query-service/rules/manager.go +++ b/pkg/query-service/rules/manager.go @@ -36,7 +36,6 @@ type PrepareTaskOptions struct { Logger *zap.Logger Reader interfaces.Reader Cache cache.Cache - FF interfaces.FeatureLookup ManagerOpts *ManagerOptions NotifyFunc NotifyFunc SQLStore sqlstore.SQLStore @@ -50,7 +49,6 @@ type PrepareTestRuleOptions struct { Logger *zap.Logger Reader interfaces.Reader Cache cache.Cache - FF interfaces.FeatureLookup ManagerOpts *ManagerOptions NotifyFunc NotifyFunc SQLStore sqlstore.SQLStore @@ -89,7 +87,6 @@ type ManagerOptions struct { Logger *zap.Logger ResendDelay time.Duration DisableRules bool - FeatureFlags interfaces.FeatureLookup Reader interfaces.Reader Cache cache.Cache @@ -114,9 +111,7 @@ type Manager struct { // datastore to store alert definitions ruleDB RuleDB - logger *zap.Logger - - featureFlags interfaces.FeatureLookup + logger *zap.Logger reader interfaces.Reader cache cache.Cache prepareTaskFunc func(opts PrepareTaskOptions) (Task, error) @@ -156,7 +151,6 @@ func defaultPrepareTaskFunc(opts PrepareTaskOptions) (Task, error) { tr, err := NewThresholdRule( ruleId, opts.Rule, - opts.FF, opts.Reader, opts.UseLogsNewSchema, opts.UseTraceNewSchema, @@ -214,7 +208,6 @@ func NewManager(o *ManagerOptions) (*Manager, error) { opts: o, block: make(chan struct{}), logger: o.Logger, - featureFlags: o.FeatureFlags, reader: o.Reader, cache: o.Cache, prepareTaskFunc: o.PrepareTaskFunc, @@ -391,7 +384,6 @@ func (m *Manager) editTask(rule *PostableRule, taskName string) error { Logger: m.logger, Reader: m.reader, Cache: m.cache, - FF: m.featureFlags, ManagerOpts: m.opts, NotifyFunc: m.prepareNotifyFunc(), SQLStore: m.sqlstore, @@ -575,7 +567,6 @@ func (m *Manager) addTask(rule *PostableRule, taskName string) error { Logger: m.logger, Reader: m.reader, Cache: m.cache, - FF: m.featureFlags, ManagerOpts: m.opts, NotifyFunc: m.prepareNotifyFunc(), SQLStore: m.sqlstore, @@ -954,7 +945,6 @@ func (m *Manager) TestNotification(ctx context.Context, ruleStr string) (int, *m Logger: m.logger, Reader: m.reader, Cache: m.cache, - FF: m.featureFlags, ManagerOpts: m.opts, NotifyFunc: m.prepareTestNotifyFunc(), SQLStore: m.sqlstore, diff --git a/pkg/query-service/rules/test_notification.go b/pkg/query-service/rules/test_notification.go index 5826eb4d76..8a742d097d 100644 --- a/pkg/query-service/rules/test_notification.go +++ b/pkg/query-service/rules/test_notification.go @@ -46,7 +46,6 @@ func defaultTestNotification(opts PrepareTestRuleOptions) (int, *model.ApiError) rule, err = NewThresholdRule( alertname, parsedRule, - opts.FF, opts.Reader, opts.UseLogsNewSchema, opts.UseTraceNewSchema, diff --git a/pkg/query-service/rules/threshold_rule.go b/pkg/query-service/rules/threshold_rule.go index 5370f4933a..68d147180c 100644 --- a/pkg/query-service/rules/threshold_rule.go +++ b/pkg/query-service/rules/threshold_rule.go @@ -58,7 +58,6 @@ type ThresholdRule struct { func NewThresholdRule( id string, p *PostableRule, - featureFlags interfaces.FeatureLookup, reader interfaces.Reader, useLogsNewSchema bool, useTraceNewSchema bool, @@ -82,7 +81,6 @@ func NewThresholdRule( Reader: reader, Cache: nil, KeyGenerator: queryBuilder.NewKeyGenerator(), - FeatureLookup: featureFlags, UseLogsNewSchema: useLogsNewSchema, UseTraceNewSchema: useTraceNewSchema, } @@ -91,7 +89,6 @@ func NewThresholdRule( Reader: reader, Cache: nil, KeyGenerator: queryBuilder.NewKeyGenerator(), - FeatureLookup: featureFlags, UseLogsNewSchema: useLogsNewSchema, UseTraceNewSchema: useTraceNewSchema, } diff --git a/pkg/query-service/rules/threshold_rule_test.go b/pkg/query-service/rules/threshold_rule_test.go index a46149607f..59fbcd36e9 100644 --- a/pkg/query-service/rules/threshold_rule_test.go +++ b/pkg/query-service/rules/threshold_rule_test.go @@ -18,7 +18,6 @@ import ( "github.com/SigNoz/signoz/pkg/query-service/app/clickhouseReader" "github.com/SigNoz/signoz/pkg/query-service/common" - "github.com/SigNoz/signoz/pkg/query-service/featureManager" v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3" "github.com/SigNoz/signoz/pkg/query-service/utils/labels" "github.com/stretchr/testify/assert" @@ -796,13 +795,12 @@ func TestThresholdRuleShouldAlert(t *testing.T) { }, } - fm := featureManager.StartManager() for idx, c := range cases { postableRule.RuleCondition.CompareOp = CompareOp(c.compareOp) postableRule.RuleCondition.MatchType = MatchType(c.matchType) postableRule.RuleCondition.Target = &c.target - rule, err := NewThresholdRule("69", &postableRule, fm, nil, true, true, WithEvalDelay(2*time.Minute)) + rule, err := NewThresholdRule("69", &postableRule, nil, true, true, WithEvalDelay(2*time.Minute)) if err != nil { assert.NoError(t, err) } @@ -889,9 +887,8 @@ func TestPrepareLinksToLogs(t *testing.T) { SelectedQuery: "A", }, } - fm := featureManager.StartManager() - rule, err := NewThresholdRule("69", &postableRule, fm, nil, true, true, WithEvalDelay(2*time.Minute)) + rule, err := NewThresholdRule("69", &postableRule, nil, true, true, WithEvalDelay(2*time.Minute)) if err != nil { assert.NoError(t, err) } @@ -931,9 +928,8 @@ func TestPrepareLinksToTraces(t *testing.T) { SelectedQuery: "A", }, } - fm := featureManager.StartManager() - rule, err := NewThresholdRule("69", &postableRule, fm, nil, true, true, WithEvalDelay(2*time.Minute)) + rule, err := NewThresholdRule("69", &postableRule, nil, true, true, WithEvalDelay(2*time.Minute)) if err != nil { assert.NoError(t, err) } @@ -1003,13 +999,12 @@ func TestThresholdRuleLabelNormalization(t *testing.T) { }, } - fm := featureManager.StartManager() for idx, c := range cases { postableRule.RuleCondition.CompareOp = CompareOp(c.compareOp) postableRule.RuleCondition.MatchType = MatchType(c.matchType) postableRule.RuleCondition.Target = &c.target - rule, err := NewThresholdRule("69", &postableRule, fm, nil, true, true, WithEvalDelay(2*time.Minute)) + rule, err := NewThresholdRule("69", &postableRule, nil, true, true, WithEvalDelay(2*time.Minute)) if err != nil { assert.NoError(t, err) } @@ -1060,9 +1055,8 @@ func TestThresholdRuleEvalDelay(t *testing.T) { }, } - fm := featureManager.StartManager() for idx, c := range cases { - rule, err := NewThresholdRule("69", &postableRule, fm, nil, true, true) // no eval delay + rule, err := NewThresholdRule("69", &postableRule, nil, true, true) // no eval delay if err != nil { assert.NoError(t, err) } @@ -1109,9 +1103,8 @@ func TestThresholdRuleClickHouseTmpl(t *testing.T) { }, } - fm := featureManager.StartManager() for idx, c := range cases { - rule, err := NewThresholdRule("69", &postableRule, fm, nil, true, true, WithEvalDelay(2*time.Minute)) + rule, err := NewThresholdRule("69", &postableRule, nil, true, true, WithEvalDelay(2*time.Minute)) if err != nil { assert.NoError(t, err) } @@ -1158,7 +1151,6 @@ func TestThresholdRuleUnitCombinations(t *testing.T) { }, }, } - fm := featureManager.StartManager() telemetryStore := telemetrystoretest.New(telemetrystore.Config{}, &queryMatcherAny{}) cols := make([]cmock.ColumnType, 0) @@ -1252,7 +1244,7 @@ func TestThresholdRuleUnitCombinations(t *testing.T) { readerCache, err := memorycache.New(context.Background(), factorytest.NewSettings(), cache.Config{Provider: "memory", Memory: cache.Memory{TTL: DefaultFrequency}}) require.NoError(t, err) reader := clickhouseReader.NewReaderFromClickhouseConnection(options, nil, telemetryStore, prometheustest.New(instrumentationtest.New().Logger(), prometheus.Config{}), "", true, true, time.Duration(time.Second), readerCache) - rule, err := NewThresholdRule("69", &postableRule, fm, reader, true, true) + rule, err := NewThresholdRule("69", &postableRule, reader, true, true) rule.TemporalityMap = map[string]map[v3.Temporality]bool{ "signoz_calls_total": { v3.Delta: true, @@ -1309,7 +1301,6 @@ func TestThresholdRuleNoData(t *testing.T) { AlertOnAbsent: true, }, } - fm := featureManager.StartManager() telemetryStore := telemetrystoretest.New(telemetrystore.Config{}, &queryMatcherAny{}) cols := make([]cmock.ColumnType, 0) @@ -1350,7 +1341,7 @@ func TestThresholdRuleNoData(t *testing.T) { options := clickhouseReader.NewOptions("", "", "archiveNamespace") reader := clickhouseReader.NewReaderFromClickhouseConnection(options, nil, telemetryStore, prometheustest.New(instrumentationtest.New().Logger(), prometheus.Config{}), "", true, true, time.Duration(time.Second), readerCache) - rule, err := NewThresholdRule("69", &postableRule, fm, reader, true, true) + rule, err := NewThresholdRule("69", &postableRule, reader, true, true) rule.TemporalityMap = map[string]map[v3.Temporality]bool{ "signoz_calls_total": { v3.Delta: true, @@ -1411,7 +1402,6 @@ func TestThresholdRuleTracesLink(t *testing.T) { }, }, } - fm := featureManager.StartManager() telemetryStore := telemetrystoretest.New(telemetrystore.Config{}, &queryMatcherAny{}) metaCols := make([]cmock.ColumnType, 0) @@ -1455,7 +1445,7 @@ func TestThresholdRuleTracesLink(t *testing.T) { options := clickhouseReader.NewOptions("", "", "archiveNamespace") reader := clickhouseReader.NewReaderFromClickhouseConnection(options, nil, telemetryStore, prometheustest.New(instrumentationtest.New().Logger(), prometheus.Config{}), "", true, true, time.Duration(time.Second), nil) - rule, err := NewThresholdRule("69", &postableRule, fm, reader, true, true) + rule, err := NewThresholdRule("69", &postableRule, reader, true, true) rule.TemporalityMap = map[string]map[v3.Temporality]bool{ "signoz_calls_total": { v3.Delta: true, @@ -1521,7 +1511,6 @@ func TestThresholdRuleLogsLink(t *testing.T) { }, }, } - fm := featureManager.StartManager() telemetryStore := telemetrystoretest.New(telemetrystore.Config{}, &queryMatcherAny{}) attrMetaCols := make([]cmock.ColumnType, 0) @@ -1577,7 +1566,7 @@ func TestThresholdRuleLogsLink(t *testing.T) { options := clickhouseReader.NewOptions("", "", "archiveNamespace") reader := clickhouseReader.NewReaderFromClickhouseConnection(options, nil, telemetryStore, prometheustest.New(instrumentationtest.New().Logger(), prometheus.Config{}), "", true, true, time.Duration(time.Second), nil) - rule, err := NewThresholdRule("69", &postableRule, fm, reader, true, true) + rule, err := NewThresholdRule("69", &postableRule, reader, true, true) rule.TemporalityMap = map[string]map[v3.Temporality]bool{ "signoz_calls_total": { v3.Delta: true, @@ -1653,7 +1642,7 @@ func TestThresholdRuleShiftBy(t *testing.T) { }, } - rule, err := NewThresholdRule("69", &postableRule, nil, nil, true, true) + rule, err := NewThresholdRule("69", &postableRule, nil, true, true) if err != nil { assert.NoError(t, err) }