fix(querier): remove ff (#7531)

This commit is contained in:
Vibhu Pandey 2025-04-05 23:38:06 +05:30 committed by GitHub
parent 65ac277074
commit 2330420c0d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 34 additions and 59 deletions

View File

@ -28,11 +28,10 @@ func NewDailyProvider(opts ...GenericProviderOption[*DailyProvider]) *DailyProvi
} }
dp.querierV2 = querierV2.NewQuerier(querierV2.QuerierOptions{ dp.querierV2 = querierV2.NewQuerier(querierV2.QuerierOptions{
Reader: dp.reader, Reader: dp.reader,
Cache: dp.cache, Cache: dp.cache,
KeyGenerator: queryBuilder.NewKeyGenerator(), KeyGenerator: queryBuilder.NewKeyGenerator(),
FluxInterval: dp.fluxInterval, FluxInterval: dp.fluxInterval,
FeatureLookup: dp.ff,
}) })
return dp return dp

View File

@ -28,11 +28,10 @@ func NewHourlyProvider(opts ...GenericProviderOption[*HourlyProvider]) *HourlyPr
} }
hp.querierV2 = querierV2.NewQuerier(querierV2.QuerierOptions{ hp.querierV2 = querierV2.NewQuerier(querierV2.QuerierOptions{
Reader: hp.reader, Reader: hp.reader,
Cache: hp.cache, Cache: hp.cache,
KeyGenerator: queryBuilder.NewKeyGenerator(), KeyGenerator: queryBuilder.NewKeyGenerator(),
FluxInterval: hp.fluxInterval, FluxInterval: hp.fluxInterval,
FeatureLookup: hp.ff,
}) })
return hp return hp

View File

@ -50,7 +50,6 @@ type BaseSeasonalProvider struct {
fluxInterval time.Duration fluxInterval time.Duration
cache cache.Cache cache cache.Cache
keyGenerator cache.KeyGenerator keyGenerator cache.KeyGenerator
ff interfaces.FeatureLookup
} }
func (p *BaseSeasonalProvider) getQueryParams(req *GetAnomaliesRequest) *anomalyQueryParams { func (p *BaseSeasonalProvider) getQueryParams(req *GetAnomaliesRequest) *anomalyQueryParams {

View File

@ -27,11 +27,10 @@ func NewWeeklyProvider(opts ...GenericProviderOption[*WeeklyProvider]) *WeeklyPr
} }
wp.querierV2 = querierV2.NewQuerier(querierV2.QuerierOptions{ wp.querierV2 = querierV2.NewQuerier(querierV2.QuerierOptions{
Reader: wp.reader, Reader: wp.reader,
Cache: wp.cache, Cache: wp.cache,
KeyGenerator: queryBuilder.NewKeyGenerator(), KeyGenerator: queryBuilder.NewKeyGenerator(),
FluxInterval: wp.fluxInterval, FluxInterval: wp.fluxInterval,
FeatureLookup: wp.ff,
}) })
return wp return wp

View File

@ -200,7 +200,6 @@ func NewAPIHandler(opts APIHandlerOpts) (*APIHandler, error) {
Cache: opts.Cache, Cache: opts.Cache,
KeyGenerator: queryBuilder.NewKeyGenerator(), KeyGenerator: queryBuilder.NewKeyGenerator(),
FluxInterval: opts.FluxInterval, FluxInterval: opts.FluxInterval,
FeatureLookup: opts.FeatureFlags,
UseLogsNewSchema: opts.UseLogsNewSchema, UseLogsNewSchema: opts.UseLogsNewSchema,
UseTraceNewSchema: opts.UseTraceNewSchema, UseTraceNewSchema: opts.UseTraceNewSchema,
} }
@ -210,7 +209,6 @@ func NewAPIHandler(opts APIHandlerOpts) (*APIHandler, error) {
Cache: opts.Cache, Cache: opts.Cache,
KeyGenerator: queryBuilder.NewKeyGenerator(), KeyGenerator: queryBuilder.NewKeyGenerator(),
FluxInterval: opts.FluxInterval, FluxInterval: opts.FluxInterval,
FeatureLookup: opts.FeatureFlags,
UseLogsNewSchema: opts.UseLogsNewSchema, UseLogsNewSchema: opts.UseLogsNewSchema,
UseTraceNewSchema: opts.UseTraceNewSchema, UseTraceNewSchema: opts.UseTraceNewSchema,
} }
@ -279,7 +277,7 @@ func NewAPIHandler(opts APIHandlerOpts) (*APIHandler, error) {
BuildTraceQuery: tracesQueryBuilder, BuildTraceQuery: tracesQueryBuilder,
BuildLogQuery: logsQueryBuilder, BuildLogQuery: logsQueryBuilder,
} }
aH.queryBuilder = queryBuilder.NewQueryBuilder(builderOpts, aH.featureFlags) aH.queryBuilder = queryBuilder.NewQueryBuilder(builderOpts)
// check if at least one user is created // check if at least one user is created
hasUsers, err := aH.appDao.GetUsersWithOpts(context.Background(), 1) hasUsers, err := aH.appDao.GetUsersWithOpts(context.Background(), 1)

