Class: SystemNotes::AlertManagementService

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/system_notes/alert_management_service.rb

Instance Attribute Summary

Attributes inherited from BaseService

#author, #noteable, #project

Instance Method Summary collapse

Methods inherited from BaseService

#initialize

Constructor Details

This class inherits a constructor from SystemNotes::BaseService

Instance Method Details

#change_alert_status(reason) ⇒ Object

Called when the status of an AlertManagement::Alert has changed

alert - AlertManagement::Alert object.

Example Note text:

"changed the status to Acknowledged"
"changed the status to Acknowledged by changing the incident status of #540"

Returns the created Note object



30
31
32
33
34
35
# File 'app/services/system_notes/alert_management_service.rb', line 30

def change_alert_status(reason)
  status = noteable.state.to_s.titleize
  body = "changed the status to **#{status}**#{reason}"

  create_note(NoteSummary.new(noteable, project, author, body, action: 'status'))
end

#create_new_alert(monitoring_tool) ⇒ Object

Called when the a new AlertManagement::Alert has been created

alert - AlertManagement::Alert object.

Example Note text:

"GitLab Alert Bot logged an alert from Prometheus"

Returns the created Note object



14
15
16
17
18
# File 'app/services/system_notes/alert_management_service.rb', line 14

def create_new_alert(monitoring_tool)
  body = "logged an alert from **#{monitoring_tool}**"

  create_note(NoteSummary.new(noteable, project, Users::Internal.alert_bot, body, action: 'new_alert_added'))
end

#log_resolving_alert(monitoring_tool) ⇒ Object

Called when an alert is resolved due to received resolving alert payload

alert - AlertManagement::Alert object.

Example Note text:

"changed the status to Resolved by closing issue #17"

Returns the created Note object



61
62
63
64
65
# File 'app/services/system_notes/alert_management_service.rb', line 61

def log_resolving_alert(monitoring_tool)
  body = "logged a recovery alert from **#{monitoring_tool}**"

  create_note(NoteSummary.new(noteable, project, Users::Internal.alert_bot, body, action: 'new_alert_added'))
end

#new_alert_issue(issue) ⇒ Object

Called when an issue is created based on an AlertManagement::Alert

issue - Issue object.

Example Note text:

"created incident #17 for this alert"

Returns the created Note object



46
47
48
49
50
# File 'app/services/system_notes/alert_management_service.rb', line 46

def new_alert_issue(issue)
  body = "created incident #{issue.to_reference(project)} for this alert"

  create_note(NoteSummary.new(noteable, project, author, body, action: 'alert_issue_added'))
end