oboe 2.7.2.2-java → 2.7.3.1-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/Rakefile +1 -2
 - data/lib/oboe.rb +4 -3
 - data/lib/oboe/api/layerinit.rb +1 -64
 - data/lib/oboe/base.rb +7 -3
 - data/lib/oboe/inst/faraday.rb +21 -20
 - data/lib/oboe/support.rb +94 -0
 - data/lib/oboe/util.rb +78 -0
 - data/lib/oboe/version.rb +2 -2
 - data/test/instrumentation/faraday_test.rb +46 -12
 - metadata +4 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5cbf087aedb2075090b9967a318e927be291486d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f8ac9ed51ad6707a7b504cb31b12330d04a83dfe
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a19e0aa37533a546609c179e07d65c8b4edcb4293a82e6b07fbebc089091cbad420345ce804e54c2eed76adf871b579e643070c723c01efacb1789b88310f70b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 08433952d8d5a6097bbd0847781a3159fed8d93ebc1d441eb6a9221667d368f6e7347245294ad9ce4ae89d94d8572f7011ae1a1e2ae1c4e8f6bfc399256c5aaa
         
     | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/lib/oboe.rb
    CHANGED
    
    | 
         @@ -7,6 +7,7 @@ begin 
     | 
|
| 
       7 
7 
     | 
    
         
             
              require 'oboe/logger'
         
     | 
| 
       8 
8 
     | 
    
         
             
              require 'oboe/util'
         
     | 
| 
       9 
9 
     | 
    
         
             
              require 'oboe/xtrace'
         
     | 
| 
      
 10 
     | 
    
         
            +
              require 'oboe/support'
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
12 
     | 
    
         
             
              # If OboeHeroku is already defined then we are in a PaaS environment
         
     | 
| 
       12 
13 
     | 
    
         
             
              # with an alternate metal (see the oboe-heroku gem)
         
     | 
| 
         @@ -18,8 +19,8 @@ begin 
     | 
|
| 
       18 
19 
     | 
    
         
             
                    require '/usr/local/tracelytics/tracelyticsagent.jar'
         
     | 
| 
       19 
20 
     | 
    
         
             
                    require 'joboe_metal'
         
     | 
| 
       20 
21 
     | 
    
         
             
                  else
         
     | 
| 
       21 
     | 
    
         
            -
                    require  
     | 
| 
       22 
     | 
    
         
            -
                    require  
     | 
| 
      
 22 
     | 
    
         
            +
                    require "oboe_metal.so"
         
     | 
| 
      
 23 
     | 
    
         
            +
                    require "oboe_metal.rb"
         
     | 
| 
       23 
24 
     | 
    
         
             
                  end
         
     | 
| 
       24 
25 
     | 
    
         
             
                rescue LoadError
         
     | 
| 
       25 
26 
     | 
    
         
             
                  Oboe.loaded = false
         
     | 
| 
         @@ -51,6 +52,6 @@ begin 
     | 
|
| 
       51 
52 
     | 
    
         
             
              # it will load all of the Ruby instrumentation
         
     | 
| 
       52 
53 
     | 
    
         
             
              require 'oboe/ruby'
         
     | 
| 
       53 
54 
     | 
    
         
             
            rescue => e
         
     | 
| 
       54 
     | 
    
         
            -
              $stderr.puts  
     | 
| 
      
 55 
     | 
    
         
            +
              $stderr.puts "[oboe/error] Problem loading: #{e.inspect}"
         
     | 
| 
       55 
56 
     | 
    
         
             
              $stderr.puts e.backtrace
         
     | 
| 
       56 
57 
     | 
    
         
             
            end
         
     | 
    
        data/lib/oboe/api/layerinit.rb
    CHANGED
    
    | 
         @@ -17,70 +17,7 @@ module Oboe 
     | 
|
| 
       17 
17 
     | 
    
         
             
                    # Don't send __Init if the c-extension hasn't loaded
         
     | 
| 
       18 
18 
     | 
    
         
             
                    return unless Oboe.loaded
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                    platform_info =  
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                    begin
         
     | 
| 
       23 
     | 
    
         
            -
                      platform_info['Force']                   = true
         
     | 
| 
       24 
     | 
    
         
            -
                      platform_info['Ruby.Platform.Version']   = RUBY_PLATFORM
         
     | 
| 
       25 
     | 
    
         
            -
                      platform_info['Ruby.Version']            = RUBY_VERSION
         
     | 
| 
       26 
     | 
    
         
            -
                      platform_info['Ruby.Oboe.Version']       = ::Oboe::Version::STRING
         
     | 
| 
       27 
     | 
    
         
            -
                      platform_info['RubyHeroku.Oboe.Version'] = ::OboeHeroku::Version::STRING if defined?(::OboeHeroku)
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                      # Report the framework in use
         
     | 
| 
       30 
     | 
    
         
            -
                      platform_info['Ruby.Rails.Version'] = "Rails-#{::Rails.version}"  if defined?(::Rails)
         
     | 
| 
       31 
     | 
    
         
            -
                      platform_info['Ruby.Grape.Version'] = "Grape-#{::Grape::VERSION}" if defined?(::Grape)
         
     | 
| 
       32 
     | 
    
         
            -
                      platform_info['Ruby.Cramp.Version'] = "Cramp-#{::Cramp::VERSION}" if defined?(::Cramp)
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                      if defined?(::Padrino)
         
     | 