View File

@ -42,8 +42,7 @@ type querier struct {
fluxInterval time.Duration fluxInterval time.Duration
builder *queryBuilder.QueryBuilder builder *queryBuilder.QueryBuilder
featureLookUp interfaces.FeatureLookup
// used for testing // used for testing
// TODO(srikanthccv): remove this once we have a proper mock // TODO(srikanthccv): remove this once we have a proper mock
@ -59,11 +58,10 @@ type querier struct {
} }
type QuerierOptions struct { type QuerierOptions struct {
Reader interfaces.Reader Reader interfaces.Reader
Cache cache.Cache Cache cache.Cache
KeyGenerator cache.KeyGenerator KeyGenerator cache.KeyGenerator
FluxInterval time.Duration FluxInterval time.Duration
FeatureLookup interfaces.FeatureLookup
// used for testing // used for testing
TestingMode bool TestingMode bool
@ -96,8 +94,7 @@ func NewQuerier(opts QuerierOptions) interfaces.Querier {
BuildTraceQuery: tracesQueryBuilder, BuildTraceQuery: tracesQueryBuilder,
BuildLogQuery: logsQueryBuilder, BuildLogQuery: logsQueryBuilder,
BuildMetricQuery: metricsV3.PrepareMetricQuery, BuildMetricQuery: metricsV3.PrepareMetricQuery,
}, opts.FeatureLookup), }),
featureLookUp: opts.FeatureLookup,
testingMode: opts.TestingMode, testingMode: opts.TestingMode,
returnedSeries: opts.ReturnedSeries, returnedSeries: opts.ReturnedSeries,

View File

@ -17,7 +17,6 @@ import (
"github.com/SigNoz/signoz/pkg/query-service/app/queryBuilder" "github.com/SigNoz/signoz/pkg/query-service/app/queryBuilder"
tracesV3 "github.com/SigNoz/signoz/pkg/query-service/app/traces/v3" tracesV3 "github.com/SigNoz/signoz/pkg/query-service/app/traces/v3"
"github.com/SigNoz/signoz/pkg/query-service/cache/inmemory" "github.com/SigNoz/signoz/pkg/query-service/cache/inmemory"
"github.com/SigNoz/signoz/pkg/query-service/featureManager"
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3" v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
"github.com/SigNoz/signoz/pkg/query-service/querycache" "github.com/SigNoz/signoz/pkg/query-service/querycache"
"github.com/SigNoz/signoz/pkg/query-service/utils" "github.com/SigNoz/signoz/pkg/query-service/utils"
@ -1383,7 +1382,6 @@ func Test_querier_runWindowBasedListQuery(t *testing.T) {
queryBuilder.QueryBuilderOptions{ queryBuilder.QueryBuilderOptions{
BuildTraceQuery: tracesV3.PrepareTracesQuery, BuildTraceQuery: tracesV3.PrepareTracesQuery,
}, },
featureManager.StartManager(),
), ),
} }
// Update query parameters // Update query parameters

View File

@ -42,8 +42,7 @@ type querier struct {
fluxInterval time.Duration fluxInterval time.Duration
builder *queryBuilder.QueryBuilder builder *queryBuilder.QueryBuilder
featureLookUp interfaces.FeatureLookup
// used for testing // used for testing
// TODO(srikanthccv): remove this once we have a proper mock // TODO(srikanthccv): remove this once we have a proper mock
@ -58,11 +57,10 @@ type querier struct {
} }
type QuerierOptions struct { type QuerierOptions struct {
Reader interfaces.Reader Reader interfaces.Reader
Cache cache.Cache Cache cache.Cache
KeyGenerator cache.KeyGenerator KeyGenerator cache.KeyGenerator
FluxInterval time.Duration FluxInterval time.Duration
FeatureLookup interfaces.FeatureLookup
// used for testing // used for testing
TestingMode bool TestingMode bool
@ -96,8 +94,7 @@ func NewQuerier(opts QuerierOptions) interfaces.Querier {
BuildTraceQuery: tracesQueryBuilder, BuildTraceQuery: tracesQueryBuilder,
BuildLogQuery: logsQueryBuilder, BuildLogQuery: logsQueryBuilder,
BuildMetricQuery: metricsV4.PrepareMetricQuery, BuildMetricQuery: metricsV4.PrepareMetricQuery,
}, opts.FeatureLookup), }),
featureLookUp: opts.FeatureLookup,
testingMode: opts.TestingMode, testingMode: opts.TestingMode,
returnedSeries: opts.ReturnedSeries, returnedSeries: opts.ReturnedSeries,

