39 lines
1.2 KiB
Ruby
39 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Attribute mapping for alerts via generic alerting integration.
|
|
module Gitlab
|
|
module AlertManagement
|
|
module Payload
|
|
class Generic < Base
|
|
DEFAULT_TITLE = 'New: Alert'
|
|
DEFAULT_SOURCE = 'Generic Alert Endpoint'
|
|
|
|
attribute :description, paths: 'description'
|
|
attribute :ends_at, paths: 'end_time', type: :time
|
|
attribute :environment_name, paths: 'gitlab_environment_name'
|
|
attribute :hosts, paths: 'hosts'
|
|
attribute :monitoring_tool, paths: 'monitoring_tool'
|
|
attribute :runbook, paths: 'runbook'
|
|
attribute :service, paths: 'service'
|
|
attribute :starts_at, paths: 'start_time', type: :time, fallback: -> { Time.current.utc }
|
|
attribute :title, paths: 'title', fallback: -> { DEFAULT_TITLE }
|
|
|
|
attribute :severity_raw, paths: 'severity'
|
|
private :severity_raw
|
|
|
|
attribute :plain_gitlab_fingerprint, paths: 'fingerprint'
|
|
private :plain_gitlab_fingerprint
|
|
|
|
def resolved?
|
|
ends_at.present?
|
|
end
|
|
|
|
def source
|
|
super || DEFAULT_SOURCE
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Gitlab::AlertManagement::Payload::Generic.prepend_mod_with('Gitlab::AlertManagement::Payload::Generic')
|