Module: RequestTrail::ActiveJobSubscriber

Defined in:
lib/request_trail/active_job_subscriber.rb

Defined Under Namespace

Classes: JobContext

Class Method Summary collapse

Class Method Details

.build_context(job) ⇒ Object



31
32
33
34
35
36
# File 'lib/request_trail/active_job_subscriber.rb', line 31

def self.build_context(job)
  JobContext.new(
    request_method: "JOB",
    path: "#{job.class.name || job.class.to_s} jid:#{job.job_id}"
  )
end

.included(base) ⇒ Object



7
8
9
# File 'lib/request_trail/active_job_subscriber.rb', line 7

def self.included(base)
  base.around_perform { |job, block| RequestTrail::ActiveJobSubscriber.trace(job, block) }
end

.log(job) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/request_trail/active_job_subscriber.rb', line 23

def self.log(job)
  collector = Collector.current
  return if collector.elapsed_ms < RequestTrail.configuration.threshold_ms

  message = RequestTrail.formatter.format(build_context(job), collector)
  RequestTrail.configuration.logger.send(RequestTrail.configuration.log_level, message)
end

.trace(job, block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/request_trail/active_job_subscriber.rb', line 11

def self.trace(job, block)
  if RequestTrail.configuration.enabled && RequestTrail.configuration.sampled?
    Collector.start
    block.call
    log(job)
  else
    block.call
  end
ensure
  Collector.stop
end