Sha256: 102a9fc12ae61ed663d696673c867813e801b53c28bdd848b2994be9da4b5c7d

Contents?: true

Size: 1.54 KB

Versions: 14

Compression:

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

require 'new_relic/agent/instrumentation/active_record_prepend'
require 'new_relic/agent/instrumentation/active_record_subscriber'
require 'new_relic/agent/prepend_supportability'

DependencyDetection.defer do
  named :active_record_4

  depends_on do
    defined?(::ActiveRecord) && defined?(::ActiveRecord::Base) &&
      defined?(::ActiveRecord::VERSION) &&
      ::ActiveRecord::VERSION::MAJOR.to_i == 4
  end

  depends_on do
    !NewRelic::Agent.config[:disable_activerecord_instrumentation] &&
      !NewRelic::Agent::Instrumentation::ActiveRecordSubscriber.subscribed?
  end

  executes do
    ::NewRelic::Agent.logger.info 'Installing ActiveRecord 4 instrumentation'
  end

  executes do
    ActiveSupport::Notifications.subscribe('sql.active_record',
      NewRelic::Agent::Instrumentation::ActiveRecordSubscriber.new)

    ActiveSupport.on_load(:active_record) do
      ::NewRelic::Agent::PrependSupportability.record_metrics_for(::ActiveRecord::Base, ::ActiveRecord::Relation)

      if NewRelic::Agent.config[:prepend_active_record_instrumentation]
        ::ActiveRecord::Base.prepend ::NewRelic::Agent::Instrumentation::ActiveRecordPrepend::BaseExtensions
        ::ActiveRecord::Relation.prepend ::NewRelic::Agent::Instrumentation::ActiveRecordPrepend::RelationExtensions
      else
        ::NewRelic::Agent::Instrumentation::ActiveRecordHelper.instrument_additional_methods
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
newrelic_rpm-6.2.0.354 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-6.1.0.352 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-6.0.0.351 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.7.0.350 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.6.0.349 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.5.0.348 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.4.0.347 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.3.0.346 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.2.0.345 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.1.0.344 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-5.0.0.342 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-4.8.0.341 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-4.7.1.340 lib/new_relic/agent/instrumentation/active_record_4.rb
newrelic_rpm-4.7.0.339 lib/new_relic/agent/instrumentation/active_record_4.rb