mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 20:29:04 +08:00
fix(querier): remove ff (#7531)
This commit is contained in:
parent
65ac277074
commit
2330420c0d
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user