diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-10 18:09:32 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-10 18:09:32 +0000 |
commit | ed5add1c2f001c9bd54e664b32f212de172eca6a (patch) | |
tree | f9449cbecde36706f25a62f426b5398566ae5cca /lib/gitlab/alerting | |
parent | de2fb5b82c92c90f90ed67ced45143c04e934fb8 (diff) | |
download | gitlab-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.rb | 19 |
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 |