Sha256: 908add5ad2b5cc4fd1e7e2bc8066f0a1b9df4efc17b23459de202588ff845ee0

Contents?: true

Size: 1.1 KB

Versions: 52

Compression:

Stored size: 1.1 KB

Contents

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.debug '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

52 entries across 52 versions & 4 rubygems

Version Path
newrelic_rpm-3.5.4.35.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.4.34 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.4.33 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.4.31.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.4.29.beta lib/new_relic/agent/instrumentation/active_merchant.rb
ghazel-newrelic_rpm-3.5.4 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.3.25 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.3.24 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.2.17 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.1.14 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.1.14.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.1.beta1 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.0.1 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.1.alpha lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.0 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.4.2.1 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.4.2 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.4.2.beta1 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.4.1 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.4.1.beta1 lib/new_relic/agent/instrumentation/active_merchant.rb