1
1
/* eslint-disable no-tabs */
2
2
/* eslint-disable react/prop-types */
3
3
import React from 'react' ;
4
- import { convertToMetricsArr } from '../helper/parseContainerFormat' ;
5
4
import { Chart } from 'react-chartjs-2' ;
6
5
import LineChartDisplay from '../display/LineChartDisplay' ;
7
6
import { useSelector } from 'react-redux' ;
7
+ import { MetricsProps } from '../../../types' ;
8
8
9
9
/**
10
10
* Display general metrics
11
11
*
12
12
* @param {* } props
13
13
*/
14
- const Metrics = ( props ) => {
15
- const hostStats = useSelector ( ( state ) => state . containersList . hostStats ) ;
14
+ const Metrics = ( props : MetricsProps ) => {
16
15
const fullRunningList = props . runningList ;
17
- // const result = convertToMetricsArr(props.runningList)
18
- const result = hostStats ;
19
- const cpuData = 100 - result . cpuPerc ; // .toFixed(2) // 60%
20
- const memoryData = 100 - result . memPerc ; // .toFixed(2)
16
+ const hostStats = useSelector ( ( state : any ) => state . containersList . hostStats ) ;
17
+ const cpuData = 100 - hostStats . cpuPerc ;
18
+ const memoryData = 100 - hostStats . memPerc ;
21
19
const cpuThreshold = props . threshold [ 0 ] ;
22
20
const memThreshold = props . threshold [ 1 ] ;
23
21
24
- let cpuFails = 0 ;
25
- let memFails = 0 ;
22
+ let cpuFails = 0
23
+ let memFails = 0
26
24
27
25
// used to monitor threshold and fail counts
28
26
for ( const each of fullRunningList ) {
29
- const cpu = parseFloat ( each [ 'CPUPerc' ] . replace ( / ( [ % ] ) + / g, '' ) ) ;
30
- const memory = parseFloat ( each [ 'MemPerc' ] . replace ( / ( [ % ] ) + / g, '' ) ) ;
31
- if ( cpu >= cpuThreshold ) cpuFails ++ ;
32
- if ( memory >= memThreshold ) memFails ++ ;
27
+ const cpu = parseFloat ( each [ 'CPUPerc' ] . replace ( / ( [ % ] ) + / g, '' ) )
28
+ const memory = parseFloat ( each [ 'MemPerc' ] . replace ( / ( [ % ] ) + / g, '' ) )
29
+ if ( cpu >= cpuThreshold ) cpuFails ++
30
+ if ( memory >= memThreshold ) memFails ++
33
31
}
34
32
35
33
const cpu = {
36
- labels : [ `Available: ${ cpuData } %` , `Usage: ${ result . cpuPerc } %` ] ,
34
+ labels : [ `Available: ${ cpuData } %` , `Usage: ${ hostStats . cpuPerc } %` ] ,
37
35
datasets : [
38
36
{
39
37
label : 'CPU' ,
40
- backgroundColor : [ 'rgba(44, 130, 201, 1) ' , 'rgba(19, 221, 29, 1) ' ] ,
41
- data : [ cpuData , result . cpuPerc ] ,
38
+ backgroundColor : [ '#4594ce ' , '#67f267 ' ] ,
39
+ data : [ cpuData , hostStats . cpuPerc ] ,
42
40
} ,
43
41
] ,
44
- } ;
42
+ }
45
43
46
44
const memory = {
47
- labels : [ `Available: ${ memoryData } %` , `Usage: ${ result . memPerc } %` ] ,
45
+ labels : [ `Available: ${ memoryData } %` , `Usage: ${ hostStats . memPerc } %` ] ,
48
46
datasets : [
49
47
{
50
48
label : 'Memory' ,
51
- backgroundColor : [ 'rgba(44, 130, 201, 1) ' , 'rgba(19, 221, 29, 1) ' ] ,
52
- data : [ memoryData , result . memPerc ] ,
49
+ backgroundColor : [ '#4594ce ' , '#67f267 ' ] ,
50
+ data : [ memoryData , hostStats . memPerc ] ,
53
51
} ,
54
52
] ,
55
- } ;
53
+ }
56
54
57
55
const memOptions = {
58
56
responsive : true ,
@@ -62,10 +60,10 @@ const Metrics = (props) => {
62
60
tooltips : { enabled : true , mode : 'index' } ,
63
61
legend : { display : false } ,
64
62
datalabels : {
65
- formatter : ( value , ctx ) => {
63
+ formatter : ( value : number , ctx : any ) => {
66
64
let sum = 0 ;
67
65
const dataArr = ctx . chart . data . datasets [ 0 ] . data ;
68
- dataArr . map ( ( data ) => {
66
+ dataArr . map ( ( data : any ) => {
69
67
sum += data ;
70
68
} ) ;
71
69
const percentage = ( value * 100 ) / sum + '%' ;
@@ -74,7 +72,7 @@ const Metrics = (props) => {
74
72
color : '#fff' ,
75
73
} ,
76
74
} ,
77
- } ;
75
+ }
78
76
79
77
const cpuOptions = {
80
78
responsive : true ,
@@ -84,10 +82,10 @@ const Metrics = (props) => {
84
82
tooltips : { enabled : false } ,
85
83
legend : { display : false } ,
86
84
datalabels : {
87
- formatter : ( value , ctx ) => {
85
+ formatter : ( value : number , ctx : any ) => {
88
86
let sum = 0 ;
89
87
const dataArr = ctx . chart . data . datasets [ 0 ] . data ;
90
- dataArr . map ( ( data ) => {
88
+ dataArr . map ( ( data : any ) => {
91
89
sum += data ;
92
90
} ) ;
93
91
const percentage = ( value * 100 ) / sum + '%' ;
@@ -96,15 +94,15 @@ const Metrics = (props) => {
96
94
color : '#fff' ,
97
95
} ,
98
96
} ,
99
- } ;
97
+ }
100
98
101
99
return (
102
100
< div className = "renderContainers" >
103
101
< div className = "header" >
104
102
< h1 className = "tabTitle" > Metrics</ h1 >
105
103
</ div >
106
104
< div className = "metric-section-title" >
107
- < h3 > Host Metrics</ h3 >
105
+ < h3 className = "container-heading" > Host Metrics</ h3 >
108
106
</ div >
109
107
< div className = "aggregate-conatiner" >
110
108
< div className = "pieChart" >
@@ -123,7 +121,7 @@ const Metrics = (props) => {
123
121
</ div >
124
122
< div className = "legend-section" >
125
123
< div className = "usage-box" > </ div >
126
- < p className = "legend-text" > Usage { Math . round ( result . cpuPerc ) } %</ p >
124
+ < p className = "legend-text" > Usage { Math . round ( hostStats . cpuPerc ) } %</ p >
127
125
</ div >
128
126
</ div >
129
127
</ div >
@@ -140,11 +138,14 @@ const Metrics = (props) => {
140
138
< div className = "legend-container" >
141
139
< div className = "legend-section" >
142
140
< div className = "avaliable-box" > </ div >
143
- < p className = "legend-text" > Available { Math . round ( memoryData ) } %</ p >
141
+ < p className = "legend-text" >
142
+ { ' ' }
143
+ Available { Math . round ( memoryData ) } %
144
+ </ p >
144
145
</ div >
145
146
< div className = "legend-section" >
146
147
< div className = "usage-box" > </ div >
147
- < p className = "legend-text" > Usage { Math . round ( result . memPerc ) } %</ p >
148
+ < p className = "legend-text" > Usage { Math . round ( hostStats . memPerc ) } %</ p >
148
149
</ div >
149
150
</ div >
150
151
</ div >
@@ -178,7 +179,7 @@ const Metrics = (props) => {
178
179
for more information on these metrics
179
180
</p> */ }
180
181
</ div >
181
- ) ;
182
- } ;
182
+ )
183
+ }
183
184
184
- export default Metrics ;
185
+ export default Metrics
0 commit comments