Module: Gitlab::SecretDetection::GRPC::IntegratedErrorTracking
- Extended by:
- IntegratedErrorTracking
- Included in:
- IntegratedErrorTracking, ScannerService
- Defined in:
- lib/gitlab/secret_detection/grpc/integrated_error_tracking.rb
Instance Method Summary collapse
- #can_setup_sentry? ⇒ Boolean
- #ruleset_version ⇒ Object
- #setup(logger: Logger.new($stdout)) ⇒ Object
- #track_exception(exception, args = {}) ⇒ Object
Instance Method Details
#can_setup_sentry? ⇒ Boolean
58 59 60 |
# File 'lib/gitlab/secret_detection/grpc/integrated_error_tracking.rb', line 58 def can_setup_sentry? ENV.fetch('SD_ENV', '') == 'production' && ENV.fetch('SD_TRACKING_DSN', '') != '' end |
#ruleset_version ⇒ Object
54 55 56 |
# File 'lib/gitlab/secret_detection/grpc/integrated_error_tracking.rb', line 54 def ruleset_version @ruleset_version ||= Gitlab::SecretDetection::Core::Ruleset.new.extract_ruleset_version || 'unknown' end |
#setup(logger: Logger.new($stdout)) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/gitlab/secret_detection/grpc/integrated_error_tracking.rb', line 24 def setup(logger: Logger.new($stdout)) if Sentry.initialized? logger.warn(message: "Sentry is already initialized, skipping re-setup") return end logger.info(message: "Initializing Sentry SDK for Integrated Error Tracking..") unless can_setup_sentry? logger.warn(message: "Integrated Error Tracking not available, skipping Sentry SDK initialization") return false end Sentry.init do |config| config.dsn = ENV.fetch('SD_TRACKING_DSN') config.environment = ENV.fetch('SD_ENV') config.release = Gitlab::SecretDetection::Gem::VERSION config.send_default_pii = true config.send_modules = false config.traces_sample_rate = 0.2 if ENV.fetch('ENABLE_SENTRY_PERFORMANCE_MONITORING', 'false') == 'true' end Sentry.set_context('ruleset', { version: ruleset_version }) true rescue StandardError => e logger.error(message: "Failed to initialize Sentry SDK for Integrated Error Tracking: #{e}") raise e end |
#track_exception(exception, args = {}) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/gitlab/secret_detection/grpc/integrated_error_tracking.rb', line 13 def track_exception(exception, args = {}) unless Sentry.initialized? logger.warn(message: "Cannot track exception in Error Tracking as Sentry is not initialized") return end args[:ruleset_version] = ruleset_version Sentry.capture_exception(exception, **args) end |