Module: ScoutApm::Instruments::Typhoeus::TyphoeusInstrumentation

Defined in:
lib/scout_apm/instruments/typhoeus.rb

Instance Method Summary collapse

Instance Method Details

#run(*args, &block) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/scout_apm/instruments/typhoeus.rb', line 52

def run(*args, &block)
  req = ScoutApm::RequestManager.lookup
  req.start_layer(ScoutApm::Layer.new("HTTP", scout_request_verb))
  current_layer = req.current_layer
  current_layer.desc = scout_desc(scout_request_verb, scout_request_url) if current_layer

  begin
    super(*args, &block)
  ensure
    req.stop_layer
  end
end

#scout_desc(verb, uri) ⇒ Object



65
66
67
68
69
70
# File 'lib/scout_apm/instruments/typhoeus.rb', line 65

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

#scout_request_urlObject



72
73
74
75
76
# File 'lib/scout_apm/instruments/typhoeus.rb', line 72

def scout_request_url
  self.url
rescue
  ""
end

#scout_request_verbObject



78
79
80
81
82
# File 'lib/scout_apm/instruments/typhoeus.rb', line 78

def scout_request_verb
  self.options[:method].to_s
rescue
  ""
end