Sha256: 5dadcb0d81b562145ed54f26cff806f7e707d386e8c0b3bfd6693795581d42c2

Contents?: true

Size: 1.69 KB

Versions: 85

Compression:

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

DependencyDetection.defer do
  @name = :rails_action_web_service

  depends_on do
    defined?(ActionWebService)
  end

  executes do
    ::NewRelic::Agent.logger.info '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

85 entries across 85 versions & 2 rubygems

Version Path
newrelic_rpm-6.11.0.365 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.10.0.364 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.9.0.363 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.8.0.360 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.7.0.359 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.6.0.358 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.5.0.357 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.4.0.356 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.3.0.355 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.2.0.354 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.1.0.352 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-6.0.0.351 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.7.0.350 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.6.0.349 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.5.0.348 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.4.0.347 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.3.0.346 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.2.0.345 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.1.0.344 lib/new_relic/agent/instrumentation/rails/action_web_service.rb
newrelic_rpm-5.0.0.342 lib/new_relic/agent/instrumentation/rails/action_web_service.rb