1
1
import React , { useState , useContext , useEffect , useRef } from 'react' ;
2
2
import { useIsMount } from '../context/helpers' ;
3
+ import { useParams } from 'react-router-dom' ;
3
4
import 'antd/dist/antd.less' ;
4
5
import { Switch , Table , Tag , Transfer , Button } from 'antd' ;
5
6
import { PoweroffOutlined } from '@ant-design/icons' ;
@@ -65,33 +66,103 @@ const TableTransfer = ({ leftColumns, rightColumns, ...restProps }) => (
65
66
const TransferColumns = React . memo ( ( ) => {
66
67
const [ targetKeys , setTargetKeys ] = useState ( [ ] ) ;
67
68
const [ metricsPool , setMetricsPool ] = useState < any [ ] > ( [ ] ) ;
68
- const [ listReady , setListReady ] = useState ( false ) ;
69
- const [ isEvent , setIsEvent ] = useState ( false ) ;
69
+ const [ healthMetricsReady , setHealthMetricsReady ] = useState ( false ) ;
70
+ const [ healthMetrics , setHealthMetrics ] = useState < any [ ] > ( [ ] ) ;
71
+ const [ eventMetricsReady , setEventMetricsReady ] = useState ( false ) ;
72
+ const [ eventMetrics , setEventMetrics ] = useState < any [ ] > ( [ ] ) ;
73
+
70
74
const [ disabled , setDisabled ] = useState ( false ) ;
71
75
const [ showSearch , setShowSearch ] = useState ( true ) ;
72
76
const { setSelectedMetrics } = useContext ( QueryContext ) ;
73
77
const { healthData} = useContext ( HealthContext ) ;
74
78
const { eventData } = useContext ( EventContext ) ;
79
+ const { service } = useParams < any > ( ) ;
80
+
75
81
const eventDataList = eventData . eventDataList ;
76
82
const healthDataList = healthData . healthDataList ;
77
83
78
- // const datalist = [
79
- // {
80
- // Memory: [
81
- // { books: [{ disk_usage: [10, 20] }, { clockSpeed: [8, 16] }] },
82
- // { orders: [{ disk_usage: [5, 25] }, { clockSpeed: [7, 14] }] },
83
- // ],
84
- // },
85
- // {
86
- // CPU: [{ books: [{ cpu_temp: [100, 200] }] }, { orders: [{ cpu_temp: [150, 250] }] }],
87
- // },
88
- // ];
89
-
90
- const appendMetrics = ( eventDataList , healthDatalist ) => {
84
+ useEffect ( ( ) => {
85
+ if ( healthDataList && healthDataList . length > 0 ) {
86
+ setHealthMetricsReady ( true ) ;
87
+ }
88
+ } , [ healthDataList ] ) ;
89
+
90
+ useEffect ( ( ) => {
91
+ if ( eventDataList && eventDataList . length > 0 ) {
92
+ setEventMetricsReady ( true ) ;
93
+ }
94
+ } , [ eventDataList ] ) ;
95
+
96
+ useEffect ( ( ) => {
97
+ // console.log("newhealthmetrics", JSON.stringify(getMetrics('health',healthDataList)))
98
+ //console.log("healthDataList:", JSON.stringify(healthDataList));
99
+ setHealthMetrics ( getMetrics ( 'health' , healthDataList ) )
100
+
101
+ } , [ healthMetricsReady ] ) ;
102
+
103
+ useEffect ( ( ) => {
104
+ // console.log("neweventhmetrics", JSON.stringify(getMetrics('event',eventDataList)))
105
+ setEventMetrics ( getMetrics ( 'event' , eventDataList ) )
106
+ //console.log("eventDataList:", JSON.stringify(eventDataList));
107
+
108
+ } , [ eventMetricsReady ] ) ;
109
+
110
+ useEffect ( ( ) => {
111
+ console . log ( "current service:" , service )
112
+ if ( service === '' ) {
113
+ //pass
114
+ }
115
+ else if ( service === 'kafkametrics' ) {
116
+ // console.log("set event metrics:", JSON.stringify(eventMetrics));
117
+ console . log ( "eventDataList:" , JSON . stringify ( eventDataList ) ) ;
118
+ if ( eventDataList && eventDataList . length > 0 ) {
119
+ setMetricsPool ( getMetrics ( 'event' , eventDataList ) ) ;
120
+ }
121
+ else {
122
+ setMetricsPool ( eventMetrics ) ;
123
+ }
124
+
125
+ }
126
+ else if ( ! service . includes ( 'kafkametrics' ) ) {
127
+ console . log ( "healthDataList:" , JSON . stringify ( healthDataList ) ) ;
128
+ // console.log("set health metrics:", JSON.stringify(healthMetrics));
129
+ if ( healthDataList && healthDataList . length > 0 ) {
130
+ setMetricsPool ( getMetrics ( 'health' , healthDataList ) ) ;
131
+ }
132
+ else {
133
+ setMetricsPool ( healthMetrics ) ;
134
+ }
135
+
136
+ }
137
+ else {
138
+ if ( healthDataList && healthDataList . length > 0 && eventDataList && eventDataList . length > 0 ) {
139
+ setMetricsPool ( getMetrics ( 'event' , eventDataList ) . concat ( getMetrics ( 'health' , healthDataList ) ) ) ;
140
+ }
141
+ else {
142
+ console . log ( "set concat metrics:" , JSON . stringify ( eventMetrics . concat ( healthMetrics ) ) ) ;
143
+ setMetricsPool ( eventMetrics . concat ( healthMetrics ) ) ;
144
+ }
145
+
146
+
147
+ }
148
+
149
+ } , [ service , healthMetricsReady , eventMetricsReady ] )
150
+
151
+ const getMetrics = ( type , datalist ) => {
91
152
let pool : any [ ] = [ ] ;
92
- if ( healthDatalist && healthDatalist . length > 0 ) {
93
- setIsEvent ( false ) ;
94
- healthDatalist . forEach ( category => {
153
+ if ( type === 'event' ) {
154
+ datalist . forEach ( metric => {
155
+ const temp = { } ;
156
+ const metricName : string = Object . keys ( metric ) [ 0 ] ;
157
+ const key = 'Event | ' + metricName ;
158
+ temp [ 'key' ] = key ;
159
+ temp [ 'title' ] = key ;
160
+ temp [ 'tag' ] = 'Event' ;
161
+ pool . push ( temp ) ;
162
+ } ) ;
163
+ }
164
+ else {
165
+ datalist . forEach ( category => {
95
166
const tag : string = Object . keys ( category ) [ 0 ] ; //Memory
96
167
const serviceObj : { } = category [ tag ] [ 0 ] ; // { books: [{ disk_usage: [10, 20] }, { clockSpeed: [8, 16] }] }
97
168
const valuesOfServiceObj : any [ ] = Object . values ( serviceObj ) ;
@@ -109,38 +180,9 @@ const TransferColumns = React.memo(() => {
109
180
} ) ;
110
181
111
182
}
112
- if ( eventDataList && eventDataList . length > 0 ) {
113
- setIsEvent ( true ) ;
114
- eventDataList . forEach ( metric => {
115
- const temp = { } ;
116
- const metricName : string = Object . keys ( metric ) [ 0 ] ;
117
- const key = 'Event | ' + metricName ;
118
- temp [ 'key' ] = key ;
119
- temp [ 'title' ] = key ;
120
- temp [ 'tag' ] = 'Event' ;
121
- pool . push ( temp ) ;
122
- } ) ;
123
-
124
- }
125
-
126
- setMetricsPool ( pool ) ;
127
- } ;
128
-
129
- // useEffect(() => {
130
- // if ((healthDataList && healthDataList.length >0) || (eventDataList && eventDataList.length > 0)) {
131
- // setListReady(true);
132
- // }
133
- // }, [healthDataList, eventDataList]);
134
-
135
-
136
- //const isMount = useIsMount();
183
+ return pool ;
184
+ }
137
185
138
- useEffect ( ( ) => {
139
- // if (!isMount) {
140
- appendMetrics ( eventDataList , healthDataList ) ;
141
- // }
142
- } , [ isEvent , healthDataList , eventDataList ] ) ;
143
-
144
186
145
187
const leftTableColumns = [
146
188
{
0 commit comments