@@ -50,6 +50,9 @@ def callee(session):
50
50
`previous_state` Utf8,
51
51
`state_change_date` Date,
52
52
`days_in_state` Uint64,
53
+ `previous_mute_state` Uint32,
54
+ `mute_state_change_date` Date,
55
+ `days_in_mute_state` Uint64,
53
56
`previous_state_filtered` Utf8,
54
57
`state_change_date_filtered` Date,
55
58
`days_in_state_filtered` Uint64,
@@ -90,6 +93,9 @@ def bulk_upsert(table_client, table_path, rows):
90
93
.add_column ("previous_state" , ydb .OptionalType (ydb .PrimitiveType .Utf8 ))
91
94
.add_column ("state_change_date" , ydb .OptionalType (ydb .PrimitiveType .Date ))
92
95
.add_column ("days_in_state" , ydb .OptionalType (ydb .PrimitiveType .Uint64 ))
96
+ .add_column ("previous_mute_state" , ydb .OptionalType (ydb .PrimitiveType .Uint32 ))
97
+ .add_column ("days_in_mute_state" , ydb .OptionalType (ydb .PrimitiveType .Uint64 ))
98
+ .add_column ("mute_state_change_date" , ydb .OptionalType (ydb .PrimitiveType .Date ))
93
99
.add_column ("previous_state_filtered" , ydb .OptionalType (ydb .PrimitiveType .Utf8 ))
94
100
.add_column ("state_change_date_filtered" , ydb .OptionalType (ydb .PrimitiveType .Date ))
95
101
.add_column ("days_in_state_filtered" , ydb .OptionalType (ydb .PrimitiveType .Uint64 ))
@@ -105,6 +111,11 @@ def process_test_group(name, group, last_day_data, default_start_date):
105
111
previous_state_list = []
106
112
state_change_date_list = []
107
113
days_in_state_list = []
114
+
115
+ previous_mute_state_list = []
116
+ mute_state_change_date_list = []
117
+ days_in_mute_state_list = []
118
+
108
119
previous_state_filtered_list = []
109
120
state_change_date_filtered_list = []
110
121
days_in_state_filtered_list = []
@@ -115,28 +126,42 @@ def process_test_group(name, group, last_day_data, default_start_date):
115
126
prev_state = last_day_data [last_day_data ['full_name' ] == name ]['state' ].iloc [0 ]
116
127
prev_date = last_day_data [last_day_data ['full_name' ] == name ]['state_change_date' ].iloc [0 ]
117
128
current_days_in_state = last_day_data [last_day_data ['full_name' ] == name ]['days_in_state' ].iloc [0 ]
129
+
130
+ prev_mute_state = last_day_data [last_day_data ['full_name' ] == name ]['is_muted' ].iloc [0 ]
131
+ prev_mute_date = last_day_data [last_day_data ['full_name' ] == name ]['mute_state_change_date' ].iloc [0 ]
132
+ current_days_in_mute_state = last_day_data [last_day_data ['full_name' ] == name ]['days_in_mute_state' ].iloc [0 ]
133
+
118
134
prev_state_filtered = last_day_data [last_day_data ['full_name' ] == name ]['state_filtered' ].iloc [0 ]
119
135
prev_date_filtered = last_day_data [last_day_data ['full_name' ] == name ]['state_change_date_filtered' ].iloc [0 ]
120
136
current_days_in_state_filtered = last_day_data [last_day_data ['full_name' ] == name ][
121
137
'days_in_state_filtered'
122
138
].iloc [0 ]
139
+
123
140
saved_prev_state = last_day_data [last_day_data ['full_name' ] == name ]['previous_state' ].iloc [0 ]
141
+ saved_prev_mute_state = last_day_data [last_day_data ['full_name' ] == name ]['previous_mute_state' ].iloc [0 ]
124
142
saved_prev_state_filtered = last_day_data [last_day_data ['full_name' ] == name ]['previous_state_filtered' ].iloc [0 ]
125
143
else :
126
144
prev_state = 'no_runs'
127
145
prev_date = datetime .datetime (default_start_date .year , default_start_date .month , default_start_date .day )
128
146
current_days_in_state = 0
147
+
148
+ prev_mute_state = 0
149
+ prev_mute_date = datetime .datetime (default_start_date .year , default_start_date .month , default_start_date .day )
150
+ current_days_in_mute_state = 0
151
+
129
152
state_filtered = ''
130
153
prev_state_filtered = 'no_runs'
131
154
prev_date_filtered = datetime .datetime (
132
155
default_start_date .year , default_start_date .month , default_start_date .day
133
156
)
134
157
current_days_in_state_filtered = 0
158
+
135
159
saved_prev_state = prev_state
160
+ saved_prev_mute_state = prev_mute_state
136
161
saved_prev_state_filtered = prev_state_filtered
137
162
138
163
for index , row in group .iterrows ():
139
-
164
+ # Process prev state
140
165
current_days_in_state += 1
141
166
if row ['state' ] != prev_state :
142
167
saved_prev_state = prev_state
@@ -146,6 +171,19 @@ def process_test_group(name, group, last_day_data, default_start_date):
146
171
previous_state_list .append (saved_prev_state )
147
172
state_change_date_list .append (prev_date )
148
173
days_in_state_list .append (current_days_in_state )
174
+
175
+ # Process prev mute state
176
+
177
+ current_days_in_mute_state += 1
178
+ if row ['is_muted' ] != prev_mute_state :
179
+ saved_prev_mute_state = prev_mute_state
180
+ prev_mute_state = row ['is_muted' ]
181
+ prev_mute_date = row ['date_window' ]
182
+ current_days_in_mute_state = 1
183
+
184
+ previous_mute_state_list .append (saved_prev_mute_state )
185
+ mute_state_change_date_list .append (prev_mute_date )
186
+ days_in_mute_state_list .append (current_days_in_mute_state )
149
187
150
188
# Process filtered states
151
189
@@ -170,6 +208,9 @@ def process_test_group(name, group, last_day_data, default_start_date):
170
208
'previous_state' : previous_state_list ,
171
209
'state_change_date' : state_change_date_list ,
172
210
'days_in_state' : days_in_state_list ,
211
+ 'previous_mute_state' : previous_mute_state_list ,
212
+ 'mute_state_change_date' : mute_state_change_date_list ,
213
+ 'days_in_mute_state' : days_in_mute_state_list ,
173
214
'previous_state_filtered' : previous_state_filtered_list ,
174
215
'state_change_date_filtered' : state_change_date_filtered_list ,
175
216
'days_in_state_filtered' : days_in_state_filtered_list ,
@@ -182,9 +223,9 @@ def determine_state(row):
182
223
is_muted = row ['is_muted' ]
183
224
184
225
if is_muted == 1 :
185
- if 'mute' in history_class :
226
+ if 'mute' in history_class or 'failure' in history_class :
186
227
return 'Muted Flaky'
187
- elif 'pass' in history_class :
228
+ elif 'pass' in history_class and not 'failure' in history_class and not 'mute' in history_class :
188
229
return 'Muted Stable'
189
230
elif 'skipped' in history_class or not history_class :
190
231
return 'Skipped'
@@ -284,9 +325,9 @@ def main():
284
325
tc_settings = ydb .TableClientSettings ().with_native_date_in_result_sets (enabled = False )
285
326
table_client = ydb .TableClient (driver , tc_settings )
286
327
base_date = datetime .datetime (1970 , 1 , 1 )
287
- default_start_date = datetime .date (2024 , 8 , 1 )
328
+ default_start_date = datetime .date (2024 , 11 , 1 )
288
329
today = datetime .date .today ()
289
- table_path = f'test_results/analytics/tests_monitor_test_with_filtered_states '
330
+ table_path = f'test_results/analytics/tests_monitor '
290
331
291
332
# Get last existing day
292
333
print ("Geting date of last collected monitor data" )
@@ -367,6 +408,9 @@ def main():
367
408
'previous_state' : row ['previous_state' ],
368
409
'state_change_date' : base_date + datetime .timedelta (days = row ['state_change_date' ]),
369
410
'days_in_state' : row ['days_in_state' ],
411
+ 'previous_mute_state' : row ['previous_mute_state' ],
412
+ 'mute_state_change_date' : base_date + datetime .timedelta (days = row ['mute_state_change_date' ]),
413
+ 'days_in_mute_state' : row ['days_in_mute_state' ],
370
414
'previous_state_filtered' : row ['previous_state_filtered' ],
371
415
'state_change_date_filtered' : base_date
372
416
+ datetime .timedelta (days = row ['state_change_date_filtered' ]),
@@ -518,6 +562,10 @@ def main():
518
562
'state' ,
519
563
'previous_state' ,
520
564
'state_change_date' ,
565
+ 'is_muted' ,
566
+ 'days_in_mute_state' ,
567
+ 'previous_mute_state' ,
568
+ 'mute_state_change_date' ,
521
569
'days_in_state_filtered' ,
522
570
'state_change_date_filtered' ,
523
571
'previous_state_filtered' ,
@@ -563,6 +611,9 @@ def main():
563
611
df .loc [group .index , 'previous_state' ] = results [i ]['previous_state' ]
564
612
df .loc [group .index , 'state_change_date' ] = results [i ]['state_change_date' ]
565
613
df .loc [group .index , 'days_in_state' ] = results [i ]['days_in_state' ]
614
+ df .loc [group .index , 'previous_mute_state' ] = results [i ]['previous_mute_state' ]
615
+ df .loc [group .index , 'mute_state_change_date' ] = results [i ]['mute_state_change_date' ]
616
+ df .loc [group .index , 'days_in_mute_state' ] = results [i ]['days_in_mute_state' ]
566
617
df .loc [group .index , 'previous_state_filtered' ] = results [i ]['previous_state_filtered' ]
567
618
df .loc [group .index , 'state_change_date_filtered' ] = results [i ]['state_change_date_filtered' ]
568
619
df .loc [group .index , 'days_in_state_filtered' ] = results [i ]['days_in_state_filtered' ]
@@ -572,6 +623,9 @@ def main():
572
623
previous_state_list = []
573
624
state_change_date_list = []
574
625
days_in_state_list = []
626
+ previous_mute_state_list = []
627
+ mute_state_change_date_list = []
628
+ days_in_mute_state_list = []
575
629
previous_state_filtered_list = []
576
630
state_change_date_filtered_list = []
577
631
days_in_state_filtered_list = []
@@ -581,6 +635,9 @@ def main():
581
635
previous_state_list = previous_state_list + result ['previous_state' ]
582
636
state_change_date_list = state_change_date_list + result ['state_change_date' ]
583
637
days_in_state_list = days_in_state_list + result ['days_in_state' ]
638
+ previous_mute_state_list = previous_mute_state_list + result ['previous_mute_state' ]
639
+ mute_state_change_date_list = mute_state_change_date_list + result ['mute_state_change_date' ]
640
+ days_in_mute_state_list = days_in_mute_state_list + result ['days_in_mute_state' ]
584
641
previous_state_filtered_list = previous_state_filtered_list + result ['previous_state_filtered' ]
585
642
state_change_date_filtered_list = state_change_date_filtered_list + result ['state_change_date_filtered' ]
586
643
days_in_state_filtered_list = days_in_state_filtered_list + result ['days_in_state_filtered' ]
@@ -595,6 +652,9 @@ def main():
595
652
df ['previous_state' ] = previous_state_list
596
653
df ['state_change_date' ] = state_change_date_list
597
654
df ['days_in_state' ] = days_in_state_list
655
+ df ['previous_mute_state' ] = previous_mute_state_list
656
+ df ['mute_state_change_date' ] = mute_state_change_date_list
657
+ df ['days_in_mute_state' ] = days_in_mute_state_list
598
658
df ['previous_state_filtered' ] = previous_state_filtered_list
599
659
df ['state_change_date_filtered' ] = state_change_date_filtered_list
600
660
df ['days_in_state_filtered' ] = days_in_state_filtered_list
@@ -604,9 +664,12 @@ def main():
604
664
print (f'Saving computed result in dataframe: { end_time - start_time } ' )
605
665
start_time = time .time ()
606
666
607
- df ['state_change_date' ] = df ['state_change_date' ].dt .date
608
667
df ['date_window' ] = df ['date_window' ].dt .date
668
+ df ['state_change_date' ] = df ['state_change_date' ].dt .date
609
669
df ['days_in_state' ] = df ['days_in_state' ].astype (int )
670
+ df ['previous_mute_state' ] = df ['previous_mute_state' ].astype (int )
671
+ df ['mute_state_change_date' ] = df ['mute_state_change_date' ].dt .date
672
+ df ['days_in_mute_state' ] = df ['days_in_mute_state' ].astype (int )
610
673
df ['state_change_date_filtered' ] = df ['state_change_date_filtered' ].dt .date
611
674
df ['days_in_state_filtered' ] = df ['days_in_state_filtered' ].astype (int )
612
675
@@ -637,6 +700,9 @@ def main():
637
700
'previous_state' ,
638
701
'state_change_date' ,
639
702
'days_in_state' ,
703
+ 'previous_mute_state' ,
704
+ 'mute_state_change_date' ,
705
+ 'days_in_mute_state' ,
640
706
'previous_state_filtered' ,
641
707
'state_change_date_filtered' ,
642
708
'days_in_state_filtered' ,
0 commit comments