Skip to content
This repository was archived by the owner on Apr 28, 2020. It is now read-only.

Commit 4d1ef0a

Browse files
committed
Utilization: Add Disk IO RW chart
1 parent d57946d commit 4d1ef0a

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

src/components/ClusterOverview/Utilization/Utilization.js

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { InlineLoading } from '../../Loading';
1212
import { UtilizationBody } from '../../Dashboard/Utilization/UtilizationBody';
1313
import { UtilizationItem } from '../../Dashboard/Utilization/UtilizationItem';
1414
import { getCapacityStats, getUtilizationVectorStats } from '../../../selectors';
15-
import { formatBytes } from '../../../utils';
15+
import { formatBytes, formatNetTraffic } from '../../../utils';
1616

1717
const getMemoryData = (memoryUtilization, memoryTotal) => {
1818
let memoryStats;
@@ -35,17 +35,40 @@ const getMemoryData = (memoryUtilization, memoryTotal) => {
3535
};
3636
};
3737

38+
const getThroughputData = iorw => {
39+
let iorwStats;
40+
let maxValueConverted;
41+
42+
const iorwRaw = getUtilizationVectorStats(iorw);
43+
if (iorwRaw) {
44+
const maxValue = Math.max(...iorwRaw);
45+
maxValueConverted = formatNetTraffic(maxValue, undefined, 1);
46+
iorwStats = iorwRaw.map(rws => formatNetTraffic(rws, maxValueConverted.unit, 1).value);
47+
} else {
48+
maxValueConverted = formatNetTraffic(0); // 0 Bps
49+
iorwStats = null;
50+
}
51+
52+
return {
53+
unit: maxValueConverted.unit,
54+
values: iorwStats,
55+
maxValue: maxValueConverted.value,
56+
};
57+
};
58+
3859
export const Utilization = ({
3960
cpuUtilization,
4061
memoryUtilization,
4162
memoryTotal,
4263
storageTotal,
4364
storageUsed,
65+
storageIORW,
4466
LoadingComponent,
4567
}) => {
4668
const cpuStats = getUtilizationVectorStats(cpuUtilization);
4769
const memoryData = getMemoryData(memoryUtilization, memoryTotal);
4870
const storageUsageData = getMemoryData(storageUsed, storageTotal);
71+
const diskIORWData = getThroughputData(storageIORW);
4972

5073
return (
5174
<DashboardCard>
@@ -72,6 +95,15 @@ export const Utilization = ({
7295
LoadingComponent={LoadingComponent}
7396
isLoading={!(memoryUtilization && memoryTotal)}
7497
/>
98+
<UtilizationItem
99+
unit={diskIORWData.unit}
100+
id="diskIORW"
101+
title="Disk IO R/W"
102+
data={diskIORWData.values}
103+
maxY={diskIORWData.maxValue}
104+
LoadingComponent={LoadingComponent}
105+
isLoading={!storageIORW}
106+
/>
75107
<UtilizationItem
76108
unit={storageUsageData.unit}
77109
id="diskUsage"
@@ -93,6 +125,7 @@ Utilization.defaultProps = {
93125
memoryTotal: null,
94126
storageTotal: null,
95127
storageUsed: null,
128+
storageIORW: null,
96129
LoadingComponent: InlineLoading,
97130
};
98131

@@ -102,6 +135,7 @@ Utilization.propTypes = {
102135
memoryTotal: PropTypes.object,
103136
storageTotal: PropTypes.object,
104137
storageUsed: PropTypes.object,
138+
storageIORW: PropTypes.object,
105139
LoadingComponent: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
106140
};
107141

src/components/Dashboard/Utilization/UtilizationItem.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ export class UtilizationItem extends React.PureComponent {
8181
topClass = 'kubevirt-utilization__item';
8282
rows = (
8383
<Row>
84-
<Col lg={2} md={2} sm={2} xs={2}>
84+
<Col lg={3} md={3} sm={3} xs={3}>
8585
{title}
8686
</Col>
87-
<Col className="kubevirt-utilization__item-actual" lg={3} md={3} sm={3} xs={3}>
87+
<Col className="kubevirt-utilization__item-actual" lg={2} md={2} sm={2} xs={2}>
8888
{actual}
8989
</Col>
9090
<Col className="kubevirt-utilization__item-chart" lg={7} md={7} sm={7} xs={7}>

0 commit comments

Comments
 (0)