diff options
Diffstat (limited to 'app/services/concerns/alert_management/alert_processing.rb')
-rw-r--r-- | app/services/concerns/alert_management/alert_processing.rb | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/app/services/concerns/alert_management/alert_processing.rb b/app/services/concerns/alert_management/alert_processing.rb index 7b6f681fe3e..98d255dec27 100644 --- a/app/services/concerns/alert_management/alert_processing.rb +++ b/app/services/concerns/alert_management/alert_processing.rb @@ -19,11 +19,7 @@ module AlertManagement # Updates or creates alert from payload for project # including system notes def process_alert - if alert.persisted? - process_existing_alert - else - process_new_alert - end + alert.persisted? ? process_existing_alert : process_new_alert end # Creates or closes issue for alert and notifies stakeholders @@ -33,22 +29,16 @@ module AlertManagement end def process_existing_alert - if resolving_alert? - process_resolved_alert - else - process_firing_alert - end + resolving_alert? ? process_resolved_alert : process_firing_alert end def process_resolved_alert SystemNoteService.log_resolving_alert(alert, alert_source) - return unless auto_close_incident? - if alert.resolve(incoming_payload.ends_at) SystemNoteService.change_alert_status(alert, User.alert_bot) - close_issue(alert.issue) + close_issue(alert.issue) if auto_close_incident? else logger.warn( message: 'Unable to update AlertManagement::Alert status to resolved', @@ -66,7 +56,7 @@ module AlertManagement return if issue.blank? || issue.closed? ::Issues::CloseService - .new(project, User.alert_bot) + .new(project: project, current_user: User.alert_bot) .execute(issue, system_note: false) SystemNoteService.auto_resolve_prometheus_alert(issue, project, User.alert_bot) if issue.reset.closed? @@ -76,6 +66,8 @@ module AlertManagement if alert.save alert.execute_services SystemNoteService.create_new_alert(alert, alert_source) + + process_resolved_alert if resolving_alert? else logger.warn( message: "Unable to create AlertManagement::Alert from #{alert_source}", @@ -88,7 +80,7 @@ module AlertManagement def process_incident_issues return if alert.issue || alert.resolved? - ::IncidentManagement::ProcessAlertWorker.perform_async(nil, nil, alert.id) + ::IncidentManagement::ProcessAlertWorkerV2.perform_async(alert.id) end def send_alert_email @@ -128,7 +120,7 @@ module AlertManagement end def alert_source - alert.monitoring_tool + incoming_payload.monitoring_tool end def logger @@ -137,4 +129,4 @@ module AlertManagement end end -AlertManagement::AlertProcessing.prepend_ee_mod +AlertManagement::AlertProcessing.prepend_mod |