View File

@ -17,7 +17,6 @@ import (
"github.com/SigNoz/signoz/pkg/query-service/app/queryBuilder" "github.com/SigNoz/signoz/pkg/query-service/app/queryBuilder"
tracesV3 "github.com/SigNoz/signoz/pkg/query-service/app/traces/v3" tracesV3 "github.com/SigNoz/signoz/pkg/query-service/app/traces/v3"
"github.com/SigNoz/signoz/pkg/query-service/cache/inmemory" "github.com/SigNoz/signoz/pkg/query-service/cache/inmemory"
"github.com/SigNoz/signoz/pkg/query-service/featureManager"
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3" v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
"github.com/SigNoz/signoz/pkg/query-service/querycache" "github.com/SigNoz/signoz/pkg/query-service/querycache"
"github.com/SigNoz/signoz/pkg/query-service/utils" "github.com/SigNoz/signoz/pkg/query-service/utils"
@ -1437,7 +1436,6 @@ func Test_querier_runWindowBasedListQuery(t *testing.T) {
queryBuilder.QueryBuilderOptions{ queryBuilder.QueryBuilderOptions{
BuildTraceQuery: tracesV3.PrepareTracesQuery, BuildTraceQuery: tracesV3.PrepareTracesQuery,
}, },
featureManager.StartManager(),
), ),
} }
// Update query parameters // Update query parameters

View File

@ -56,10 +56,9 @@ type QueryBuilderOptions struct {
BuildMetricQuery prepareMetricQueryFunc BuildMetricQuery prepareMetricQueryFunc
} }
func NewQueryBuilder(options QueryBuilderOptions, featureFlags interfaces.FeatureLookup) *QueryBuilder { func NewQueryBuilder(options QueryBuilderOptions) *QueryBuilder {
return &QueryBuilder{ return &QueryBuilder{
options: options, options: options,
featureFlags: featureFlags,
} }
} }

View File

