Skip to content

Commit ea5aa01

Browse files
committed
fix: review fixes
1 parent 2de5093 commit ea5aa01

File tree

15 files changed

+92
-49
lines changed

15 files changed

+92
-49
lines changed

src/components/ProgressViewer/ProgressViewer.scss

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
border-radius: 2px;
2323
background: var(--g-color-base-generic);
2424

25-
&_vertical {
26-
min-width: unset;
27-
}
28-
2925
&_theme_dark {
3026
color: var(--g-color-text-light-primary);
3127

@@ -62,13 +58,6 @@
6258
left: 0;
6359

6460
height: 100%;
65-
66-
&_vertical {
67-
top: auto;
68-
bottom: 0;
69-
70-
width: 100%;
71-
}
7261
}
7362

7463
&__text {

src/components/ProgressViewer/ProgressViewer.tsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export interface ProgressViewerProps {
4848
inverseColorize?: boolean;
4949
warningThreshold?: number;
5050
dangerThreshold?: number;
51-
vertical?: boolean;
5251
hideCapacity?: boolean;
5352
}
5453

@@ -58,7 +57,6 @@ export function ProgressViewer({
5857
formatValues = defaultFormatValues,
5958
percents,
6059
className,
61-
vertical,
6260
size = 'xs',
6361
colorizeProgress,
6462
inverseColorize,
@@ -93,13 +91,9 @@ export function ProgressViewer({
9391
fillWidth = 100;
9492
}
9593

96-
const lineStyle = vertical
97-
? {
98-
height: fillWidth + '%',
99-
}
100-
: {
101-
width: fillWidth + '%',
102-
};
94+
const lineStyle = {
95+
width: fillWidth + '%',
96+
};
10397

10498
const renderContent = () => {
10599
if (isNumeric(capacity) && !hideCapacity) {
@@ -111,8 +105,8 @@ export function ProgressViewer({
111105

112106
if (isNumeric(value)) {
113107
return (
114-
<div className={b({size, theme, status, vertical}, className)}>
115-
<div className={b('line', {vertical})} style={lineStyle}></div>
108+
<div className={b({size, theme, status}, className)}>
109+
<div className={b('line')} style={lineStyle}></div>
116110
<span className={b('text')}>{renderContent()}</span>
117111
</div>
118112
);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.ydb-nodes-columns {
2+
&__column-ram,
3+
&__column-cpu {
4+
min-width: 40px;
5+
}
6+
}

src/components/nodesColumns/columns.tsx

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {getLoadSeverityForNode} from '../../store/reducers/nodes/utils';
55
import type {TPoolStats} from '../../types/api/nodes';
66
import type {TTabletStateInfo} from '../../types/api/tablet';
77
import {valueIsDefined} from '../../utils';
8+
import {cn} from '../../utils/cn';
89
import {EMPTY_DATA_PLACEHOLDER} from '../../utils/constants';
910
import {
1011
formatStorageValues,
@@ -26,6 +27,10 @@ import {NODES_COLUMNS_IDS, NODES_COLUMNS_TITLES} from './constants';
2627
import i18n from './i18n';
2728
import type {GetNodesColumnsParams} from './types';
2829

30+
import './NodesColumns.scss';
31+
32+
const b = cn('ydb-nodes-columns');
33+
2934
export function getNodeIdColumn<T extends {NodeId?: string | number}>(): Column<T> {
3035
return {
3136
name: NODES_COLUMNS_IDS.NodeId,
@@ -157,15 +162,15 @@ export function getRAMColumn<T extends {MemoryUsed?: string; MemoryLimit?: strin
157162
formatValues={(value, total) =>
158163
formatStorageValues(value, total, 'gb', undefined, true)
159164
}
165+
className={b('column-ram')}
160166
colorizeProgress
161-
vertical
162167
hideCapacity
163168
/>
164169
</CellWithPopover>
165170
);
166171
},
167172
align: DataTable.LEFT,
168-
width: 85,
173+
width: 80,
169174
resizeMinWidth: 40,
170175
};
171176
}
@@ -188,10 +193,10 @@ export function getSharedCacheUsageColumn<
188193
resizeMinWidth: 170,
189194
};
190195
}
191-
export function getCpuColumn<T extends {PoolStats?: TPoolStats[]}>(): Column<T> {
196+
export function getPoolsColumn<T extends {PoolStats?: TPoolStats[]}>(): Column<T> {
192197
return {
193-
name: NODES_COLUMNS_IDS.CPU,
194-
header: NODES_COLUMNS_TITLES.CPU,
198+
name: NODES_COLUMNS_IDS.Pools,
199+
header: NODES_COLUMNS_TITLES.Pools,
195200
sortAccessor: ({PoolStats = []}) => Math.max(...PoolStats.map(({Usage}) => Number(Usage))),
196201
defaultOrder: DataTable.DESCENDING,
197202
render: ({row}) =>
@@ -201,18 +206,33 @@ export function getCpuColumn<T extends {PoolStats?: TPoolStats[]}>(): Column<T>
201206
resizeMinWidth: 60,
202207
};
203208
}
204-
export function getTotalCpuColumn<T extends {PoolStats?: TPoolStats[]}>(): Column<T> {
209+
export function getCpuColumn<
210+
T extends {PoolStats?: TPoolStats[]; CoresUsed?: number; CoresTotal?: number},
211+
>(): Column<T> {
205212
return {
206-
name: NODES_COLUMNS_IDS.TotalCPU,
207-
header: NODES_COLUMNS_TITLES.TotalCPU,
213+
name: NODES_COLUMNS_IDS.CPU,
214+
header: NODES_COLUMNS_TITLES.CPU,
208215
sortAccessor: ({PoolStats = []}) => Math.max(...PoolStats.map(({Usage}) => Number(Usage))),
209216
defaultOrder: DataTable.DESCENDING,
210217
render: ({row}) => {
211218
if (!row.PoolStats) {
212219
return EMPTY_DATA_PLACEHOLDER;
213220
}
214221

215-
const totalPoolUsage = row.PoolStats.reduce((acc, pool) => acc + (pool.Usage || 0), 0);
222+
let totalPoolUsage =
223+
isNumeric(row.CoresUsed) && isNumeric(row.CoresTotal)
224+
? row.CoresUsed / row.CoresTotal
225+
: undefined;
226+
227+
if (totalPoolUsage === undefined) {
228+
let totalThreadsCount = 0;
229+
totalPoolUsage = row.PoolStats.reduce((acc, pool) => {
230+
totalThreadsCount += Number(pool.Threads);
231+
return acc + Number(pool.Usage) * Number(pool.Threads);
232+
}, 0);
233+
234+
totalPoolUsage = totalPoolUsage / totalThreadsCount;
235+
}
216236

217237
return (
218238
<CellWithPopover
@@ -231,17 +251,17 @@ export function getTotalCpuColumn<T extends {PoolStats?: TPoolStats[]}>(): Colum
231251
}
232252
>
233253
<ProgressViewer
254+
className={b('column-cpu')}
234255
value={totalPoolUsage}
235256
capacity={1}
236257
colorizeProgress
237258
percents
238-
vertical
239259
/>
240260
</CellWithPopover>
241261
);
242262
},
243263
align: DataTable.LEFT,
244-
width: 85,
264+
width: 80,
245265
resizeMinWidth: 40,
246266
};
247267
}

src/components/nodesColumns/constants.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const NODES_COLUMNS_IDS = {
1616
Memory: 'Memory',
1717
RAM: 'RAM',
1818
CPU: 'CPU',
19-
TotalCPU: 'TotalCPU',
19+
Pools: 'Pools',
2020
LoadAverage: 'LoadAverage',
2121
Load: 'Load',
2222
DiskSpaceUsage: 'DiskSpaceUsage',
@@ -59,12 +59,12 @@ export const NODES_COLUMNS_TITLES = {
5959
get RAM() {
6060
return i18n('ram');
6161
},
62+
get Pools() {
63+
return i18n('pools');
64+
},
6265
get CPU() {
6366
return i18n('cpu');
6467
},
65-
get TotalCPU() {
66-
return i18n('totalcpu');
67-
},
6868
get LoadAverage() {
6969
return i18n('load-average');
7070
},
@@ -103,8 +103,8 @@ export const NODES_COLUMNS_TO_DATA_FIELDS: Record<NodesColumnId, NodesRequiredFi
103103
Uptime: ['Uptime'],
104104
Memory: ['Memory'],
105105
RAM: ['Memory'],
106+
Pools: ['CPU'],
106107
CPU: ['CPU'],
107-
TotalCPU: ['CPU'],
108108
LoadAverage: ['LoadAverage'],
109109
Load: ['LoadAverage'],
110110
DiskSpaceUsage: ['DiskSpaceUsage'],

src/components/nodesColumns/i18n/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"memory": "Memory",
1010
"ram": "RAM",
1111
"cpu": "CPU",
12-
"totalcpu": "TotalCPU",
12+
"pools": "Pools",
1313
"disk-usage": "Disk usage",
1414
"tablets": "Tablets",
1515
"load-average": "Load Average",

src/containers/Nodes/columns/columns.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import {
66
getMemoryColumn,
77
getNodeIdColumn,
88
getNodeNameColumn,
9+
getPoolsColumn,
910
getRAMColumn,
1011
getRackColumn,
1112
getTabletsColumn,
12-
getTotalCpuColumn,
1313
getUptimeColumn,
1414
getVersionColumn,
1515
} from '../../../components/nodesColumns/columns';
@@ -29,8 +29,8 @@ export function getNodesColumns(params: GetNodesColumnsParams): Column<NodesPrep
2929
getUptimeColumn<NodesPreparedEntity>(),
3030
getMemoryColumn<NodesPreparedEntity>(),
3131
getRAMColumn<NodesPreparedEntity>(),
32+
getPoolsColumn<NodesPreparedEntity>(),
3233
getCpuColumn<NodesPreparedEntity>(),
33-
getTotalCpuColumn<NodesPreparedEntity>(),
3434
getLoadAverageColumn<NodesPreparedEntity>(),
3535
getTabletsColumn<NodesPreparedEntity>(params),
3636
];

src/containers/Nodes/columns/constants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const DEFAULT_NODES_COLUMNS: NodesColumnId[] = [
1010
'Version',
1111
'Uptime',
1212
'Memory',
13-
'CPU',
13+
'Pools',
1414
'LoadAverage',
1515
'Tablets',
1616
];

src/containers/Nodes/getNodes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {prepareNodesData} from '../../store/reducers/nodes/utils';
55
import type {NodesRequestParams} from '../../types/api/nodes';
66
import {prepareSortValue} from '../../utils/filters';
77
import {
8+
NODES_SORT_VALUE_TO_FIELD,
89
getProblemParamValue,
910
getUptimeParamValue,
1011
isSortableNodesProperty,
@@ -35,7 +36,7 @@ export const getNodes: FetchData<
3536
const {path, database, searchValue, problemFilter, uptimeFilter} = filters ?? {};
3637

3738
const sort = isSortableNodesProperty(columnId)
38-
? prepareSortValue(columnId, sortOrder)
39+
? prepareSortValue(NODES_SORT_VALUE_TO_FIELD[columnId], sortOrder)
3940
: undefined;
4041

4142
const dataFieldsRequired = getRequiredDataFields(columnsIds, NODES_COLUMNS_TO_DATA_FIELDS);

src/containers/Storage/StorageNodes/columns/columns.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import {
99
getMissingDisksColumn,
1010
getNodeIdColumn,
1111
getNodeNameColumn,
12+
getPoolsColumn,
13+
getRAMColumn,
1214
getRackColumn,
1315
getUptimeColumn,
1416
getVersionColumn,
@@ -72,6 +74,8 @@ export const getStorageNodesColumns = ({
7274
getRackColumn<PreparedStorageNode>(),
7375
getVersionColumn<PreparedStorageNode>(),
7476
getMemoryColumn<PreparedStorageNode>(),
77+
getRAMColumn<PreparedStorageNode>(),
78+
getPoolsColumn<PreparedStorageNode>(),
7579
getCpuColumn<PreparedStorageNode>(),
7680
getDiskSpaceUsageColumn<PreparedStorageNode>(),
7781
getUptimeColumn<PreparedStorageNode>(),

0 commit comments

Comments
 (0)