Sha256: 624703b449efbd315308f113cb173120a472b7367470b5c98b147b42914e84ce

Contents?: true

Size: 998 Bytes

Versions: 87

Compression:

Stored size: 998 Bytes

Contents

module ScoutApm
  module Instruments
    class HttpClient
      attr_reader :logger

      def initalize(logger=ScoutApm::Agent.instance.logger)
        @logger = logger
        @installed = false
      end

      def installed?
        @installed
      end

      def install
        @installed = true

        if defined?(::HTTPClient)
          ScoutApm::Agent.instance.logger.info "Instrumenting HTTPClient"

          ::HTTPClient.class_eval do
            include ScoutApm::Tracer

            def request_with_scout_instruments(*args, &block)
              method = args[0].to_s
              url = args[1]
              url = url && url.to_s[0..99]

              self.class.instrument("HTTP", method, :desc => url) do
                request_without_scout_instruments(*args, &block)
              end
            end

            alias request_without_scout_instruments request
            alias request request_with_scout_instruments
          end
        end
      end
    end
  end
end

Version data entries

87 entries across 87 versions & 1 rubygems

Version Path
scout_apm-2.3.3 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.2 lib/scout_apm/instruments/http_client.rb
scout_apm-3.0.0.pre13 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.1 lib/scout_apm/instruments/http_client.rb
scout_apm-3.0.0.pre12 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.0 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.0.pre3 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.0.pre2 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.0.pre1 lib/scout_apm/instruments/http_client.rb
scout_apm-3.0.0.pre11 lib/scout_apm/instruments/http_client.rb
scout_apm-2.3.0.pre lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.32 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.31 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.30 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.29 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.28 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.27 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.26 lib/scout_apm/instruments/http_client.rb
scout_apm-3.0.0.pre10 lib/scout_apm/instruments/http_client.rb
scout_apm-2.1.24 lib/scout_apm/instruments/http_client.rb