Module: Puppet::Network::HTTP::Handler

Includes:
NewRelic::Agent::Instrumentation::ControllerInstrumentation
Defined in:
lib/puppet-newrelic.rb

Class Method Summary collapse

Class Method Details

.method_added(name) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/puppet-newrelic.rb', line 37

def self.method_added name
  name = name.to_sym
  names = [:do_find, :do_head, :do_search, :do_destroy, :do_save]
  return unless names.include?(name)
  return if instance_variable_defined?(:"@_#{name}_added")

  instance_variable_set(:"@_#{name}_added", true)

  class_eval <<-EOC
    def #{name}_with_newrelic(indirection_name, key, params, request, response)
      perform_action_with_newrelic_trace({ :name => indirection_name, :params => params, :request => request }) do
        #{name}_without_newrelic(indirection_name, key, params, request, response)
      end
    end

    alias #{name}_without_newrelic #{name}
    alias #{name} #{name}_with_newrelic
    EOC
end