Class: StackifyRubyAPM::Spies::NetHTTPSpy Private
- Inherits:
-
Object
- Object
- StackifyRubyAPM::Spies::NetHTTPSpy
- Defined in:
- lib/stackify_apm/spies/net_http.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
- #install ⇒ Object private
Instance Method Details
#install ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/stackify_apm/spies/net_http.rb', line 8 def install Net::HTTP.class_eval do alias_method 'request_without_apm', 'request' def request(req, body = nil, &block) result = nil unless StackifyRubyAPM.current_transaction request_without_apm(req, body, &block) end # Data configuration # host, = req['host'] && req['host'].split(':') method = req.method host ||= address name = "#{method} #{host}" type = "ext.net_http.#{method}" # Submits HTTP request # result = request_without_apm(req, body, &block) # Builds span context # ctx = Span::Context.new( CATEGORY: 'Web External', SUBCATEGORY: 'Execute', URL: req.uri.nil? ? host : req.uri, STATUS: result.code.to_i, METHOD: method ) # Creates new span from HTTP result # StackifyRubyAPM.span name, type, context: ctx do return result end end end end |