Skip to content

Commit 54a0eb9

Browse files
committed
feat: add support for RealNumberOfCpus for load average
1 parent 4ea21a1 commit 54a0eb9

File tree

8 files changed

+27
-7
lines changed

8 files changed

+27
-7
lines changed

src/containers/Cluster/ClusterInfo/utils/utils.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,12 @@ export const getInfo = (cluster: TClusterInfo, additionalInfo: InfoItem[]) => {
6363

6464
info.push({
6565
label: i18n('label_load'),
66-
value: <ProgressViewer value={cluster?.LoadAverage} capacity={cluster?.NumberOfCpus} />,
66+
value: (
67+
<ProgressViewer
68+
value={cluster?.LoadAverage}
69+
capacity={cluster?.RealNumberOfCpus ?? cluster?.NumberOfCpus}
70+
/>
71+
),
6772
});
6873

6974
info.push(...additionalInfo);

src/containers/Clusters/ClustersStatistics.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export const ClustersStatistics = ({count, stats}: ClustersStatisticsProps) => {
1818
Tenants,
1919
LoadAverage,
2020
NumberOfCpus,
21+
RealNumberOfCpus,
2122
StorageUsed,
2223
StorageTotal,
2324
} = stats;
@@ -51,7 +52,7 @@ export const ClustersStatistics = ({count, stats}: ClustersStatisticsProps) => {
5152
<ProgressViewer
5253
size="ns"
5354
value={LoadAverage}
54-
capacity={NumberOfCpus}
55+
capacity={RealNumberOfCpus || NumberOfCpus}
5556
colorizeProgress={true}
5657
/>
5758
</div>

src/containers/Clusters/columns.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,20 @@ export const CLUSTERS_COLUMNS: Column<PreparedCluster>[] = [
176176
return cluster?.NumberOfCpus;
177177
},
178178
render: ({row}) => {
179-
const {LoadAverage = 0, NumberOfCpus = 0, Overall} = row.cluster || {};
179+
const {
180+
LoadAverage = 0,
181+
NumberOfCpus = 0,
182+
RealNumberOfCpus,
183+
Overall,
184+
} = row.cluster || {};
180185

181186
if (!Overall) {
182187
return EMPTY_CELL;
183188
}
184189

185-
return <ProgressViewer value={LoadAverage} capacity={NumberOfCpus} />;
190+
return (
191+
<ProgressViewer value={LoadAverage} capacity={RealNumberOfCpus ?? NumberOfCpus} />
192+
);
186193
},
187194
},
188195
{

src/store/reducers/clusters/selectors.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ export function aggregateClustersInfo(clusters: PreparedCluster[]): ClusterDataA
8989
NodesAlive = 0,
9090
LoadAverage = 0,
9191
NumberOfCpus = 0,
92+
RealNumberOfCpus = 0,
9293
StorageUsed = 0,
9394
StorageTotal = 0,
9495
Tenants = 0;
@@ -103,6 +104,7 @@ export function aggregateClustersInfo(clusters: PreparedCluster[]): ClusterDataA
103104
Tenants += Number(cluster?.Tenants) || 0;
104105
LoadAverage += Number(cluster?.LoadAverage) || 0;
105106
NumberOfCpus += cluster?.NumberOfCpus || 0;
107+
RealNumberOfCpus += cluster?.RealNumberOfCpus || 0;
106108
StorageUsed += cluster?.StorageUsed ? Math.floor(parseInt(cluster.StorageUsed, 10)) : 0;
107109
StorageTotal += cluster?.StorageTotal ? Math.floor(parseInt(cluster.StorageTotal, 10)) : 0;
108110
});
@@ -114,6 +116,7 @@ export function aggregateClustersInfo(clusters: PreparedCluster[]): ClusterDataA
114116
Tenants,
115117
LoadAverage,
116118
NumberOfCpus,
119+
RealNumberOfCpus,
117120
StorageUsed,
118121
StorageTotal,
119122
};

src/store/reducers/clusters/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export interface ClusterDataAggregation {
1212
Tenants: number;
1313
LoadAverage: number;
1414
NumberOfCpus: number;
15+
RealNumberOfCpus?: number;
1516
StorageUsed: number;
1617
StorageTotal: number;
1718
}

src/types/api/cluster.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export interface TClusterInfoV1 {
1313
NodesTotal?: number;
1414
NodesAlive?: number;
1515
NumberOfCpus?: number;
16+
RealNumberOfCpus?: number;
1617
/** double */
1718
LoadAverage?: number;
1819
/** uint64 */

src/types/api/nodes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ export interface TSystemStateInfo {
105105
/** double */
106106
LoadAverage?: number[];
107107
NumberOfCpus?: number;
108+
RealNumberOfCpus?: number;
108109
SystemState?: EFlag;
109110
MessageBusState?: EFlag;
110111
GRpcState?: EFlag;

src/utils/nodes.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,15 @@ export const prepareNodesMap = (nodesList?: TNodeInfo[]) => {
4444
};
4545

4646
export function calculateLoadAveragePercents(node: TSystemStateInfo = {}) {
47-
const {LoadAverage, NumberOfCpus} = node;
47+
const {LoadAverage, NumberOfCpus, RealNumberOfCpus} = node;
48+
const cpuCount = RealNumberOfCpus || NumberOfCpus;
4849

49-
if (!valueIsDefined(LoadAverage) || !valueIsDefined(NumberOfCpus)) {
50+
if (!valueIsDefined(LoadAverage) || !valueIsDefined(cpuCount)) {
5051
return undefined;
5152
}
5253

5354
return LoadAverage.map((value) => {
54-
return (value * 100) / NumberOfCpus;
55+
return (value * 100) / cpuCount;
5556
});
5657
}
5758

0 commit comments

Comments
 (0)