@@ -89,11 +89,10 @@ async def run(self, states: List[State]):
8989 "failures" : 1 ,
9090 "last_window_failures" : None ,
9191 "sent" : False ,
92- "event_type" : event_type ,
9392 }
9493 else :
9594 alert ["failures" ] += 1
96- self .delayed_events [alert_identifier ] = event
95+ self .delayed_events [f" { event_type } - { alert_identifier } " ] = event
9796 continue # Skip sending immediately for ZendutyEvent or TelegramEvent
9897
9998 sent_events .append (event .send ())
@@ -188,10 +187,7 @@ async def process_zenduty_events(self, current_time):
188187 ):
189188 logger .debug (f"Resolving Zenduty alert { identifier } " )
190189 resolved = True
191- if (
192- info ["sent" ]
193- and info .get ("event_type" , "ZendutyEvent" ) == "ZendutyEvent"
194- ):
190+ if info ["sent" ]:
195191 response = await send_zenduty_alert (
196192 identifier , identifier , resolved = True
197193 )
@@ -212,16 +208,23 @@ async def process_zenduty_events(self, current_time):
212208 logger .debug (f"Raising Zenduty alert { identifier } " )
213209 self .open_alerts [identifier ]["sent" ] = True
214210 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 ())
218216
217+ # Send the alerts that were delayed due to thresholds
219218 await asyncio .gather (* to_alert )
219+
220+ # Remove alerts that have been resolved
220221 for identifier in to_remove :
221222 if self .open_alerts .get (identifier ):
222223 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 ]
225228
226229 with open (self .open_alerts_file , "w" ) as file :
227230 json .dump (self .open_alerts , file )
0 commit comments