Sha256: bbb26a47e1700e64f5d354d3c8a0533391d6c1023358a98fc4b3640d71431c25

Contents?: true

Size: 1.54 KB

Versions: 61

Compression:

Stored size: 1.54 KB

Contents

DependencyDetection.defer do
  @name = :rails_action_web_service
  
  depends_on do
    defined?(ActionWebService)
  end
  
  executes do
    NewRelic::Agent.logger.debug 'Installing Rails ActionWebService instrumentation'
  end  
  
  executes do
    # NewRelic Agent instrumentation for WebServices

    # Note Action Web Service is removed from default package in rails
    # 2.0, this is purely here as a service to our legacy customers.

    # instrumentation for Web Service martialing - XML RPC
    ActionWebService::Protocol::XmlRpc::XmlRpcProtocol.class_eval do
      add_method_tracer :decode_request, "WebService/Xml Rpc/XML Decode"
      add_method_tracer :encode_request, "WebService/Xml Rpc/XML Encode"
      add_method_tracer :decode_response, "WebService/Xml Rpc/XML Decode"
      add_method_tracer :encode_response, "WebService/Xml Rpc/XML Encode"
    end

    # instrumentation for Web Service martialing - Soap
    ActionWebService::Protocol::Soap::SoapProtocol.class_eval do
      add_method_tracer :decode_request, "WebService/Soap/XML Decode"
      add_method_tracer :encode_request, "WebService/Soap/XML Encode"
      add_method_tracer :decode_response, "WebService/Soap/XML Decode"
      add_method_tracer :encode_response, "WebService/Soap/XML Encode"
    end

    if defined?(ActionController) && defined?(ActionController::Base)
      ActionController::Base.class_eval do
        if method_defined? :perform_invocation
          add_method_tracer :perform_invocation, 'WebService/#{controller_name}/#{args.first}'
        end
      end
    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/action_web_service.rb
newrelic_rpm-3.5.4.34 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.4.33 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.4.31.beta lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.4.29.beta lib/new_relic/agent/instrumentation/rails/action_web_service.rb
ghazel-newrelic_rpm-3.5.4 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.3.25 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.3.24 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.2.17 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.1.14 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.1.14.beta lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.1.beta1 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.0.1 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.1.alpha lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.5.0 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.4.2.1 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.4.2 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.4.2.beta1 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.4.1 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-3.4.1.beta1 lib/new_relic/agent/instrumentation/rails/action_web_service.rb