Sha256: 070f0b6ac1096e058f2a2bbac54d46eb6ca1e483795713e10fa7a175c58420ad

Contents?: true

Size: 1.24 KB

Versions: 34

Compression:

Stored size: 1.24 KB

Contents

# encoding: utf-8

LibraryDetection.defer do
  named :httpclient

  HTTPCLIENT_MINIMUM_VERSION = '2.2.0'

  depends_on do
    defined?(HTTPClient) && defined?(HTTPClient::VERSION)
  end

  depends_on do
    minimum_supported_version = OneApm::VersionNumber.new(HTTPCLIENT_MINIMUM_VERSION)
    current_version = OneApm::VersionNumber.new(HTTPClient::VERSION)

    current_version >= minimum_supported_version
  end

  executes do
    OneApm::Manager.logger.info 'Installing HTTPClient instrumentation'
    require 'one_apm/agent/cross_app/cross_app_tracing'
    require 'one_apm/support/http_clients/httpclient_wrappers'
  end

  executes do
    class HTTPClient
      def do_get_block_with_oneapm(req, proxy, conn, &block)
        wrapped_request = OneApm::Support::HTTPClients::HTTPClientRequest.new(req)

        response = nil
        ::OneApm::Agent::CrossAppTracing.tl_trace_http_request(wrapped_request) do
          do_get_block_without_oneapm(req, proxy, conn, &block)
          response = conn.pop
          conn.push response
          ::OneApm::Support::HTTPClients::HTTPClientResponse.new(response)
        end
        response
      end

      alias do_get_block_without_oneapm do_get_block
      alias do_get_block do_get_block_with_oneapm
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
oneapm_rpm-1.3.6 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.6.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.5 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.5.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.4 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.4.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.3 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.3.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.2 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.2.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.1.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.0 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.3.0.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.2.9 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.2.9.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.2.8 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.2.8.rc1 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.2.7 lib/one_apm/inst/http_clients/httpclient.rb
oneapm_rpm-1.2.7.rc1 lib/one_apm/inst/http_clients/httpclient.rb