class ScoutApm::Instruments::HTTP

Attributes

context[R]

Public Class Methods

new(context) click to toggle source
# File lib/scout_apm/instruments/http.rb, line 6
def initialize(context)
  @context = context
  @installed = false
end

Public Instance Methods

install() click to toggle source
# File lib/scout_apm/instruments/http.rb, line 19
def install
  if defined?(::HTTP) && defined?(::HTTP::Client)
    @installed = true

    logger.info "Instrumenting HTTP::Client"

    ::HTTP::Client.class_eval do
      include ScoutApm::Tracer

      def request_with_scout_instruments(verb, uri, opts = {})
        self.class.instrument("HTTP", verb, :ignore_children => true, :desc => request_scout_description(verb, uri)) do
          request_without_scout_instruments(verb, uri, opts)
        end
      end

      def request_scout_description(verb, uri)
        max_length = ScoutApm::Agent.instance.context.config.value('instrument_http_url_length')
        (String(uri).split('?').first)[0..(max_length - 1)]
      rescue
        ""
      end

      alias request_without_scout_instruments request
      alias request request_with_scout_instruments
    end
  end
end
installed?() click to toggle source
# File lib/scout_apm/instruments/http.rb, line 15
def installed?
  @installed
end
logger() click to toggle source
# File lib/scout_apm/instruments/http.rb, line 11
def logger
  context.logger
end
request_scout_description(verb, uri) click to toggle source
# File lib/scout_apm/instruments/http.rb, line 34
def request_scout_description(verb, uri)
  max_length = ScoutApm::Agent.instance.context.config.value('instrument_http_url_length')
  (String(uri).split('?').first)[0..(max_length - 1)]
rescue
  ""
end
request_with_scout_instruments(verb, uri, opts = {}) click to toggle source
# File lib/scout_apm/instruments/http.rb, line 28
def request_with_scout_instruments(verb, uri, opts = {})
  self.class.instrument("HTTP", verb, :ignore_children => true, :desc => request_scout_description(verb, uri)) do
    request_without_scout_instruments(verb, uri, opts)
  end
end