Sha256: 87812e55a4cc26853854864f99aa32972ed5bf9732fc0b737ed170c4fd4cb95d

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

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

require 'set'

DependencyDetection.defer do
  @name = :merb_controller

  depends_on do
    defined?(Merb) && defined?(Merb::Controller)
  end

  executes do
    ::NewRelic::Agent.logger.info 'Installing Merb Controller instrumentation'
  end

  executes do
    require 'merb-core/controller/merb_controller'

    Merb::Controller.class_eval do
      include NewRelic::Agent::Instrumentation::ControllerInstrumentation

      # determine the path that is used in the metric name for
      # the called controller action
      def newrelic_metric_path
        "#{controller_name}/#{action_name}"
      end

      protected

      def _dispatch_with_newrelic_trace(*args)
        options = {}
        options[:params] = params
        perform_action_with_newrelic_trace(options) do
          _dispatch_without_newrelic_trace(*args)
        end
      end

      alias_method :_dispatch_without_newrelic_trace, :_dispatch
      alias_method :_dispatch, :_dispatch_with_newrelic_trace
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
newrelic_rpm-7.2.0 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-7.1.0 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-7.0.0 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-6.15.0 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-6.14.0 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-6.13.1 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-6.13.0 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-6.12.0.367 lib/new_relic/agent/instrumentation/merb/controller.rb