1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-31 00:16:47 +01:00

chore: remove variant metrics flag (#4042)

This commit is contained in:
Jaanus Sellin 2023-06-21 15:55:21 +03:00 committed by GitHub
parent 3763e1b24d
commit 71d242a299
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 27 additions and 61 deletions

View File

@ -48,7 +48,6 @@ export interface IFlags {
demo?: boolean; demo?: boolean;
groupRootRoles?: boolean; groupRootRoles?: boolean;
googleAuthEnabled?: boolean; googleAuthEnabled?: boolean;
variantMetrics?: boolean;
strategyImprovements?: boolean; strategyImprovements?: boolean;
disableBulkToggle?: boolean; disableBulkToggle?: boolean;
segmentContextFieldUsage?: boolean; segmentContextFieldUsage?: boolean;

View File

@ -97,7 +97,6 @@ exports[`should create default config 1`] = `
"segmentContextFieldUsage": false, "segmentContextFieldUsage": false,
"strategyImprovements": false, "strategyImprovements": false,
"strictSchemaValidation": false, "strictSchemaValidation": false,
"variantMetrics": false,
}, },
}, },
"flagResolver": FlagResolver { "flagResolver": FlagResolver {
@ -132,7 +131,6 @@ exports[`should create default config 1`] = `
"segmentContextFieldUsage": false, "segmentContextFieldUsage": false,
"strategyImprovements": false, "strategyImprovements": false,
"strictSchemaValidation": false, "strictSchemaValidation": false,
"variantMetrics": false,
}, },
"externalResolver": { "externalResolver": {
"getVariant": [Function], "getVariant": [Function],

View File

@ -178,17 +178,15 @@ export class ClientMetricsStoreV2 implements IClientMetricsStoreV2 {
const query = `${insert.toString()} ON CONFLICT (feature_name, app_name, environment, timestamp) DO UPDATE SET "yes" = "client_metrics_env"."yes" + EXCLUDED.yes, "no" = "client_metrics_env"."no" + EXCLUDED.no`; const query = `${insert.toString()} ON CONFLICT (feature_name, app_name, environment, timestamp) DO UPDATE SET "yes" = "client_metrics_env"."yes" + EXCLUDED.yes, "no" = "client_metrics_env"."no" + EXCLUDED.no`;
await this.db.raw(query); await this.db.raw(query);
if (this.flagResolver.isEnabled('variantMetrics')) { const variantRows = spreadVariants(metrics).map(toVariantRow);
const variantRows = spreadVariants(metrics).map(toVariantRow); if (variantRows.length > 0) {
if (variantRows.length > 0) { const insertVariants = this.db<ClientMetricsEnvVariantTable>(
const insertVariants = this.db<ClientMetricsEnvVariantTable>( TABLE_VARIANTS,
TABLE_VARIANTS, )
) .insert(variantRows)
.insert(variantRows) .toQuery();
.toQuery(); const variantsQuery = `${insertVariants.toString()} ON CONFLICT (feature_name, app_name, environment, timestamp, variant) DO UPDATE SET "count" = "client_metrics_env_variants"."count" + EXCLUDED.count`;
const variantsQuery = `${insertVariants.toString()} ON CONFLICT (feature_name, app_name, environment, timestamp, variant) DO UPDATE SET "count" = "client_metrics_env_variants"."count" + EXCLUDED.count`; await this.db.raw(variantsQuery);
await this.db.raw(variantsQuery);
}
} }
} }
@ -196,40 +194,24 @@ export class ClientMetricsStoreV2 implements IClientMetricsStoreV2 {
featureName: string, featureName: string,
hoursBack: number = 24, hoursBack: number = 24,
): Promise<IClientMetricsEnv[]> { ): Promise<IClientMetricsEnv[]> {
if (this.flagResolver.isEnabled('variantMetrics')) { const rows = await this.db<ClientMetricsEnvTable>(TABLE)
const rows = await this.db<ClientMetricsEnvTable>(TABLE) .select([`${TABLE}.*`, 'variant', 'count'])
.select([`${TABLE}.*`, 'variant', 'count']) .leftJoin(TABLE_VARIANTS, function () {
.leftJoin(TABLE_VARIANTS, function () { this.on(
this.on( `${TABLE_VARIANTS}.feature_name`,
`${TABLE_VARIANTS}.feature_name`, `${TABLE}.feature_name`,
`${TABLE}.feature_name`, )
) .on(`${TABLE_VARIANTS}.app_name`, `${TABLE}.app_name`)
.on(`${TABLE_VARIANTS}.app_name`, `${TABLE}.app_name`) .on(`${TABLE_VARIANTS}.environment`, `${TABLE}.environment`)
.on( .on(`${TABLE_VARIANTS}.timestamp`, `${TABLE}.timestamp`);
`${TABLE_VARIANTS}.environment`, })
`${TABLE}.environment`, .where(`${TABLE}.feature_name`, featureName)
) .andWhereRaw(
.on( `${TABLE}.timestamp >= NOW() - INTERVAL '${hoursBack} hours'`,
`${TABLE_VARIANTS}.timestamp`, );
`${TABLE}.timestamp`,
);
})
.where(`${TABLE}.feature_name`, featureName)
.andWhereRaw(
`${TABLE}.timestamp >= NOW() - INTERVAL '${hoursBack} hours'`,
);
const tokens = rows.reduce(variantRowReducer, {}); const tokens = rows.reduce(variantRowReducer, {});
return Object.values(tokens); return Object.values(tokens);
} else {
const rows = await this.db<ClientMetricsEnvTable>(TABLE)
.select('*')
.where({ feature_name: featureName })
.andWhereRaw(
`timestamp >= NOW() - INTERVAL '${hoursBack} hours'`,
);
return rows.map(fromRow);
}
} }
async getSeenAppsForFeatureToggle( async getSeenAppsForFeatureToggle(

View File

@ -20,7 +20,6 @@ export type IFlagKey =
| 'demo' | 'demo'
| 'strategyImprovements' | 'strategyImprovements'
| 'googleAuthEnabled' | 'googleAuthEnabled'
| 'variantMetrics'
| 'disableBulkToggle' | 'disableBulkToggle'
| 'experimentalExtendedTelemetry' | 'experimentalExtendedTelemetry'
| 'segmentContextFieldUsage' | 'segmentContextFieldUsage'
@ -95,10 +94,6 @@ const flags: IFlags = {
process.env.GOOGLE_AUTH_ENABLED, process.env.GOOGLE_AUTH_ENABLED,
false, false,
), ),
variantMetrics: parseEnvVarBoolean(
process.env.UNLEASH_VARIANT_METRICS,
false,
),
experimentalExtendedTelemetry: parseEnvVarBoolean( experimentalExtendedTelemetry: parseEnvVarBoolean(
process.env.UNLEASH_EXPERIMENTAL_EXTENDED_TELEMETRY, process.env.UNLEASH_EXPERIMENTAL_EXTENDED_TELEMETRY,
false, false,

View File

@ -37,7 +37,6 @@ process.nextTick(async () => {
embedProxyFrontend: true, embedProxyFrontend: true,
anonymiseEventLog: false, anonymiseEventLog: false,
responseTimeWithAppNameKillSwitch: false, responseTimeWithAppNameKillSwitch: false,
variantMetrics: true,
strategyImprovements: true, strategyImprovements: true,
segmentContextFieldUsage: true, segmentContextFieldUsage: true,
advancedPlayground: true, advancedPlayground: true,

View File

@ -18,19 +18,12 @@ const fetchHoursBack = (hoursBack: number, feature: string = 'demo') => {
}; };
beforeAll(async () => { beforeAll(async () => {
db = await dbInit('client_metrics_serial', getLogger, { db = await dbInit('client_metrics_serial', getLogger);
experimental: {
flags: {
variantMetrics: true,
},
},
});
app = await setupAppWithCustomConfig( app = await setupAppWithCustomConfig(
db.stores, db.stores,
{ {
experimental: { experimental: {
flags: { flags: {
variantMetrics: true,
strictSchemaValidation: true, strictSchemaValidation: true,
}, },
}, },