| 
       35 
     | 
    
         
            -
                        platform_info['Ruby.Padrino.Version'] = "Padrino-#{::Padrino::VERSION}"
         
     | 
| 
       36 
     | 
    
         
            -
                      elsif defined?(::Sinatra)
         
     | 
| 
       37 
     | 
    
         
            -
                        platform_info['Ruby.Sinatra.Version'] = "Sinatra-#{::Sinatra::VERSION}"
         
     | 
| 
       38 
     | 
    
         
            -
                      end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                      # Report the instrumented libraries
         
     | 
| 
       41 
     | 
    
         
            -
                      platform_info['Ruby.Cassandra.Version'] = "Cassandra-#{::Cassandra.VERSION}" if defined?(::Cassandra)
         
     | 
| 
       42 
     | 
    
         
            -
                      platform_info['Ruby.Dalli.Version']     = "Dalli-#{::Dalli::VERSION}"        if defined?(::Dalli)
         
     | 
| 
       43 
     | 
    
         
            -
                      platform_info['Ruby.MemCache.Version']  = "MemCache-#{::MemCache::VERSION}"  if defined?(::MemCache)
         
     | 
| 
       44 
     | 
    
         
            -
                      platform_info['Ruby.Moped.Version']     = "Moped-#{::Moped::VERSION}"        if defined?(::Moped)
         
     | 
| 
       45 
     | 
    
         
            -
                      platform_info['Ruby.Redis.Version']     = "Redis-#{::Redis::VERSION}"        if defined?(::Redis)
         
     | 
| 
       46 
     | 
    
         
            -
                      platform_info['Ruby.Resque.Version']    = "Resque-#{::Resque::VERSION}"      if defined?(::Resque)
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                      # Special case since the Mongo 1.x driver doesn't embed the version number in the gem directly
         
     | 
| 
       49 
     | 
    
         
            -
                      if ::Gem.loaded_specs.key?('mongo')
         
     | 
| 
       50 
     | 
    
         
            -
                        platform_info['Ruby.Mongo.Version']     = "Mongo-#{::Gem.loaded_specs['mongo'].version}"
         
     | 
| 
       51 
     | 
    
         
            -
                      end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                      # Report the server in use (if possible)
         
     | 
| 
       54 
     | 
    
         
            -
                      if defined?(::Unicorn)
         
     | 
| 
       55 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "Unicorn-#{::Unicorn::Const::UNICORN_VERSION}"
         
     | 
| 
       56 
     | 
    
         
            -
                      elsif defined?(::Puma)
         
     | 
| 
       57 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "Puma-#{::Puma::Const::PUMA_VERSION} (#{::Puma::Const::CODE_NAME})"
         
     | 
| 
       58 
     | 
    
         
            -
                      elsif defined?(::PhusionPassenger)
         
     | 
| 
       59 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "#{::PhusionPassenger::PACKAGE_NAME}-#{::PhusionPassenger::VERSION_STRING}"
         
     | 
| 
       60 
     | 
    
         
            -
                      elsif defined?(::Thin)
         
     | 
| 
       61 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "Thin-#{::Thin::VERSION::STRING} (#{::Thin::VERSION::CODENAME})"
         
     | 
| 
       62 
     | 
    
         
            -
                      elsif defined?(::Mongrel)
         
     | 
| 
       63 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "Mongrel-#{::Mongrel::Const::MONGREL_VERSION}"
         
     | 
| 
       64 
     | 
    
         
            -
                      elsif defined?(::Mongrel2)
         
     | 
| 
       65 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "Mongrel2-#{::Mongrel2::VERSION}"
         
     | 
| 
       66 
     | 
    
         
            -
                      elsif defined?(::Trinidad)
         
     | 
| 
       67 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "Trinidad-#{::Trinidad::VERSION}"
         
     | 
| 
       68 
     | 
    
         
            -
                      elsif defined?(::WEBrick)
         
     | 
| 
       69 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = "WEBrick-#{::WEBrick::VERSION}"
         
     | 
| 
       70 
     | 
    
         
            -
                      else
         
     | 
| 
       71 
     | 
    
         
            -
                        platform_info['Ruby.AppContainer.Version'] = File.basename($PROGRAM_NAME)
         
     | 
| 
       72 
     | 
    
         
            -
                      end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                    rescue StandardError, ScriptError => e
         
     | 
| 
       75 
     | 
    
         
            -
                      # Also rescue ScriptError (aka SyntaxError) in case one of the expected
         
     | 
| 
       76 
     | 
    
         
            -
                      # version defines don't exist
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                      platform_info['Error'] = "Error in layerinit: #{e.message}"
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                      Oboe.logger.debug "Error in layerinit: #{e.message}"
         
     | 
| 
       81 
     | 
    
         
            -
                      Oboe.logger.debug e.backtrace
         
     | 
| 
       82 
     | 
    
         
            -
                    end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                    platform_info = Oboe::Util.build_init_report
         
     | 
| 
       84 
21 
     | 
    
         
             
                    start_trace(layer, nil, platform_info.merge('Force' => true)) {}
         
     | 
| 
       85 
22 
     | 
    
         
             
                  end
         
     | 
| 
       86 
23 
     | 
    
         | 
    
        data/lib/oboe/base.rb
    CHANGED
    
    | 
         @@ -35,8 +35,12 @@ module OboeBase 
     | 
