Sha256: 58ec676584b9c580ed6d1680a920b0d02eb0ed7b9997568f85741d18fe03bbee

Contents?: true

Size: 1.11 KB

Versions: 19

Compression:

Stored size: 1.11 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.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

19 entries across 19 versions & 3 rubygems

Version Path
wd_newrelic_rpm-3.5.8 lib/new_relic/agent/instrumentation/active_merchant.rb
sundawg_newrelic_rpm-3.5.8.2 lib/new_relic/agent/instrumentation/active_merchant.rb
sundawg_newrelic_rpm-3.5.8.1 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.8.72 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.8.70 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.8.64.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.7.59 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.7.59.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.7.58.beta lib/new_relic/agent/instrumentation/active_merchant.rb
wd_newrelic_rpm-3.5.6 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.7.57.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.6.55 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.6.48.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.6.46.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.6.42.beta lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.5.39.beta lib/new_relic/agent/instrumentation/active_merchant.rb
wd_newrelic_rpm-3.5.5 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.5.38 lib/new_relic/agent/instrumentation/active_merchant.rb
newrelic_rpm-3.5.5.540.dev lib/new_relic/agent/instrumentation/active_merchant.rb