@cryptotaxi247 / CoPilot / commits / 5474329b

Enhance alert creation process with error handling and count of successfully created alerts (#361)

taylor_socfortress committed Dec 6, 2024 at 15:19 UTC 5474329bffed5033fd13ba8bcf3faa35e4b1d6bc
1 file changed +18 -10
backend/app/incidents/routes/incident_alert.py
+18 -10
@@ -157,14 +157,22 @@ async def create_alert_auto_route(
157 logger.info(f"Alerts to create in CoPilot: {alerts}")
158 if len(alerts.alerts) == 0:
159 return AutoCreateAlertResponse(success=False, message="No alerts to create in CoPilot")
160 +
161 + created_alerts_count = 0
162 +
163 for alert in alerts.alerts:
161 - logger.info(f"Creating alert {alert} in CoPilot")
162 - create_alert_request = CreateAlertRequest(
163 - index_name=await get_original_alert_index_name(origin_context=alert.source.origin_context),
164 - alert_id=await get_original_alert_id(alert.source.origin_context),
165 - )
166 - logger.info(f"Creating alert {create_alert_request.alert_id} in CoPilot")
167 - alert_id = await create_alert(create_alert_request, session)
168 - # ! ADD THE COPILOT ALERT ID TO GRAYLOG EVENT INDEX # !
169 - await add_copilot_alert_id(index_data=CreateAlertRequest(index_name=alert.index, alert_id=alert.id), alert_id=alert_id)
170 - return AutoCreateAlertResponse(success=True, message=f"{len(alerts.alerts)} alerts created in CoPilot")
164 + try:
165 + logger.info(f"Creating alert {alert} in CoPilot")
166 + create_alert_request = CreateAlertRequest(
167 + index_name=await get_original_alert_index_name(origin_context=alert.source.origin_context),
168 + alert_id=await get_original_alert_id(alert.source.origin_context),
169 + )
170 + logger.info(f"Creating alert {create_alert_request.alert_id} in CoPilot")
171 + alert_id = await create_alert(create_alert_request, session)
172 + # ! ADD THE COPILOT ALERT ID TO GRAYLOG EVENT INDEX # !
173 + await add_copilot_alert_id(index_data=CreateAlertRequest(index_name=alert.index, alert_id=alert.id), alert_id=alert_id)
174 + created_alerts_count += 1
175 + except Exception as e:
176 + logger.error(f"Failed to create alert {alert} in CoPilot: {e}")
177 +
178 + return AutoCreateAlertResponse(success=True, message=f"{created_alerts_count} alerts created in CoPilot")