diff options
Diffstat (limited to 'app/services/alert_management/process_prometheus_alert_service.rb')
-rw-r--r-- | app/services/alert_management/process_prometheus_alert_service.rb | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/app/services/alert_management/process_prometheus_alert_service.rb b/app/services/alert_management/process_prometheus_alert_service.rb index 5c7698f724a..28ce5401a6c 100644 --- a/app/services/alert_management/process_prometheus_alert_service.rb +++ b/app/services/alert_management/process_prometheus_alert_service.rb @@ -9,6 +9,10 @@ module AlertManagement return bad_request unless incoming_payload.has_required_attributes? process_alert_management_alert + return bad_request unless alert.persisted? + + process_incident_issues if process_issues? + send_alert_email if send_email? ServiceResponse.success end @@ -30,8 +34,6 @@ module AlertManagement else create_alert_management_alert end - - process_incident_issues if process_issues? end def reset_alert_management_alert_status @@ -85,12 +87,17 @@ module AlertManagement end def process_incident_issues - return unless alert.persisted? - return if alert.issue + return if alert.issue || alert.resolved? IncidentManagement::ProcessAlertWorker.perform_async(nil, nil, alert.id) end + def send_alert_email + notification_service + .async + .prometheus_alerts_fired(project, [alert]) + end + def logger @logger ||= Gitlab::AppLogger end |