Merge branch 'fix-sidekiq-sentry-context' into 'master'

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

See merge request !6004
This commit is contained in:
Robert Speicher 2016-08-31 17:04:23 +00:00
commit 347ba7ea41
3 changed files with 30 additions and 20 deletions

View File

@ -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

View File

@ -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

27
lib/gitlab/sentry.rb Normal file
View File

@ -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