Sha256: ea0f1d7dc730b1c67a2c32b7e75bfab59b982a43cc610fafe95ec57e9301773a

Contents?: true

Size: 1.04 KB

Versions: 9

Compression:

Stored size: 1.04 KB

Contents

# Copyright (c) 2012 by Tracelytics, Inc.
# All rights reserved.

require 'net/http'

Net::HTTP.class_eval do
  def request_with_oboe(*args, &block)
    unless started?
      return request_without_oboe(*args, &block)
    end

    Oboe::API.trace('net-http') do
        opts = {}
        if args.length and args[0]
          req = args[0]
          req['X-Trace'] = Oboe::Context.toString()

          opts['IsService'] = 1
          opts['RemoteProtocol'] = use_ssl? ? 'HTTPS' : 'HTTP'
          opts['RemoteHost'] = addr_port
          opts['ServiceArg'] = req.path
          opts['Method'] = req.method
        end

        Oboe::API.log('net-http', 'info', opts)
        resp = request_without_oboe(*args, &block)

        xtrace = resp.get_fields('X-Trace')
        if xtrace and xtrace.size and Oboe::Config.tracing?
          Oboe::Context.fromString(xtrace[0])
        end
        next resp
    end
  end

  alias request_without_oboe request
  alias request request_with_oboe

  puts "[oboe/loading] Instrumenting net/http" if Oboe::Config[:verbose]
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
oboe-1.3.8 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.0 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.1 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.2 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.3 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.4 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.5 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.6 lib/oboe/frameworks/rails/inst/http.rb
oboe-1.3.7 lib/oboe/frameworks/rails/inst/http.rb