Sha256: 3b73c39c72bd0cc620a69d03c6940c7f20747988e71f294cf1050d5a0e83ad13

Contents?: true

Size: 1.26 KB

Versions: 17

Compression:

Stored size: 1.26 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

DependencyDetection.defer do
  @name = :active_merchant
  
  depends_on do
    defined?(ActiveMerchant) && defined?(ActiveMerchant::Billing) &&
      defined?(ActiveMerchant::Billing::Gateway) &&
      ActiveMerchant::Billing::Gateway.respond_to?(:implementations)
  end
  
  executes do
    ::NewRelic::Agent.logger.info 'Installing ActiveMerchant instrumentation'
  end
  
  executes do
    ActiveMerchant::Billing::Gateway.implementations.each do |gateway|
      gateway.class_eval do
        implemented_methods = public_instance_methods(false)
        gateway_name = self.name.split('::').last
        [:authorize, :purchase, :credit, :void, :capture, :recurring].each do |operation|
          if implemented_methods.include?(operation.to_s)
            add_method_tracer operation, "ActiveMerchant/gateway/#{gateway_name}/#{operation}", :scoped_metric_only => true
            add_method_tracer operation, "ActiveMerchant/gateway/#{gateway_name}", :push_scope => false
            add_method_tracer operation, "ActiveMerchant/operation/#{operation}", :push_scope => false
          end
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
newrelic_rpm-3.6.5.130 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.4.122 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.4.113.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.3.111 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.3.106 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.3.105.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.3.104 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.3.103.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.2.96 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.2.90.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.1.88 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.1.87 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.1.86.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.1.85.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.0.83 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.0.78 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.6.0.74.beta lib/new_relic/agent/instrumentation/active_merchant.rb