1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-18 13:48:58 +02:00

fix: decouple metrics from ofter-read table

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
This commit is contained in:
andreas-unleash 2023-09-25 14:13:50 +03:00
parent 645dc52641
commit 256188e0a8
No known key found for this signature in database
GPG Key ID: DB82A1577B38F66B

View File

@ -79,7 +79,6 @@ export default class FeatureToggleClientStore
'features.impression_data as impression_data', 'features.impression_data as impression_data',
'features.created_at as created_at', 'features.created_at as created_at',
'fe.variants as variants', 'fe.variants as variants',
'fem.last_seen_at as env_last_seen_at',
'fe.enabled as enabled', 'fe.enabled as enabled',
'fe.environment as environment', 'fe.environment as environment',
'fs.id as strategy_id', 'fs.id as strategy_id',
@ -95,15 +94,6 @@ export default class FeatureToggleClientStore
'df.parent as parent', 'df.parent as parent',
'df.variants as parent_variants', 'df.variants as parent_variants',
'df.enabled as parent_enabled', 'df.enabled as parent_enabled',
this.db.raw(`(
SELECT
CASE
WHEN COUNT(*) > 0 THEN MAX(last_seen_at)
ELSE NULL
END
FROM feature_environments_metrics
WHERE features.name = feature_environments_metrics.feature_name
) as last_seen_at`),
] as (string | Raw<any>)[]; ] as (string | Raw<any>)[];
let query = this.db('features') let query = this.db('features')
@ -129,12 +119,6 @@ export default class FeatureToggleClientStore
'fe.feature_name', 'fe.feature_name',
'features.name', 'features.name',
) )
.leftJoin('feature_environments_metrics as fem', function () {
this.on('fem.feature_name', '=', 'features.name').andOnVal(
'fem.environment',
environment,
);
})
.leftJoin( .leftJoin(
'feature_strategy_segment as fss', 'feature_strategy_segment as fss',
`fss.feature_strategy_id`, `fss.feature_strategy_id`,
@ -144,15 +128,36 @@ export default class FeatureToggleClientStore
.leftJoin('dependent_features as df', 'df.child', 'features.name'); .leftJoin('dependent_features as df', 'df.child', 'features.name');
if (isAdmin) { if (isAdmin) {
query = query.leftJoin( query = query
.leftJoin(
'feature_tag as ft', 'feature_tag as ft',
'ft.feature_name', 'ft.feature_name',
'features.name', 'features.name',
)
.leftJoin('feature_environments_metrics', function () {
this.on(
'feature_environments_metrics.feature_name',
'features.name',
).andOnVal(
'feature_environments_metrics.environment',
'=',
environment,
); );
});
selectColumns = [ selectColumns = [
...selectColumns, ...selectColumns,
'ft.tag_value as tag_value', 'ft.tag_value as tag_value',
'ft.tag_type as tag_type', 'ft.tag_type as tag_type',
'feature_environments_metrics.last_seen_at as env_last_seen_at',
this.db.raw(`(
SELECT
CASE
WHEN COUNT(*) > 0 THEN MAX(last_seen_at)
ELSE NULL
END
FROM feature_environments_metrics
WHERE features.name = feature_environments_metrics.feature_name
) as last_seen_at`),
]; ];
if (userId) { if (userId) {
@ -231,7 +236,6 @@ export default class FeatureToggleClientStore
feature.project = r.project; feature.project = r.project;
feature.stale = r.stale; feature.stale = r.stale;
feature.type = r.type; feature.type = r.type;
feature.lastSeenAt = r.last_seen_at;
feature.variants = r.variants || []; feature.variants = r.variants || [];
feature.project = r.project; feature.project = r.project;
if (isAdmin) { if (isAdmin) {