@@ -89,11 +89,10 @@ async def run(self, states: List[State]):
89
89
"failures" : 1 ,
90
90
"last_window_failures" : None ,
91
91
"sent" : False ,
92
- "event_type" : event_type ,
93
92
}
94
93
else :
95
94
alert ["failures" ] += 1
96
- self .delayed_events [alert_identifier ] = event
95
+ self .delayed_events [f" { event_type } - { alert_identifier } " ] = event
97
96
continue # Skip sending immediately for ZendutyEvent or TelegramEvent
98
97
99
98
sent_events .append (event .send ())
@@ -188,10 +187,7 @@ async def process_zenduty_events(self, current_time):
188
187
):
189
188
logger .debug (f"Resolving Zenduty alert { identifier } " )
190
189
resolved = True
191
- if (
192
- info ["sent" ]
193
- and info .get ("event_type" , "ZendutyEvent" ) == "ZendutyEvent"
194
- ):
190
+ if info ["sent" ]:
195
191
response = await send_zenduty_alert (
196
192
identifier , identifier , resolved = True
197
193
)
@@ -212,16 +208,23 @@ async def process_zenduty_events(self, current_time):
212
208
logger .debug (f"Raising Zenduty alert { identifier } " )
213
209
self .open_alerts [identifier ]["sent" ] = True
214
210
self .open_alerts [identifier ]["last_alert" ] = current_time .isoformat ()
215
- event = self .delayed_events .get (identifier )
216
- if event :
217
- to_alert .append (event .send ())
211
+ for event_type in ["ZendutyEvent" , "TelegramEvent" ]:
212
+ key = f"{ event_type } -{ identifier } "
213
+ event = self .delayed_events .get (key )
214
+ if event :
215
+ to_alert .append (event .send ())
218
216
217
+ # Send the alerts that were delayed due to thresholds
219
218
await asyncio .gather (* to_alert )
219
+
220
+ # Remove alerts that have been resolved
220
221
for identifier in to_remove :
221
222
if self .open_alerts .get (identifier ):
222
223
del self .open_alerts [identifier ]
223
- if self .delayed_events .get (identifier ):
224
- del self .delayed_events [identifier ]
224
+ for event_type in ["ZendutyEvent" , "TelegramEvent" ]:
225
+ key = f"{ event_type } -{ identifier } "
226
+ if self .delayed_events .get (key ):
227
+ del self .delayed_events [key ]
225
228
226
229
with open (self .open_alerts_file , "w" ) as file :
227
230
json .dump (self .open_alerts , file )
0 commit comments