Skip to content

Commit

Permalink
fix: minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
nityanandagohain committed Feb 4, 2025
1 parent be989bb commit de7dc96
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 62 deletions.
75 changes: 45 additions & 30 deletions ee/featureflag/zeus/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,69 +4,84 @@ import "go.signoz.io/signoz/pkg/featureflag"

var basePlanFeatures = []featureflag.Feature{
{
Name: featureflag.FeatureSSO,
IsActive: false,
Name: featureflag.FeatureSSO,
IsActive: false,
IsChangeable: false,
},
{
Name: featureflag.FeatureOSS,
IsActive: false,
Name: featureflag.FeatureOSS,
IsActive: false,
IsChangeable: false,
},
{
Name: featureflag.FeatureUseSpanMetrics,
IsActive: true,
Name: featureflag.FeatureUseSpanMetrics,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureGateway,
IsActive: false,
Name: featureflag.FeatureGateway,
IsActive: false,
IsChangeable: false,
},
{
Name: featureflag.FeaturePremiumSupport,
IsActive: false,
Name: featureflag.FeaturePremiumSupport,
IsActive: false,
IsChangeable: false,
},
{
Name: featureflag.FeatureHostsInfraMonitoring,
IsActive: false,
Name: featureflag.FeatureHostsInfraMonitoring,
IsActive: false,
IsChangeable: false,
},
}

var proPlanFeatures = []featureflag.Feature{
{
Name: featureflag.FeatureSSO,
IsActive: true,
Name: featureflag.FeatureSSO,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureCustomMetricsFunc,
IsActive: true,
Name: featureflag.FeatureCustomMetricsFunc,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureAlertChannelMsTeams,
IsActive: true,
Name: featureflag.FeatureAlertChannelMsTeams,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureGateway,
IsActive: true,
Name: featureflag.FeatureGateway,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeaturePremiumSupport,
IsActive: true,
Name: featureflag.FeaturePremiumSupport,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureAnomalyDetection,
IsActive: true,
Name: featureflag.FeatureAnomalyDetection,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureHostsInfraMonitoring,
IsActive: true,
Name: featureflag.FeatureHostsInfraMonitoring,
IsActive: true,
IsChangeable: false,
},
}

