Class: NewRelic::Agent::Instrumentation::Sidekiq::Server
- Inherits:
-
Object
- Object
- NewRelic::Agent::Instrumentation::Sidekiq::Server
- Includes:
- ControllerInstrumentation, Sidekiq::ServerMiddleware
- Defined in:
- lib/new_relic/agent/instrumentation/sidekiq/server.rb
Constant Summary
Constants included from ControllerInstrumentation
ControllerInstrumentation::NR_DEFAULT_OPTIONS, ControllerInstrumentation::NR_DO_NOT_TRACE_KEY, ControllerInstrumentation::NR_IGNORE_APDEX_KEY, ControllerInstrumentation::NR_IGNORE_ENDUSER_KEY
Class Method Summary collapse
Instance Method Summary collapse
-
#call(worker, msg, queue, *_) ⇒ Object
Client middleware has additional parameters, and our tests use the middleware client-side to work inline.
Methods included from ControllerInstrumentation
included, #perform_action_with_newrelic_trace
Methods included from ControllerInstrumentation::ClassMethods
#add_transaction_tracer, #already_added_transaction_tracer?, #build_method_names, #generate_argument_list, #newrelic_ignore, #newrelic_ignore_apdex, #newrelic_ignore_aspect, #newrelic_ignore_enduser, #newrelic_read_attr, #newrelic_write_attr, #parse_punctuation
Class Method Details
.default_trace_args(msg) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/new_relic/agent/instrumentation/sidekiq/server.rb', line 29 def self.default_trace_args(msg) { :name => 'perform', :class_name => msg['class'], :category => 'OtherTransaction/SidekiqJob' } end |
Instance Method Details
#call(worker, msg, queue, *_) ⇒ Object
Client middleware has additional parameters, and our tests use the middleware client-side to work inline.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/new_relic/agent/instrumentation/sidekiq/server.rb', line 12 def call(worker, msg, queue, *_) trace_args = if worker.respond_to?(:newrelic_trace_args) worker.newrelic_trace_args(msg, queue) else self.class.default_trace_args(msg) end trace_headers = msg.delete(NewRelic::NEWRELIC_KEY) perform_action_with_newrelic_trace(trace_args) do NewRelic::Agent::Transaction.merge_untrusted_agent_attributes(msg['args'], :'job.sidekiq.args', NewRelic::Agent::AttributeFilter::DST_NONE) ::NewRelic::Agent::DistributedTracing::accept_distributed_trace_headers(trace_headers, 'Other') if ::NewRelic::Agent.config[:'distributed_tracing.enabled'] && trace_headers&.any? yield end end |