From 19770fc33cc9b71f199aedc02593f34e8cc40a9a Mon Sep 17 00:00:00 2001 From: Jaanus Sellin Date: Thu, 29 Jun 2023 13:14:37 +0300 Subject: [PATCH] fix: metrics performance patch (#4108) --- .../client-metrics/metrics-service-v2.ts | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/lib/services/client-metrics/metrics-service-v2.ts b/src/lib/services/client-metrics/metrics-service-v2.ts index 0b970238650..bf545aa4339 100644 --- a/src/lib/services/client-metrics/metrics-service-v2.ts +++ b/src/lib/services/client-metrics/metrics-service-v2.ts @@ -162,15 +162,19 @@ export default class ClientMetricsServiceV2 { 100, ); - const result = environments.flatMap((environment) => - applications.flatMap((appName) => - hours.flatMap((hourBucket) => { - const metric = metrics.find( + const result = environments.flatMap((environment) => { + const environmentMetrics = metrics.filter( + (metric) => metric.environment === environment, + ); + return applications.flatMap((appName) => { + const applicationMetrics = environmentMetrics.filter( + (metric) => metric.appName === appName, + ); + return hours.flatMap((hourBucket) => { + const metric = applicationMetrics.find( (item) => compareAsc(hourBucket.timestamp, item.timestamp) === - 0 && - item.appName === appName && - item.environment === environment, + 0, ); return ( metric || { @@ -182,10 +186,9 @@ export default class ClientMetricsServiceV2 { featureName, } ); - }), - ), - ); - + }); + }); + }); return result.sort((a, b) => compareAsc(a.timestamp, b.timestamp)); }