|
| 
       35 
35 
     | 
    
         
             
              attr_accessor :sample_rate
         
     | 
| 
       36 
36 
     | 
    
         
             
              thread_local :layer_op
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
              def self.included( 
     | 
| 
       39 
     | 
    
         
            -
                 
     | 
| 
      
 38 
     | 
    
         
            +
              def self.included(cls)
         
     | 
| 
      
 39 
     | 
    
         
            +
                cls.loaded = true
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def self.extended(cls)
         
     | 
| 
      
 43 
     | 
    
         
            +
                cls.loaded = true
         
     | 
| 
       40 
44 
     | 
    
         
             
              end
         
     | 
| 
       41 
45 
     | 
    
         | 
| 
       42 
46 
     | 
    
         
             
              def tracing_layer_op?(operation)
         
     | 
| 
         @@ -95,7 +99,7 @@ module OboeBase 
     | 
|
| 
       95 
99 
     | 
    
         
             
              end
         
     | 
| 
       96 
100 
     | 
    
         | 
| 
       97 
101 
     | 
    
         
             
              def heroku?
         
     | 
| 
       98 
     | 
    
         
            -
                 
     | 
| 
      
 102 
     | 
    
         
            +
                ENV.key?('TRACEVIEW_URL')
         
     | 
| 
       99 
103 
     | 
    
         
             
              end
         
     | 
| 
       100 
104 
     | 
    
         | 
| 
       101 
105 
     | 
    
         
             
              ##
         
     | 
    
        data/lib/oboe/inst/faraday.rb
    CHANGED
    
    | 
         @@ -5,14 +5,18 @@ module Oboe 
     | 
|
| 
       5 
5 
     | 
    
         
             
                    ::Oboe::Util.method_alias(klass, :run_request, ::Faraday::Connection)
         
     | 
| 
       6 
6 
     | 
    
         
             
                  end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                  def run_request_with_oboe(method, url, body, headers)
         
     | 
| 
       9 
     | 
    
         
            -
                    kvs = {}
         
     | 
| 
       10 
     | 
    
         
            -
                    kvs['Middleware'] = @builder.handlers
         
     | 
| 
       11 
     | 
    
         
            -
                    kvs['Backtrace'] = Oboe::API.backtrace if Oboe::Config[:faraday][:collect_backtraces]
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
                  def run_request_with_oboe(method, url, body, headers, &block)
         
     | 
| 
       13 
9 
     | 
    
         
             
                    # Only send service KVs if we're not using the Net::HTTP adapter
         
     | 
| 
       14 
10 
     | 
    
         
             
                    # Otherwise, the Net::HTTP instrumentation will send the service KVs
         
     | 
| 
       15 
11 
     | 
    
         
             
                    handle_service = !@builder.handlers.include?(Faraday::Adapter::NetHttp)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    Oboe::API.log_entry('faraday')
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                    result = run_request_without_oboe(method, url, body, headers, &block)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                    kvs = {}
         
     | 
| 
      
 17 
     | 
    
         
            +
                    kvs[:HTTPStatus] = result.status
         
     | 
| 
      
 18 
     | 
    
         
            +
                    kvs['Middleware'] = @builder.handlers
         
     | 
| 
      
 19 
     | 
    
         
            +
                    kvs['Backtrace'] = Oboe::API.backtrace if Oboe::Config[:faraday][:collect_backtraces]
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
       17 
21 
     | 
    
         
             
                    if handle_service
         
     | 
| 
       18 
22 
     | 
    
         
             
                      blacklisted = Oboe::API.blacklisted?(@url_prefix.to_s)
         
     | 
| 
         @@ -30,28 +34,25 @@ module Oboe 
     | 
|
| 
       30 
34 
     | 
    
         
             
                      kvs['ServiceArg'] = url
         
     | 
| 
       31 
35 
     | 
    
         
             
                      kvs['HTTPMethod'] = method
         
     | 
| 
       32 
36 
     | 
    
         
             
                      kvs['Blacklisted'] = true if blacklisted
         
     | 
| 
       33 
     | 
    
         
            -
                    end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                    Oboe::API.log_entry('faraday', kvs)
         
     | 
| 
       36 
     | 
    
         
            -
                    result = run_request_without_oboe(method, url, body, headers)
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
      
 38 
     | 
    
         
            +
                      # Re-attach net::http edge unless it's blacklisted or if we don't have a
         
     | 
| 
      
 39 
     | 
    
         
            +
                      # valid X-Trace header
         
     | 
| 
      
 40 
     | 
    
         
            +
                      unless blacklisted
         
     | 
| 
      
 41 
     | 
    
         
            +
                        xtrace = result.headers['X-Trace']
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
                        if Oboe::XTrace.valid?(xtrace) && Oboe.tracing?
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
      
 45 
     | 
    
         
            +
                          # Assure that we received back a valid X-Trace with the same task_id
         
     | 
| 
      
 46 
     | 
    
         
            +
                          if task_id == Oboe::XTrace.task_id(xtrace)
         
     | 
| 
      
 47 
     | 
    
         
            +
                            Oboe::Context.fromString(xtrace)
         
     | 
| 
      
 48 
     | 
    
         
            +
                          else
         
     | 
| 
      
 49 
     | 
    
         
            +
                            Oboe.logger.debug "Mismatched returned X-Trace ID: #{xtrace}"
         
     | 
| 
      
 50 
     | 
    
         
            +
                          end
         
     | 
| 
       50 
51 
     | 
    
         
             
                        end
         
     | 
| 
       51 
52 
     | 
    
         
             
                      end
         
     | 
| 
       52 
53 
     | 
    
         
             
                    end
         
     | 
| 
       53 
54 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
                    Oboe::API.log('faraday', 'info',  
     | 
| 
      
 55 
     | 
    
         
            +
                    Oboe::API.log('faraday', 'info', kvs)
         
     | 
| 
       55 
56 
     | 
    
         
             
                    result
         
     | 
| 
       56 
57 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       57 
58 
     | 
    
         
             
                    Oboe::API.log_exception('faraday', e)
         
     | 
    
        data/lib/oboe/support.rb
    ADDED
    
    | 
         @@ -0,0 +1,94 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Copyright (c) 2014 AppNeta, Inc.
         
     | 
| 
      
 2 
     | 
    
         
            +
            # All rights reserved.
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Oboe
         
     | 
| 
      
 5 
     | 
    
         
            +
              ##
         
     | 
| 
      
 6 
     | 
    
         
            +
              # This module is used to debug problematic setups and/or environments.
         
     | 
| 
      
 7 
     | 
    
         
            +
              # Depending on the environment, output may be to stdout or the framework
         
     | 
| 
      
 8 
     | 
    
         
            +
              # log file (e.g. log/production.log)
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              ##
         
     | 
| 
      
 11 
     | 
    
         
            +
              # yesno
         
     | 
| 
      
 12 
     | 
    
         
            +
              #
         
     | 
| 
      
 13 
     | 
    
         
            +
              # Utility method to translate value/nil to "yes"/"no" strings
         
     | 
| 
      
 14 
     | 
    
         
            +
              def self.yesno(x)
         
     | 
| 
      
 15 
     | 
    
         
            +
                x ? "yes" : "no"
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              def self.support_report
         
     | 
| 
      
 19 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 20 
     | 
    
         
            +
                Oboe.logger.warn "* BEGIN TraceView Support Report"
         
     | 
| 
      
 21 
     | 
    
         
            +
                Oboe.logger.warn "*   Please email the output of this report to traceviewsupport@appneta.com"
         
     | 
| 
      
 22 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 23 
     | 
    
         
            +
                Oboe.logger.warn "Ruby: #{RUBY_DESCRIPTION}"
         
     | 
| 
      
 24 
     | 
    
         
            +
                Oboe.logger.warn "$0: #{$0}"
         
     | 
| 
      
 25 
     | 
    
         
            +
                Oboe.logger.warn "$1: #{$1}" unless $1.nil?
         
     | 
| 
      
 26 
     | 
    
         
            +
                Oboe.logger.warn "$2: #{$2}" unless $2.nil?
         
     | 
| 
      
 27 
     | 
    
         
            +
                Oboe.logger.warn "$3: #{$3}" unless $3.nil?
         
     | 
| 
      
 28 
     | 
    
         
            +
                Oboe.logger.warn "$4: #{$4}" unless $4.nil?
         
     | 
| 
      
 29 
     | 
    
         
            +
                Oboe.logger.warn "Oboe.loaded == #{Oboe.loaded}"
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                using_jruby = defined?(JRUBY_VERSION)
         
     | 
| 
      
 32 
     | 
    
         
            +
                Oboe.logger.warn "Using JRuby?: #{yesno(using_jruby)}"
         
     | 
| 
      
 33 
     | 
    
         
            +
                if using_jruby
         
     | 
| 
      
 34 
     | 
    
         
            +
                  Oboe.logger.warn "Joboe Agent Status: #{Java::ComTracelyticsAgent::Agent.getStatus}"
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                on_heroku = Oboe.heroku?
         
     | 
| 
      
 38 
     | 
    
         
            +
                Oboe.logger.warn "On Heroku?: #{yesno(on_heroku)}"
         
     | 
| 
      
 39 
     | 
    
         
            +
                if on_heroku
         
     | 
| 
      
 40 
     | 
    
         
            +
                  Oboe.logger.warn "TRACEVIEW_URL: #{ENV['TRACEVIEW_URL']}"
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                Oboe.logger.warn "Oboe::Ruby defined?: #{yesno(defined?(Oboe::Ruby))}"
         
     | 
| 
      
 44 
     | 
    
         
            +
                Oboe.logger.warn "Oboe.reporter: #{Oboe.reporter}"
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 47 
     | 
    
         
            +
                Oboe.logger.warn "* Frameworks"
         
     | 
| 
      
 48 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                using_rails = defined?(::Rails)
         
     | 
| 
      
 51 
     | 
    
         
            +
                Oboe.logger.warn "Using Rails?: #{yesno(using_rails)}"
         
     | 
| 
      
 52 
     | 
    
         
            +
                if using_rails
         
     | 
| 
      
 53 
     | 
    
         
            +
                  Oboe.logger.warn "Oboe::Rails loaded?: #{yesno(defined?(::Oboe::Rails))}"
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                using_sinatra = defined?(::Sinatra)
         
     | 
| 
      
 57 
     | 
    
         
            +
                Oboe.logger.warn "Using Sinatra?: #{yesno(using_sinatra)}"
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                using_padrino = defined?(::Padrino)
         
     | 
| 
      
 60 
     | 
    
         
            +
                Oboe.logger.warn "Using Padrino?: #{yesno(using_padrino)}"
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                using_grape = defined?(::Grape)
         
     | 
| 
      
 63 
     | 
    
         
            +
                Oboe.logger.warn "Using Grape?: #{yesno(using_grape)}"
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 66 
     | 
    
         
            +
                Oboe.logger.warn "* TraceView Libraries"
         
     | 
| 
      
 67 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 68 
     | 
    
         
            +
                files = Dir.glob('/usr/lib/liboboe*')
         
     | 
| 
      
 69 
     | 
    
         
            +
                if files.empty?
         
     | 
| 
      
 70 
     | 
    
         
            +
                  Oboe.logger.warn "Error: No liboboe libs!"
         
     | 
| 
      
 71 
     | 
    
         
            +
                else
         
     | 
| 
      
 72 
     | 
    
         
            +
                  files.each { |f|
         
     | 
| 
      
 73 
     | 
    
         
            +
                    Oboe.logger.warn f
         
     | 
| 
      
 74 
     | 
    
         
            +
                  }
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 78 
     | 
    
         
            +
                Oboe.logger.warn "* Raw __Init KVs"
         
     | 
| 
      
 79 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 80 
     | 
    
         
            +
                platform_info = Oboe::Util.build_report
         
     | 
| 
      
 81 
     | 
    
         
            +
                platform_info.each { |k,v|
         
     | 
| 
      
 82 
     | 
    
         
            +
                  Oboe.logger.warn "#{k}: #{v}"
         
     | 
| 
      
 83 
     | 
    
         
            +
                }
         
     | 
| 
      
 84 
     | 
    
         
            +
                
         
     | 
| 
      
 85 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 86 
     | 
    
         
            +
                Oboe.logger.warn "* END TraceView Support Report"
         
     | 
| 
      
 87 
     | 
    
         
            +
                Oboe.logger.warn "*   Support Email: traceviewsupport@appneta.com"
         
     | 
| 
      
 88 
     | 
    
         
            +
                Oboe.logger.warn "*   Support Portal: https://support.tv.appneta.com"
         
     | 
| 
      
 89 
     | 
    
         
            +
                Oboe.logger.warn "*   Freenode IRC: #appneta"
         
     | 
| 
      
 90 
     | 
    
         
            +
                Oboe.logger.warn "*   Github: https://github.com/appneta/oboe-ruby"
         
     | 
| 
      
 91 
     | 
    
         
            +
                Oboe.logger.warn "********************************************************"
         
     | 
| 
      
 92 
     | 
    
         
            +
                nil
         
     | 
| 
      
 93 
     | 
    
         
            +
              end
         
     | 
| 
      
 94 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/oboe/util.rb
    CHANGED
    
    | 
         @@ -120,6 +120,84 @@ module Oboe 
     | 
|
| 
       120 
120 
     | 
    
         
             
                      x.to_s
         
     | 
| 
       121 
121 
     | 
    
         
             
                    end
         
     | 
| 
       122 
122 
     | 
    
         
             
                  end
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 125 
     | 
    
         
            +
                  #  build_report
         
     | 
| 
      
 126 
     | 
    
         
            +
                  #
         
     | 
| 
      
 127 
     | 
    
         
            +
                  # Internal: Build a hash of KVs that reports on the status of the
         
     | 
| 
      
 128 
     | 
    
         
            +
                  # running environment.  This is used on stack boot in __Init reporting
         
     | 
| 
      
 129 
     | 
    
         
            +
                  # and for Oboe.support_report.
         
     | 
| 
      
 130 
     | 
    
         
            +
                  def build_init_report
         
     | 
| 
      
 131 
     | 
    
         
            +
                    platform_info = { '__Init' => 1 }
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 134 
     | 
    
         
            +
                      platform_info['Force']                   = true
         
     | 
| 
      
 135 
     | 
    
         
            +
                      platform_info['Ruby.Platform.Version']   = RUBY_PLATFORM
         
     | 
| 
      
 136 
     | 
    
         
            +
                      platform_info['Ruby.Version']            = RUBY_VERSION
         
     | 
| 
      
 137 
     | 
    
         
            +
                      platform_info['Ruby.Oboe.Version']       = ::Oboe::Version::STRING
         
     | 
| 
      
 138 
     | 
    
         
            +
                      platform_info['RubyHeroku.Oboe.Version'] = ::OboeHeroku::Version::STRING if defined?(::OboeHeroku)
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
                      # Report the framework in use
         
     | 
| 
      
 141 
     | 
    
         
            +
                      if defined?(::RailsLts)
         
     | 
| 
      
 142 
     | 
    
         
            +
                        platform_info['Ruby.RailsLts.Version'] = "RailsLts-#{::RailsLts::VERSION}"
         
     | 
| 
      
 143 
     | 
    
         
            +
                      elsif defined?(::Rails)
         
     | 
| 
      
 144 
     | 
    
         
            +
                        platform_info['Ruby.Rails.Version']    = "Rails-#{::Rails.version}"
         
     | 
| 
      
 145 
     | 
    
         
            +
                      end
         
     | 
| 
      
 146 
     | 
    
         
            +
                      platform_info['Ruby.Grape.Version']    = "Grape-#{::Grape::VERSION}" if defined?(::Grape)
         
     | 
| 
      
 147 
     | 
    
         
            +
                      platform_info['Ruby.Cramp.Version']    = "Cramp-#{::Cramp::VERSION}" if defined?(::Cramp)
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
                      if defined?(::Padrino)
         
     | 
| 
      
 150 
     | 
    
         
            +
                        platform_info['Ruby.Padrino.Version'] = "Padrino-#{::Padrino::VERSION}"
         
     | 
| 
      
 151 
     | 
    
         
            +
                      elsif defined?(::Sinatra)
         
     | 
| 
      
 152 
     | 
    
         
            +
                        platform_info['Ruby.Sinatra.Version'] = "Sinatra-#{::Sinatra::VERSION}"
         
     | 
| 
      
 153 
     | 
    
         
            +
                      end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
                      # Report the instrumented libraries
         
     | 
| 
      
 156 
     | 
    
         
            +
                      platform_info['Ruby.Cassandra.Version'] = "Cassandra-#{::Cassandra.VERSION}" if defined?(::Cassandra)
         
     | 
| 
      
 157 
     | 
    
         
            +
                      platform_info['Ruby.Dalli.Version']     = "Dalli-#{::Dalli::VERSION}"        if defined?(::Dalli)
         
     | 
| 
      
 158 
     | 
    
         
            +
                      platform_info['Ruby.Faraday.Version']   = "Faraday-#{::Faraday::VERSION}"    if defined?(::Faraday)
         
     | 
| 
      
 159 
     | 
    
         
            +
                      platform_info['Ruby.MemCache.Version']  = "MemCache-#{::MemCache::VERSION}"  if defined?(::MemCache)
         
     | 
| 
      
 160 
     | 
    
         
            +
                      platform_info['Ruby.Moped.Version']     = "Moped-#{::Moped::VERSION}"        if defined?(::Moped)
         
     | 
| 
      
 161 
     | 
    
         
            +
                      platform_info['Ruby.Redis.Version']     = "Redis-#{::Redis::VERSION}"        if defined?(::Redis)
         
     | 
| 
      
 162 
     | 
    
         
            +
                      platform_info['Ruby.Resque.Version']    = "Resque-#{::Resque::VERSION}"      if defined?(::Resque)
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
                      # Special case since the Mongo 1.x driver doesn't embed the version number in the gem directly
         
     | 
| 
      
 165 
     | 
    
         
            +
                      if ::Gem.loaded_specs.key?('mongo')
         
     | 
| 
      
 166 
     | 
    
         
            +
                        platform_info['Ruby.Mongo.Version']     = "Mongo-#{::Gem.loaded_specs['mongo'].version}"
         
     | 
| 
      
 167 
     | 
    
         
            +
                      end
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
                      # Report the server in use (if possible)
         
     | 
| 
      
 170 
     | 
    
         
            +
                      if defined?(::Unicorn)
         
     | 
| 
      
 171 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "Unicorn-#{::Unicorn::Const::UNICORN_VERSION}"
         
     | 
| 
      
 172 
     | 
    
         
            +
                      elsif defined?(::Puma)
         
     | 
| 
      
 173 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "Puma-#{::Puma::Const::PUMA_VERSION} (#{::Puma::Const::CODE_NAME})"
         
     | 
| 
      
 174 
     | 
    
         
            +
                      elsif defined?(::PhusionPassenger)
         
     | 
| 
      
 175 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "#{::PhusionPassenger::PACKAGE_NAME}-#{::PhusionPassenger::VERSION_STRING}"
         
     | 
| 
      
 176 
     | 
    
         
            +
                      elsif defined?(::Thin)
         
     | 
| 
      
 177 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "Thin-#{::Thin::VERSION::STRING} (#{::Thin::VERSION::CODENAME})"
         
     | 
| 
      
 178 
     | 
    
         
            +
                      elsif defined?(::Mongrel)
         
     | 
| 
      
 179 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "Mongrel-#{::Mongrel::Const::MONGREL_VERSION}"
         
     | 
| 
      
 180 
     | 
    
         
            +
                      elsif defined?(::Mongrel2)
         
     | 
| 
      
 181 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "Mongrel2-#{::Mongrel2::VERSION}"
         
     | 
| 
      
 182 
     | 
    
         
            +
                      elsif defined?(::Trinidad)
         
     | 
| 
      
 183 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "Trinidad-#{::Trinidad::VERSION}"
         
     | 
| 
      
 184 
     | 
    
         
            +
                      elsif defined?(::WEBrick)
         
     | 
| 
      
 185 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = "WEBrick-#{::WEBrick::VERSION}"
         
     | 
| 
      
 186 
     | 
    
         
            +
                      else
         
     | 
| 
      
 187 
     | 
    
         
            +
                        platform_info['Ruby.AppContainer.Version'] = File.basename($PROGRAM_NAME)
         
     | 
| 
      
 188 
     | 
    
         
            +
                      end
         
     | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
      
 190 
     | 
    
         
            +
                    rescue StandardError, ScriptError => e
         
     | 
| 
      
 191 
     | 
    
         
            +
                      # Also rescue ScriptError (aka SyntaxError) in case one of the expected
         
     | 
| 
      
 192 
     | 
    
         
            +
                      # version defines don't exist
         
     | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
      
 194 
     | 
    
         
            +
                      platform_info['Error'] = "Error in build_report: #{e.message}"
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
      
 196 
     | 
    
         
            +
                      Oboe.logger.warn "[oboe/warn] Error in build_init_report: #{e.message}"
         
     | 
| 
      
 197 
     | 
    
         
            +
                      Oboe.logger.debug e.backtrace
         
     | 
| 
      
 198 
     | 
    
         
            +
                    end
         
     | 
| 
      
 199 
     | 
    
         
            +
                    platform_info
         
     | 
| 
      
 200 
     | 
    
         
            +
                  end
         
     | 
| 
       123 
201 
     | 
    
         
             
                end
         
     | 
| 
       124 
202 
     | 
    
         
             
              end
         
     | 
| 
       125 
203 
     | 
    
         
             
            end
         
     | 
    
        data/lib/oboe/version.rb
    CHANGED
    
    
| 
         @@ -29,7 +29,7 @@ describe Oboe::Inst::FaradayConnection do 
     | 
|
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                traces = get_all_traces
         
     | 
| 
       32 
     | 
    
         
            -
                traces.count.must_equal  
     | 
| 
      
 32 
     | 
    
         
            +
                traces.count.must_equal 8
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
                validate_outer_layers(traces, 'faraday_test')
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
         @@ -47,20 +47,20 @@ describe Oboe::Inst::FaradayConnection do 
     | 
|
| 
       47 
47 
     | 
    
         
             
                traces[4]['Layer'].must_equal 'net-http'
         
     | 
| 
       48 
48 
     | 
    
         
             
                traces[4]['Label'].must_equal 'exit'
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
                traces[ 
     | 
| 
       51 
     | 
    
         
            -
                traces[ 
     | 
| 
      
 50 
     | 
    
         
            +
                traces[6]['Layer'].must_equal 'faraday'
         
     | 
| 
      
 51 
     | 
    
         
            +
                traces[6]['Label'].must_equal 'exit'
         
     | 
| 
       52 
52 
     | 
    
         
             
              end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
       54 
54 
     | 
    
         
             
              it 'should trace a Faraday request' do
         
     | 
| 
       55 
55 
     | 
    
         
             
                Oboe::API.start_trace('faraday_test') do
         
     | 
| 
       56 
     | 
    
         
            -
                  conn = Faraday.new(:url => 'http://www. 
     | 
| 
      
 56 
     | 
    
         
            +
                  conn = Faraday.new(:url => 'http://www.curlmyip.com') do |faraday|
         
     | 
| 
       57 
57 
     | 
    
         
             
                    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
         
     | 
| 
       58 
58 
     | 
    
         
             
                  end
         
     | 
| 
       59 
59 
     | 
    
         
             
                  response = conn.get '/?q=ruby_test_suite'
         
     | 
| 
       60 
60 
     | 
    
         
             
                end
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
62 
     | 
    
         
             
                traces = get_all_traces
         
     | 
| 
       63 
     | 
    
         
            -
                traces.count.must_equal  
     | 
| 
      
 63 
     | 
    
         
            +
                traces.count.must_equal 8
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                validate_outer_layers(traces, 'faraday_test')
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
         @@ -70,7 +70,7 @@ describe Oboe::Inst::FaradayConnection do 
     | 
|
| 
       70 
70 
     | 
    
         
             
                traces[3]['Layer'].must_equal 'net-http'
         
     | 
| 
       71 
71 
     | 
    
         
             
                traces[3]['IsService'].must_equal '1'
         
     | 
| 
       72 
72 
     | 
    
         
             
                traces[3]['RemoteProtocol'].must_equal 'HTTP'
         
     | 
| 
       73 
     | 
    
         
            -
                traces[3]['RemoteHost'].must_equal 'www. 
     | 
| 
      
 73 
     | 
    
         
            +
                traces[3]['RemoteHost'].must_equal 'www.curlmyip.com'
         
     | 
| 
       74 
74 
     | 
    
         
             
                traces[3]['ServiceArg'].must_equal '/?q=ruby_test_suite'
         
     | 
| 
       75 
75 
     | 
    
         
             
                traces[3]['HTTPMethod'].must_equal 'GET'
         
     | 
| 
       76 
76 
     | 
    
         
             
                traces[3]['HTTPStatus'].must_equal '200'
         
     | 
| 
         @@ -79,7 +79,41 @@ describe Oboe::Inst::FaradayConnection do 
     | 
|
| 
       79 
79 
     | 
    
         
             
                traces[4]['Label'].must_equal 'exit'
         
     | 
| 
       80 
80 
     | 
    
         | 
| 
       81 
81 
     | 
    
         
             
                traces[5]['Layer'].must_equal 'faraday'
         
     | 
| 
       82 
     | 
    
         
            -
                traces[5]['Label'].must_equal ' 
     | 
| 
      
 82 
     | 
    
         
            +
                traces[5]['Label'].must_equal 'info'
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                traces[6]['Layer'].must_equal 'faraday'
         
     | 
| 
      
 85 
     | 
    
         
            +
                traces[6]['Label'].must_equal 'exit'
         
     | 
| 
      
 86 
     | 
    
         
            +
              end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
              it 'should trace a Faraday alternate request method' do
         
     | 
| 
      
 89 
     | 
    
         
            +
                Oboe::API.start_trace('faraday_test') do
         
     | 
| 
      
 90 
     | 
    
         
            +
                  Faraday.get('http://www.curlmyip.com', {:a => 1})
         
     | 
| 
      
 91 
     | 
    
         
            +
                end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                traces = get_all_traces
         
     | 
| 
      
 94 
     | 
    
         
            +
                traces.count.must_equal 8
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                validate_outer_layers(traces, 'faraday_test')
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                traces[1]['Layer'].must_equal 'faraday'
         
     | 
| 
      
 99 
     | 
    
         
            +
                traces[1].key?('Backtrace').must_equal Oboe::Config[:faraday][:collect_backtraces]
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                traces[3]['Layer'].must_equal 'net-http'
         
     | 
| 
      
 102 
     | 
    
         
            +
                traces[3]['IsService'].must_equal '1'
         
     | 
| 
      
 103 
     | 
    
         
            +
                traces[3]['RemoteProtocol'].must_equal 'HTTP'
         
     | 
| 
      
 104 
     | 
    
         
            +
                traces[3]['RemoteHost'].must_equal 'www.curlmyip.com'
         
     | 
| 
      
 105 
     | 
    
         
            +
                traces[3]['ServiceArg'].must_equal '/?a=1'
         
     | 
| 
      
 106 
     | 
    
         
            +
                traces[3]['HTTPMethod'].must_equal 'GET'
         
     | 
| 
      
 107 
     | 
    
         
            +
                traces[3]['HTTPStatus'].must_equal '200'
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                traces[4]['Layer'].must_equal 'net-http'
         
     | 
| 
      
 110 
     | 
    
         
            +
                traces[4]['Label'].must_equal 'exit'
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                traces[5]['Layer'].must_equal 'faraday'
         
     | 
| 
      
 113 
     | 
    
         
            +
                traces[5]['Label'].must_equal 'info'
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                traces[6]['Layer'].must_equal 'faraday'
         
     | 
| 
      
 116 
     | 
    
         
            +
                traces[6]['Label'].must_equal 'exit'
         
     | 
| 
       83 
117 
     | 
    
         
             
              end
         
     | 
| 
       84 
118 
     | 
    
         | 
| 
       85 
119 
     | 
    
         
             
              it 'should trace a Faraday with an alternate adapter' do
         
     | 
| 
         @@ -98,11 +132,11 @@ describe Oboe::Inst::FaradayConnection do 
     | 
|
| 
       98 
132 
     | 
    
         
             
                traces[1]['Layer'].must_equal 'faraday'
         
     | 
| 
       99 
133 
     | 
    
         
             
                traces[1].key?('Backtrace').must_equal Oboe::Config[:faraday][:collect_backtraces]
         
     | 
| 
       100 
134 
     | 
    
         | 
| 
       101 
     | 
    
         
            -
                traces[ 
     | 
| 
       102 
     | 
    
         
            -
                traces[ 
     | 
| 
       103 
     | 
    
         
            -
                traces[ 
     | 
| 
       104 
     | 
    
         
            -
                traces[ 
     | 
| 
       105 
     | 
    
         
            -
                traces[ 
     | 
| 
      
 135 
     | 
    
         
            +
                traces[2]['IsService'].must_equal '1'
         
     | 
| 
      
 136 
     | 
    
         
            +
                traces[2]['RemoteProtocol'].must_equal 'HTTP'
         
     | 
| 
      
 137 
     | 
    
         
            +
                traces[2]['RemoteHost'].must_equal 'www.google.com'
         
     | 
| 
      
 138 
     | 
    
         
            +
                traces[2]['ServiceArg'].must_equal '/?q=ruby_test_suite'
         
     | 
| 
      
 139 
     | 
    
         
            +
                traces[2]['HTTPMethod'].downcase.must_equal 'get'
         
     | 
| 
       106 
140 
     | 
    
         | 
| 
       107 
141 
     | 
    
         
             
                traces[2]['Layer'].must_equal 'faraday'
         
     | 
| 
       108 
142 
     | 
    
         
             
                traces[2]['Label'].must_equal 'info'
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: oboe
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.7. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.7.3.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: java
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Peter Giacomo Lombardo
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire:
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2014-10-15 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: json
         
     | 
| 
         @@ -114,6 +114,7 @@ files: 
     | 
|
| 
       114 
114 
     | 
    
         
             
            - lib/oboe/logger.rb
         
     | 
| 
       115 
115 
     | 
    
         
             
            - lib/oboe/method_profiling.rb
         
     | 
| 
       116 
116 
     | 
    
         
             
            - lib/oboe/ruby.rb
         
     | 
| 
      
 117 
     | 
    
         
            +
            - lib/oboe/support.rb
         
     | 
| 
       117 
118 
     | 
    
         
             
            - lib/oboe/thread_local.rb
         
     | 
| 
       118 
119 
     | 
    
         
             
            - lib/oboe/util.rb
         
     | 
| 
       119 
120 
     | 
    
         
             
            - lib/oboe/version.rb
         
     | 
| 
         @@ -172,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       172 
173 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       173 
174 
     | 
    
         
             
            requirements: []
         
     | 
| 
       174 
175 
     | 
    
         
             
            rubyforge_project:
         
     | 
| 
       175 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 176 
     | 
    
         
            +
            rubygems_version: 2.1.9
         
     | 
| 
       176 
177 
     | 
    
         
             
            signing_key:
         
     | 
| 
       177 
178 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       178 
179 
     | 
    
         
             
            summary: AppNeta TraceView performance instrumentation gem for Ruby
         
     |