From e61304bda33075c66f19f90ee3be4ea22da48262 Mon Sep 17 00:00:00 2001 From: QooQooDass Date: Mon, 27 May 2024 18:48:56 +0900 Subject: [PATCH] [#noissue] Fix filteredMap merge logic --- .../src/main/v3/packages/atoms/src/scatter.ts | 4 ++- .../utils/src/helper/filteredMap/merge.ts | 26 ++++++++++--------- .../v3/packages/utils/src/helper/serverMap.ts | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/web-frontend/src/main/v3/packages/atoms/src/scatter.ts b/web-frontend/src/main/v3/packages/atoms/src/scatter.ts index dafa4b1a8b5b..d23b7afba1b5 100644 --- a/web-frontend/src/main/v3/packages/atoms/src/scatter.ts +++ b/web-frontend/src/main/v3/packages/atoms/src/scatter.ts @@ -53,7 +53,9 @@ export const scatterDataByApplicationKeyAtom = atom( const mergedKeys = newData ? getMergedKeys(prevData, newData) : undefined; const resultData = mergedKeys?.reduce((acc, key) => { const prevScatterData = prevData?.[key]; - const newScatterData = getScatterData(newData[key], prevScatterData); + const newScatterData = newData[key] + ? getScatterData(newData[key], prevScatterData) + : prevScatterData; return { ...acc, [key]: newScatterData, diff --git a/web-frontend/src/main/v3/packages/utils/src/helper/filteredMap/merge.ts b/web-frontend/src/main/v3/packages/utils/src/helper/filteredMap/merge.ts index cc858ec6738c..a46196f24551 100644 --- a/web-frontend/src/main/v3/packages/utils/src/helper/filteredMap/merge.ts +++ b/web-frontend/src/main/v3/packages/utils/src/helper/filteredMap/merge.ts @@ -188,16 +188,17 @@ function mergeTimeSeriesHistogram( return; } if (obj.key === 'Max') { - obj.values.forEach((chartValue, innerIndex: number) => { - old.timeSeriesHistogram[outerIndex].values[innerIndex][1] = Math.max( - old.timeSeriesHistogram[outerIndex].values[innerIndex][1], - chartValue[1], + old.timeSeriesHistogram[outerIndex].values.forEach((value) => { + value[1] = Math.max( + value[1], + obj.values.find((chartValue) => chartValue[0] === value[0])?.[1] || 0, ); }); + return; } - obj.values.forEach((chartValue, innerIndex: number) => { - old.timeSeriesHistogram[outerIndex].values[innerIndex][1] += chartValue[1]; + old.timeSeriesHistogram[outerIndex].values.forEach((value) => { + value[1] += obj.values.find((chartValue) => chartValue[0] === value[0])?.[1] || 0; }); }); updateAvgTimeSeriesHistogram(old.timeSeriesHistogram); @@ -252,16 +253,17 @@ function mergeAgentTimeSeriesHistogramByType( return; } if (obj.key === 'Max') { - obj.values.forEach((chartValue, innerIndex) => { - old[agentId][outerIndex].values[innerIndex][1] = Math.max( - old[agentId][outerIndex].values[innerIndex][1], - chartValue[1], + old[agentId][outerIndex].values.forEach((value) => { + value[1] = Math.max( + value[1], + obj.values.find((chartValue) => chartValue[0] === value[0])?.[1] || 0, ); }); + return; } - obj.values.forEach((chartValue, innerIndex) => { - old[agentId][outerIndex].values[innerIndex][1] += chartValue[1]; + old[agentId][outerIndex].values.forEach((value) => { + value[1] += obj.values.find((chartValue) => chartValue[0] === value[0])?.[1] || 0; }); }); updateAvgTimeSeriesHistogram(old[agentId]); diff --git a/web-frontend/src/main/v3/packages/utils/src/helper/serverMap.ts b/web-frontend/src/main/v3/packages/utils/src/helper/serverMap.ts index 13003d2aacc7..eb47f3b5837c 100644 --- a/web-frontend/src/main/v3/packages/utils/src/helper/serverMap.ts +++ b/web-frontend/src/main/v3/packages/utils/src/helper/serverMap.ts @@ -11,7 +11,7 @@ export const getBaseNodeId = ({ const nodeList = applicationMapData.nodeDataArray; const baseNodeId = `${application?.applicationName}^${application?.serviceType}`; - return nodeList.some(({ key }: { key: string }) => key === baseNodeId) + return nodeList.length === 0 || nodeList.some(({ key }: { key: string }) => key === baseNodeId) ? baseNodeId : baseNodeId.replace(/(.*)\^(.*)/i, '$1^UNAUTHORIZED'); }