module OneApm::Agent::Instrumentation::ActiveJobHelper
Constants
- ADAPTER_REGEX
Public Class Methods
adapter()
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 75 def self.adapter name = if ::ActiveJob::Base.queue_adapter.respond_to?(:name) ::ActiveJob::Base.queue_adapter.name else ::ActiveJob::Base.queue_adapter.to_s end clean_adapter_name(name) end
clean_adapter_name(name)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 86 def self.clean_adapter_name(name) name = "ActiveJob::#{$1}" if ADAPTER_REGEX =~ name name end
enqueue(job, block)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 29 def self.enqueue(job, block) run_in_trace(job, block, :Produce) end
perform(job, block)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 33 def self.perform(job, block) state = ::OneApm::TransactionState.tl_get # Don't nest transactions if we're already in a web transaction. # Probably inline processing the job if that happens, so just trace. if state.in_web_transaction? run_in_trace(job, block, :Consume) elsif state.in_background_transaction? ::OneApm::Transaction.set_default_transaction_name( transaction_name_suffix_for_job(job), transaction_category) block.call else run_in_transaction(state, job, block) end end
run_in_trace(job, block, event)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 50 def self.run_in_trace(job, block, event) trace_execution_scoped("MessageBroker/#{adapter}/Queue/#{event}/Named/#{job.queue_name}") do block.call end end
run_in_transaction(state, job, block)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 56 def self.run_in_transaction(state, job, block) ::OneApm::Transaction.wrap(state, transaction_name_for_job(job), :other, &block) end
transaction_category()
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 63 def self.transaction_category "OtherTransaction/#{adapter}" end
transaction_name_for_job(job)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 71 def self.transaction_name_for_job(job) "#{transaction_category}/#{transaction_name_suffix_for_job(job)}" end
transaction_name_suffix_for_job(job)
click to toggle source
# File lib/one_apm/inst/background_job/active_job.rb, line 67 def self.transaction_name_suffix_for_job(job) "#{job.class}/execute" end