Module: Gitlab::ErrorTracking::Processor::SidekiqProcessor
- Defined in:
- lib/gitlab/error_tracking/processor/sidekiq_processor.rb
Constant Summary collapse
- FILTERED_STRING =
'[FILTERED]'
Class Method Summary collapse
- .call(event) ⇒ Object
- .filter_arguments(args, klass) ⇒ Object
- .loggable_arguments(args, klass) ⇒ Object
- .permitted_arguments_for_worker(klass) ⇒ Object
Class Method Details
.call(event) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/gitlab/error_tracking/processor/sidekiq_processor.rb', line 44 def call(event) sidekiq = event&.extra&.dig(:sidekiq) return event unless sidekiq sidekiq = sidekiq.deep_dup sidekiq.delete(:jobstr) # 'args' in this hash => from Gitlab::ErrorTracking.track_* # 'args' in :job => from default error handler job_holder = sidekiq.key?('args') ? sidekiq : sidekiq[:job] return event unless job_holder if job_holder['args'] job_holder['args'] = filter_arguments(job_holder['args'], job_holder['class']).to_a end event.extra[:sidekiq] = sidekiq event end |
.filter_arguments(args, klass) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/gitlab/error_tracking/processor/sidekiq_processor.rb', line 12 def filter_arguments(args, klass) args.lazy.with_index.map do |arg, i| case arg when Numeric arg else if permitted_arguments_for_worker(klass).include?(i) arg else FILTERED_STRING end end end end |
.loggable_arguments(args, klass) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/gitlab/error_tracking/processor/sidekiq_processor.rb', line 37 def loggable_arguments(args, klass) Gitlab::Utils::LogLimitedArray .log_limited_array(filter_arguments(args, klass)) .map(&:to_s) .to_a end |
.permitted_arguments_for_worker(klass) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/gitlab/error_tracking/processor/sidekiq_processor.rb', line 27 def permitted_arguments_for_worker(klass) @permitted_arguments_for_worker ||= {} @permitted_arguments_for_worker[klass] ||= begin klass.constantize&.loggable_arguments&.to_set rescue StandardError Set.new end end |