summaryrefslogtreecommitdiff
path: root/lib/gitlab/alerting
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-10 18:09:32 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-10 18:09:32 +0000
commited5add1c2f001c9bd54e664b32f212de172eca6a (patch)
treef9449cbecde36706f25a62f426b5398566ae5cca /lib/gitlab/alerting
parentde2fb5b82c92c90f90ed67ced45143c04e934fb8 (diff)
downloadgitlab-ce-ed5add1c2f001c9bd54e664b32f212de172eca6a.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/alerting')
-rw-r--r--lib/gitlab/alerting/alert.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/gitlab/alerting/alert.rb b/lib/gitlab/alerting/alert.rb
index f6f52e392c6..7d97bd1bb52 100644
--- a/lib/gitlab/alerting/alert.rb
+++ b/lib/gitlab/alerting/alert.rb
@@ -21,6 +21,12 @@ module Gitlab
end
end
+ def gitlab_prometheus_alert_id
+ strong_memoize(:gitlab_prometheus_alert_id) do
+ payload&.dig('labels', 'gitlab_prometheus_alert_id')
+ end
+ end
+
def title
strong_memoize(:title) do
gitlab_alert&.title || parse_title_from_payload
@@ -120,12 +126,19 @@ module Gitlab
end
def parse_gitlab_alert_from_payload
- return unless metric_id
+ alerts_found = matching_gitlab_alerts
+
+ return if alerts_found.blank? || alerts_found.size > 1
+
+ alerts_found.first
+ end
+
+ def matching_gitlab_alerts
+ return unless metric_id || gitlab_prometheus_alert_id
Projects::Prometheus::AlertsFinder
- .new(project: project, metric: metric_id)
+ .new(project: project, metric: metric_id, id: gitlab_prometheus_alert_id)
.execute
- .first
end
def parse_title_from_payload