@@ -2,6 +2,7 @@ import { useEffect } from 'react'
2
2
import { useDispatch , useSelector } from 'react-redux'
3
3
import { debounce } from 'lodash'
4
4
import { io } from 'socket.io-client'
5
+ import { v4 as uuidv4 } from 'uuid'
5
6
6
7
import {
7
8
setSocket ,
@@ -11,7 +12,9 @@ import {
11
12
setError ,
12
13
resetMonitorItems ,
13
14
setStartTimestamp ,
14
- setMonitorLoadingPause
15
+ setMonitorLoadingPause ,
16
+ setLogFileId ,
17
+ pauseMonitor , lockResume
15
18
} from 'uiSrc/slices/cli/monitor'
16
19
import { getBaseApiUrl } from 'uiSrc/utils'
17
20
import { MonitorErrorMessages , MonitorEvent , SocketErrors , SocketEvent } from 'uiSrc/constants'
@@ -24,7 +27,7 @@ import ApiStatusCode from '../../constants/apiStatusCode'
24
27
interface IProps {
25
28
retryDelay ?: number ;
26
29
}
27
- const MonitorConfig = ( { retryDelay = 10000 } : IProps ) => {
30
+ const MonitorConfig = ( { retryDelay = 15000 } : IProps ) => {
28
31
const { id : instanceId = '' } = useSelector ( connectedInstanceSelector )
29
32
const { socket, isRunning, isPaused, isSaveToFile, isMinimizedMonitor, isShowMonitor } = useSelector ( monitorSelector )
30
33
@@ -48,6 +51,8 @@ const MonitorConfig = ({ retryDelay = 10000 } : IProps) => {
48
51
if ( ! isRunning || ! instanceId || socket ?. connected ) {
49
52
return
50
53
}
54
+ const logFileId = `_redis_${ uuidv4 ( ) } `
55
+ const timestamp = Date . now ( )
51
56
let retryTimer : NodeJS . Timer
52
57
53
58
// Create SocketIO connection to instance by instanceId
@@ -75,17 +80,20 @@ const MonitorConfig = ({ retryDelay = 10000 } : IProps) => {
75
80
76
81
const handleDisconnect = ( ) => {
77
82
newSocket . removeAllListeners ( )
83
+ dispatch ( pauseMonitor ( ) )
78
84
dispatch ( stopMonitor ( ) )
85
+ dispatch ( lockResume ( ) )
79
86
}
80
87
81
88
newSocket . on ( SocketEvent . Connect , ( ) => {
82
89
// Trigger Monitor event
83
90
clearTimeout ( retryTimer )
84
- const timestampStart = Date . now ( )
85
- dispatch ( setStartTimestamp ( timestampStart ) )
91
+
92
+ dispatch ( setLogFileId ( logFileId ) )
93
+ dispatch ( setStartTimestamp ( timestamp ) )
86
94
newSocket . emit (
87
95
MonitorEvent . Monitor ,
88
- { logFileId : isSaveToFile ? timestampStart . toString ( ) : null } ,
96
+ { logFileId : isSaveToFile ? logFileId : null } ,
89
97
handleMonitorEvents
90
98
)
91
99
} )
@@ -101,7 +109,7 @@ const MonitorConfig = ({ retryDelay = 10000 } : IProps) => {
101
109
102
110
payloads . push ( { isError : true , time : `${ Date . now ( ) } ` , ...payload } )
103
111
setNewItems ( payloads , ( ) => { payloads . length = 0 } )
104
- dispatch ( stopMonitor ( ) )
112
+ dispatch ( pauseMonitor ( ) )
105
113
} )
106
114
107
115
// Catch disconnect
@@ -117,7 +125,6 @@ const MonitorConfig = ({ retryDelay = 10000 } : IProps) => {
117
125
newSocket . on ( SocketEvent . ConnectionError , ( error ) => {
118
126
payloads . push ( { isError : true , time : `${ Date . now ( ) } ` , message : getErrorMessage ( error ) } )
119
127
setNewItems ( payloads , ( ) => { payloads . length = 0 } )
120
- dispatch ( stopMonitor ( ) )
121
128
} )
122
129
} , [ instanceId , isRunning , isSaveToFile ] )
123
130
0 commit comments