Sha256: d20dd5f62f106b23dfc4918413204f80d168fe23fbd995c598f63e1fa070038a

Contents?: true

Size: 1.2 KB

Versions: 17

Compression:

Stored size: 1.2 KB

Contents

# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
# frozen_string_literal: true

module NewRelic::Agent::Instrumentation
  module Resque
    include NewRelic::Agent::Instrumentation::ControllerInstrumentation

    INSTRUMENTATION_NAME = NewRelic::Agent.base_name(name)

    def with_tracing
      NewRelic::Agent.record_instrumentation_invocation(INSTRUMENTATION_NAME)

      begin
        perform_action_with_newrelic_trace(
          :name => 'perform',
          :class_name => self.payload_class,
          :category => 'OtherTransaction/ResqueJob'
        ) do
          NewRelic::Agent::Transaction.merge_untrusted_agent_attributes(
            args,
            :'job.resque.args',
            NewRelic::Agent::AttributeFilter::DST_NONE
          )

          yield
        end
      ensure
        # Stopping the event loop before flushing the pipe.
        # The goal is to avoid conflict during write.
        if NewRelic::Agent::Instrumentation::Resque::Helper.resque_fork_per_job?
          NewRelic::Agent.agent.stop_event_loop
          NewRelic::Agent.agent.flush_pipe_data
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
newrelic_rpm-9.17.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.16.1 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.16.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.15.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.14.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.13.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.12.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.11.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.10.2 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.10.1 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.10.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.9.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.8.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.7.1 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.7.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.6.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb
newrelic_rpm-9.5.0 lib/new_relic/agent/instrumentation/resque/instrumentation.rb