diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-13 13:26:31 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-13 13:26:31 +0000 |
commit | b7dfe2ae4054aa40e15182fd3c6cb7dd39f131db (patch) | |
tree | 5ab080ca9cadeb6cd9578bf301e4e9e8810bed9e /lib/gitlab/email | |
parent | 25cb337cf12438169f1b14bc5dace8a06a7356e3 (diff) | |
download | gitlab-ce-b7dfe2ae4054aa40e15182fd3c6cb7dd39f131db.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/email')
-rw-r--r-- | lib/gitlab/email/handler.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/email/handler/base_handler.rb | 8 | ||||
-rw-r--r-- | lib/gitlab/email/handler/create_issue_handler.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/email/handler/create_merge_request_handler.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/email/handler/create_note_handler.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/email/handler/unsubscribe_handler.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/email/receiver.rb | 6 |
7 files changed, 29 insertions, 3 deletions
diff --git a/lib/gitlab/email/handler.rb b/lib/gitlab/email/handler.rb index cebedb19dcc..e9a7c9bcf5c 100644 --- a/lib/gitlab/email/handler.rb +++ b/lib/gitlab/email/handler.rb @@ -3,6 +3,8 @@ module Gitlab module Email module Handler + prepend_if_ee('::EE::Gitlab::Email::Handler') # rubocop: disable Cop/InjectEnterpriseEditionModule + def self.handlers @handlers ||= load_handlers end diff --git a/lib/gitlab/email/handler/base_handler.rb b/lib/gitlab/email/handler/base_handler.rb index f89d1d15010..2e487c42cb5 100644 --- a/lib/gitlab/email/handler/base_handler.rb +++ b/lib/gitlab/email/handler/base_handler.rb @@ -24,6 +24,14 @@ module Gitlab def metrics_params { handler: self.class.name } end + + # Each handler should use it's own metric event. Otherwise there + # is a possibility that within the same Sidekiq process, that same + # event with different metrics_params will cause Prometheus to + # throw an error + def metrics_event + raise NotImplementedError + end end end end diff --git a/lib/gitlab/email/handler/create_issue_handler.rb b/lib/gitlab/email/handler/create_issue_handler.rb index 78a3a9489ac..22fc8addcd9 100644 --- a/lib/gitlab/email/handler/create_issue_handler.rb +++ b/lib/gitlab/email/handler/create_issue_handler.rb @@ -48,6 +48,10 @@ module Gitlab end # rubocop: enable CodeReuse/ActiveRecord + def metrics_event + :receive_email_create_issue + end + private def create_issue diff --git a/lib/gitlab/email/handler/create_merge_request_handler.rb b/lib/gitlab/email/handler/create_merge_request_handler.rb index b3b5063f2ca..e8071bcafd0 100644 --- a/lib/gitlab/email/handler/create_merge_request_handler.rb +++ b/lib/gitlab/email/handler/create_merge_request_handler.rb @@ -54,6 +54,10 @@ module Gitlab super.merge(includes_patches: patch_attachments.any?) end + def metrics_event + :receive_email_create_merge_request + end + private def build_merge_request diff --git a/lib/gitlab/email/handler/create_note_handler.rb b/lib/gitlab/email/handler/create_note_handler.rb index b00af15364d..28200643296 100644 --- a/lib/gitlab/email/handler/create_note_handler.rb +++ b/lib/gitlab/email/handler/create_note_handler.rb @@ -32,6 +32,10 @@ module Gitlab record_name: 'comment') end + def metrics_event + :receive_email_create_note + end + private def author diff --git a/lib/gitlab/email/handler/unsubscribe_handler.rb b/lib/gitlab/email/handler/unsubscribe_handler.rb index 20e4c125626..528857aff14 100644 --- a/lib/gitlab/email/handler/unsubscribe_handler.rb +++ b/lib/gitlab/email/handler/unsubscribe_handler.rb @@ -36,6 +36,10 @@ module Gitlab noteable.unsubscribe(sent_notification.recipient) end + def metrics_event + :receive_email_unsubscribe + end + private attr_reader :reply_token diff --git a/lib/gitlab/email/receiver.rb b/lib/gitlab/email/receiver.rb index d28f6b301fa..7da8b385266 100644 --- a/lib/gitlab/email/receiver.rb +++ b/lib/gitlab/email/receiver.rb @@ -39,9 +39,9 @@ module Gitlab raise UnknownIncomingEmail unless handler - Gitlab::Metrics.add_event(:receive_email, handler.metrics_params) - - handler.execute + handler.execute.tap do + Gitlab::Metrics.add_event(handler.metrics_event, handler.metrics_params) + end end private |