diff options
author | Stan Hu <stanhu@gmail.com> | 2016-08-25 06:06:16 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-08-26 05:42:52 +0300 |
commit | 0fe4cf2b0fdbc33572f11bba1a4426ee05ed7599 (patch) | |
tree | f1c8fb645d32aa6dca530cccef0350d6811b049d | |
parent | 1bf2fe276ff084d3b2e0860710ec115a317dd9fc (diff) |
Fix Sentry not reporting right program for Sidekiq workers
Moves program tag into the global configuration since this doesn't
change and since Sidekiq workers get a unique context for each event.
Closes #21410
-rw-r--r-- | app/helpers/sentry_helper.rb | 22 | ||||
-rw-r--r-- | config/initializers/sentry.rb | 1 | ||||
-rw-r--r-- | lib/gitlab/sentry.rb | 27 |
3 files changed, 30 insertions, 20 deletions
diff --git a/app/helpers/sentry_helper.rb b/app/helpers/sentry_helper.rb index f8cccade15b..3d255df66a0 100644 --- a/app/helpers/sentry_helper.rb +++ b/app/helpers/sentry_helper.rb @@ -1,27 +1,9 @@ module SentryHelper def sentry_enabled? - Rails.env.production? && current_application_settings.sentry_enabled? + Gitlab::Sentry.enabled? end def sentry_context - return unless sentry_enabled? - - if current_user - Raven.user_context( - id: current_user.id, - email: current_user.email, - username: current_user.username, - ) - end - - Raven.tags_context(program: sentry_program_context) - end - - def sentry_program_context - if Sidekiq.server? - 'sidekiq' - else - 'rails' - end + Gitlab::Sentry.context(current_user) end end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 74fef7cadfe..5892c1de024 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -18,6 +18,7 @@ if Rails.env.production? # Sanitize fields based on those sanitized from Rails. config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) + config.tags = { program: Gitlab::Sentry.program_context } end end end diff --git a/lib/gitlab/sentry.rb b/lib/gitlab/sentry.rb new file mode 100644 index 00000000000..117fc508135 --- /dev/null +++ b/lib/gitlab/sentry.rb @@ -0,0 +1,27 @@ +module Gitlab + module Sentry + def self.enabled? + Rails.env.production? && current_application_settings.sentry_enabled? + end + + def self.context(current_user = nil) + return unless self.enabled? + + if current_user + Raven.user_context( + id: current_user.id, + email: current_user.email, + username: current_user.username, + ) + end + end + + def self.program_context + if Sidekiq.server? + 'sidekiq' + else + 'rails' + end + end + end +end |