var enterprisePlanFeatures = []featureflag.Feature{
{
Name: featureflag.FeatureOnboarding,
IsActive: true,
Name: featureflag.FeatureOnboarding,
IsActive: true,
IsChangeable: false,
},
{
Name: featureflag.FeatureChatSupport,
IsActive: true,
Name: featureflag.FeatureChatSupport,
IsActive: true,
IsChangeable: false,
},
}
12 changes: 5 additions & 7 deletions ee/query-service/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,10 @@ import (

"go.opentelemetry.io/otel/sdk/resource"
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.signoz.io/signoz/ee/featureflag/zeus"
"go.signoz.io/signoz/ee/query-service/app"
"go.signoz.io/signoz/pkg/config"
"go.signoz.io/signoz/pkg/config/envprovider"
"go.signoz.io/signoz/pkg/config/fileprovider"
"go.signoz.io/signoz/pkg/factory"
"go.signoz.io/signoz/pkg/featureflag/base"
"go.signoz.io/signoz/pkg/query-service/auth"
baseconst "go.signoz.io/signoz/pkg/query-service/constants"
"go.signoz.io/signoz/pkg/query-service/version"
Expand Down Expand Up @@ -152,10 +149,11 @@ func main() {
zap.L().Fatal("Failed to create config", zap.Error(err))
}
providerConfig := signoz.NewProviderConfig()
providerConfig.FeatureFlagProviderFactories = factory.MustNewNamedMap(
base.NewFactory(),
zeus.NewFactory(),
)
// TODO: Uncomment when we want to use zeus for feature flags
// providerConfig.FeatureFlagProviderFactories = factory.MustNewNamedMap(
// base.NewFactory(),
// zeus.NewFactory(),
// )
signoz, err := signoz.New(context.Background(), config, providerConfig)
if err != nil {
zap.L().Fatal("Failed to create signoz struct", zap.Error(err))
Expand Down
33 changes: 24 additions & 9 deletions pkg/featureflag/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,32 @@ func (fm *FeatureFlagManager) RefreshFeatureFlags() {
return
}
for _, orgId := range orgIds {
for _, provider := range fm.providers {
wg.Add(1)
go func(orgId string, provider FeatureFlag) {
defer wg.Done()
wg.Add(1)
go func(orgId string) {
defer wg.Done()
// Create a map to store features by their flag or identifier
featureMap := make(map[string]Feature)

for _, provider := range fm.providers {
features := provider.GetFeatures(orgId)
err := fm.storage.SaveFeatureFlags(context.Background(), orgId, features)
if err != nil {
fm.logger.Error("Failed to save features", "orgId", orgId, "error", err)
for _, feature := range features {
// Assuming feature has a method or field `Flag` to identify it
featureMap[feature.Name.String()] = feature
}
}(orgId, provider)
}
}

// Convert the map back to a slice
mergedFeatures := make([]Feature, 0, len(featureMap))
for _, feature := range featureMap {
mergedFeatures = append(mergedFeatures, feature)
}

// Save the merged features
err := fm.storage.SaveFeatureFlags(context.Background(), orgId, mergedFeatures)
if err != nil {
fm.logger.Error("Failed to save features", "orgId", orgId, "error", err)
}
}(orgId)
}
wg.Wait()
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/query-service/utils/testutils.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func NewTestSqliteDB(t *testing.T) (testDB *sqlx.DB, testDBFilePath string) {
sqlmigration.NewAddIntegrationsFactory(),
sqlmigration.NewAddLicensesFactory(),
sqlmigration.NewAddPatsFactory(),
sqlmigration.NewAddFeaturesFactory(),
sqlmigration.NewAddFeatureFlagFactory(),
),
)
if err != nil {
Expand Down
1 change: 1 addition & 0 deletions pkg/signoz/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ func NewProviderConfig() ProviderConfig {
sqlmigration.NewAddIntegrationsFactory(),
sqlmigration.NewAddLicensesFactory(),
sqlmigration.NewAddPatsFactory(),
sqlmigration.NewAddFeatureFlagFactory(),
),
TelemetryStoreProviderFactories: factory.MustNewNamedMap(
clickhousetelemetrystore.NewFactory(hook),
Expand Down
24 changes: 12 additions & 12 deletions pkg/signoz/signoz.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,19 +100,19 @@ func New(
return nil, err
}

featureFlagProviders, err := factory.NewFromNamedMap(ctx, providerSettings, config.FeatureFlag, providerConfig.FeatureFlagProviderFactories)
if err != nil {
return nil, err
}
featureFlagManager := featureflag.NewFeatureFlagManager(ctx, instrumentation.Logger(), sqlstore.BunDB(), featureFlagProviders...)
// move this to zeus package later.
featureFlagManager.Start(ctx)
// TODO: uncomment when we want use it
// featureFlagProviders, err := factory.NewFromNamedMap(ctx, providerSettings, config.FeatureFlag, providerConfig.FeatureFlagProviderFactories)
// if err != nil {
// return nil, err
// }
// featureFlagManager := featureflag.NewFeatureFlagManager(ctx, instrumentation.Logger(), sqlstore.BunDB(), featureFlagProviders...)
// featureFlagManager.Start(ctx)

return &SigNoz{
Cache: cache,
Web: web,
SQLStore: sqlstore,
TelemetryStore: telemetrystore,
FeatureFlagManager: featureFlagManager,
Cache: cache,
Web: web,
SQLStore: sqlstore,
TelemetryStore: telemetrystore,
// FeatureFlagManager: featureFlagManager,
}, nil
}
6 changes: 3 additions & 3 deletions pkg/sqlmigration/010_add_features.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ import (

type addFeatures struct{}

func NewAddFeaturesFactory() factory.ProviderFactory[SQLMigration, Config] {
return factory.NewProviderFactory(factory.MustNewName("add_features"), newAddFeatures)
func NewAddFeatureFlagFactory() factory.ProviderFactory[SQLMigration, Config] {
return factory.NewProviderFactory(factory.MustNewName("add_feature_flag"), newAddFeatureFlag)
}

func newAddFeatures(_ context.Context, _ factory.ProviderSettings, _ Config) (SQLMigration, error) {
func newAddFeatureFlag(_ context.Context, _ factory.ProviderSettings, _ Config) (SQLMigration, error) {
return &addFeatures{}, nil
}

Expand Down

0 comments on commit de7dc96

Please sign in to comment.