@ -8,7 +8,6 @@ import (
logsV4 "github.com/SigNoz/signoz/pkg/query-service/app/logs/v4" logsV4 "github.com/SigNoz/signoz/pkg/query-service/app/logs/v4"
metricsv3 "github.com/SigNoz/signoz/pkg/query-service/app/metrics/v3" metricsv3 "github.com/SigNoz/signoz/pkg/query-service/app/metrics/v3"
"github.com/SigNoz/signoz/pkg/query-service/constants" "github.com/SigNoz/signoz/pkg/query-service/constants"
"github.com/SigNoz/signoz/pkg/query-service/featureManager"
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3" v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
@ -51,8 +50,7 @@ func TestBuildQueryWithMultipleQueriesAndFormula(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildMetricQuery: metricsv3.PrepareMetricQuery, BuildMetricQuery: metricsv3.PrepareMetricQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
queries, err := qb.PrepareQueries(q) queries, err := qb.PrepareQueries(q)
@ -93,8 +91,7 @@ func TestBuildQueryWithIncorrectQueryRef(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildMetricQuery: metricsv3.PrepareMetricQuery, BuildMetricQuery: metricsv3.PrepareMetricQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
_, err := qb.PrepareQueries(q) _, err := qb.PrepareQueries(q)
@ -168,8 +165,7 @@ func TestBuildQueryWithThreeOrMoreQueriesRefAndFormula(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildMetricQuery: metricsv3.PrepareMetricQuery, BuildMetricQuery: metricsv3.PrepareMetricQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
queries, err := qb.PrepareQueries(q) queries, err := qb.PrepareQueries(q)
@ -338,8 +334,7 @@ func TestBuildQueryWithThreeOrMoreQueriesRefAndFormula(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildMetricQuery: metricsv3.PrepareMetricQuery, BuildMetricQuery: metricsv3.PrepareMetricQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
queries, err := qb.PrepareQueries(q) queries, err := qb.PrepareQueries(q)
require.Contains(t, queries["F1"], "SELECT A.`os.type` as `os.type`, A.`ts` as `ts`, A.value + B.value as value FROM (SELECT `os.type`, toStartOfInterval(toDateTime(intDiv(unix_milli, 1000)), INTERVAL 60 SECOND) as ts, avg(value) as value FROM signoz_metrics.distributed_samples_v4 INNER JOIN (SELECT DISTINCT JSONExtractString(labels, 'os.type') as `os.type`, fingerprint FROM signoz_metrics.time_series_v4_1day WHERE metric_name IN ['system.memory.usage'] AND temporality = '' AND __normalized = true AND unix_milli >= 1734998400000 AND unix_milli < 1735637880000 AND JSONExtractString(labels, 'os.type') = 'linux') as filtered_time_series USING fingerprint WHERE metric_name IN ['system.memory.usage'] AND unix_milli >= 1735036080000 AND unix_milli < 1735637880000 GROUP BY `os.type`, ts ORDER BY `os.type` ASC, ts) as A INNER JOIN (SELECT * FROM (SELECT `os.type`, toStartOfInterval(toDateTime(intDiv(unix_milli, 1000)), INTERVAL 60 SECOND) as ts, sum(value) as value FROM signoz_metrics.distributed_samples_v4 INNER JOIN (SELECT DISTINCT JSONExtractString(labels, 'os.type') as `os.type`, fingerprint FROM signoz_metrics.time_series_v4_1day WHERE metric_name IN ['system.network.io'] AND temporality = '' AND __normalized = true AND unix_milli >= 1734998400000 AND unix_milli < 1735637880000) as filtered_time_series USING fingerprint WHERE metric_name IN ['system.network.io'] AND unix_milli >= 1735036020000 AND unix_milli < 1735637880000 GROUP BY `os.type`, ts ORDER BY `os.type` ASC, ts) HAVING value > 4) as B ON A.`os.type` = B.`os.type` AND A.`ts` = B.`ts`") require.Contains(t, queries["F1"], "SELECT A.`os.type` as `os.type`, A.`ts` as `ts`, A.value + B.value as value FROM (SELECT `os.type`, toStartOfInterval(toDateTime(intDiv(unix_milli, 1000)), INTERVAL 60 SECOND) as ts, avg(value) as value FROM signoz_metrics.distributed_samples_v4 INNER JOIN (SELECT DISTINCT JSONExtractString(labels, 'os.type') as `os.type`, fingerprint FROM signoz_metrics.time_series_v4_1day WHERE metric_name IN ['system.memory.usage'] AND temporality = '' AND __normalized = true AND unix_milli >= 1734998400000 AND unix_milli < 1735637880000 AND JSONExtractString(labels, 'os.type') = 'linux') as filtered_time_series USING fingerprint WHERE metric_name IN ['system.memory.usage'] AND unix_milli >= 1735036080000 AND unix_milli < 1735637880000 GROUP BY `os.type`, ts ORDER BY `os.type` ASC, ts) as A INNER JOIN (SELECT * FROM (SELECT `os.type`, toStartOfInterval(toDateTime(intDiv(unix_milli, 1000)), INTERVAL 60 SECOND) as ts, sum(value) as value FROM signoz_metrics.distributed_samples_v4 INNER JOIN (SELECT DISTINCT JSONExtractString(labels, 'os.type') as `os.type`, fingerprint FROM signoz_metrics.time_series_v4_1day WHERE metric_name IN ['system.network.io'] AND temporality = '' AND __normalized = true AND unix_milli >= 1734998400000 AND unix_milli < 1735637880000) as filtered_time_series USING fingerprint WHERE metric_name IN ['system.network.io'] AND unix_milli >= 1735036020000 AND unix_milli < 1735637880000 GROUP BY `os.type`, ts ORDER BY `os.type` ASC, ts) HAVING value > 4) as B ON A.`os.type` = B.`os.type` AND A.`ts` = B.`ts`")
@ -498,8 +493,7 @@ func TestDeltaQueryBuilder(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildMetricQuery: metricsv3.PrepareMetricQuery, BuildMetricQuery: metricsv3.PrepareMetricQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
queries, err := qb.PrepareQueries(c.query) queries, err := qb.PrepareQueries(c.query)
require.NoError(t, err) require.NoError(t, err)
@ -703,8 +697,7 @@ func TestLogsQueryWithFormula(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildLogQuery: logsV3.PrepareLogsQuery, BuildLogQuery: logsV3.PrepareLogsQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
for _, test := range testLogsWithFormula { for _, test := range testLogsWithFormula {
t.Run(test.Name, func(t *testing.T) { t.Run(test.Name, func(t *testing.T) {
@ -914,8 +907,7 @@ func TestLogsQueryWithFormulaV2(t *testing.T) {
qbOptions := QueryBuilderOptions{ qbOptions := QueryBuilderOptions{
BuildLogQuery: logsV4.PrepareLogsQuery, BuildLogQuery: logsV4.PrepareLogsQuery,
} }
fm := featureManager.StartManager() qb := NewQueryBuilder(qbOptions)
qb := NewQueryBuilder(qbOptions, fm)
for _, test := range testLogsWithFormulaV2 { for _, test := range testLogsWithFormulaV2 {
t.Run(test.Name, func(t *testing.T) { t.Run(test.Name, func(t *testing.T) {