Sha256: 206d92b9bbe22038ffc9e8ddc3649395bb424cc66bc8fce506f702ca860845e3

Contents?: true

Size: 1.34 KB

Versions: 61

Compression:

Stored size: 1.34 KB

Contents

DependencyDetection.defer do
  @name = :rails2_error
  
  depends_on do
    defined?(ActionController) && defined?(ActionController::Base)
  end

  depends_on do
    defined?(::Rails) && ::Rails::VERSION::MAJOR.to_i == 2
  end

  executes do
    NewRelic::Agent.logger.debug 'Installing Rails 2 Error instrumentation'
  end  
  
  executes do

    ActionController::Base.class_eval do

      # Make a note of an exception associated with the currently executing
      # controller action.  Note that this used to be available on Object
      # but we replaced that global method with NewRelic::Agent#notice_error.
      # Use that one outside of controller actions.
      def newrelic_notice_error(exception, custom_params = {})
        NewRelic::Agent::Instrumentation::MetricFrame.notice_error exception, :custom_params => custom_params, :request => request
      end

      def rescue_action_with_newrelic_trace(exception)
        rescue_action_without_newrelic_trace exception
        NewRelic::Agent::Instrumentation::MetricFrame.notice_error exception, :request => request
      end

      # Compare with #alias_method_chain, which is not available in
      # Rails 1.1:
      alias_method :rescue_action_without_newrelic_trace, :rescue_action
      alias_method :rescue_action, :rescue_action_with_newrelic_trace
      protected :rescue_action

    end
  end
end

Version data entries

61 entries across 61 versions & 4 rubygems

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