@@ -69,22 +69,26 @@ def __init__(
69
69
resume_stream = self .resume_stream ,
70
70
)
71
71
72
- def performance_report (self , start , rows_num , rows_per_event_min = - 1 , rows_per_event_max = - 1 , now = None ):
72
+ def performance_report (self , start , rows_num , rows_num_per_event_min = None , rows_num_per_event_max = None , now = None ):
73
73
# time to calc stat
74
74
75
75
if now is None :
76
76
now = time .time ()
77
77
78
78
window_size = now - start
79
- rows_per_sec = rows_num / window_size
80
- logging .info (
81
- 'rows_per_sec:%f rows_per_event_min: %d rows_per_event_max: %d for last %d rows %f sec' ,
82
- rows_per_sec ,
83
- rows_per_event_min ,
84
- rows_per_event_max ,
85
- rows_num ,
86
- window_size ,
87
- )
79
+ if window_size > 0 :
80
+ rows_per_sec = rows_num / window_size
81
+ logging .info (
82
+ 'PERF - rows_per_sec:%f rows_per_event_min: %d rows_per_event_max: %d for last %d rows %f sec' ,
83
+ rows_per_sec ,
84
+ rows_num_per_event_min if rows_num_per_event_min is not None else - 1 ,
85
+ rows_num_per_event_max if rows_num_per_event_max is not None else - 1 ,
86
+ rows_num ,
87
+ window_size ,
88
+ )
89
+ else :
90
+ logging .info ("PERF - rows window size=0 can not calc performance for this window" )
91
+
88
92
89
93
def read (self ):
90
94
start_timestamp = int (time .time ())
@@ -96,20 +100,20 @@ def read(self):
96
100
start = time .time ()
97
101
rows_num = 0
98
102
rows_num_since_interim_performance_report = 0
99
- rows_per_event = 0
100
- rows_per_event_min = 0
101
- rows_per_event_max = 0
103
+ rows_num_per_event = 0
104
+ rows_num_per_event_min = None
105
+ rows_num_per_event_max = None
102
106
103
107
104
108
# fetch available events from MySQL
105
109
for mysql_event in self .binlog_stream :
106
110
if isinstance (mysql_event , WriteRowsEvent ):
107
111
108
- rows_per_event = len (mysql_event .rows )
109
- if rows_per_event < rows_per_event_min :
110
- rows_per_event_min = rows_per_event
111
- if rows_per_event > rows_per_event_max :
112
- rows_per_event_max = rows_per_event
112
+ rows_num_per_event = len (mysql_event .rows )
113
+ if ( rows_num_per_event_min is None ) or ( rows_num_per_event < rows_num_per_event_min ) :
114
+ rows_num_per_event_min = rows_num_per_event
115
+ if ( rows_num_per_event_max is None ) or ( rows_num_per_event > rows_num_per_event_max ) :
116
+ rows_num_per_event_max = rows_num_per_event
113
117
114
118
if self .subscribers ('WriteRowsEvent' ):
115
119
self .write_rows_event_num += 1
@@ -139,12 +143,12 @@ def read(self):
139
143
self .performance_report (
140
144
start = start ,
141
145
rows_num = rows_num ,
142
- rows_per_event_min = rows_per_event_min ,
143
- rows_per_event_max = rows_per_event_max ,
146
+ rows_num_per_event_min = rows_num_per_event_min ,
147
+ rows_num_per_event_max = rows_num_per_event_max ,
144
148
)
145
149
rows_num_since_interim_performance_report = 0
146
- rows_per_event_min = 0
147
- rows_per_event_max = 0
150
+ rows_num_per_event_min = None
151
+ rows_num_per_event_max = None
148
152
else :
149
153
# skip non-insert events
150
154
pass
0 commit comments