oboe 2.6.6.1 → 2.6.7.1
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/.travis.yml +6 -0
- data/Appraisals +6 -16
- data/CHANGELOG.md +30 -14
- data/Gemfile +4 -3
- data/Gemfile.lock +20 -25
- data/Rakefile +5 -1
- data/ext/oboe_metal/extconf.rb +2 -2
- data/gemfiles/mongo.gemfile +33 -0
- data/gemfiles/moped.gemfile +33 -0
- data/lib/base.rb +28 -10
- data/lib/joboe_metal.rb +12 -34
- data/lib/method_profiling.rb +3 -3
- data/lib/oboe/api/layerinit.rb +14 -14
- data/lib/oboe/api/logging.rb +11 -11
- data/lib/oboe/api/profiling.rb +7 -6
- data/lib/oboe/api/tracing.rb +3 -3
- data/lib/oboe/api/util.rb +4 -4
- data/lib/oboe/config.rb +7 -7
- data/lib/oboe/frameworks/padrino.rb +2 -2
- data/lib/oboe/frameworks/rails.rb +11 -11
- data/lib/oboe/frameworks/rails/inst/action_controller.rb +4 -4
- data/lib/oboe/frameworks/rails/inst/action_view.rb +2 -2
- data/lib/oboe/frameworks/rails/inst/action_view_2x.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/action_view_30.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/active_record.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/mysql.rb +3 -3
- data/lib/oboe/frameworks/rails/inst/connection_adapters/mysql2.rb +2 -2
- data/lib/oboe/frameworks/rails/inst/connection_adapters/postgresql.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/utils.rb +8 -8
- data/lib/oboe/frameworks/sinatra.rb +33 -3
- data/lib/oboe/frameworks/sinatra/templates.rb +2 -2
- data/lib/oboe/inst/cassandra.rb +19 -19
- data/lib/oboe/inst/dalli.rb +7 -7
- data/lib/oboe/inst/http.rb +5 -5
- data/lib/oboe/inst/memcache.rb +14 -14
- data/lib/oboe/inst/memcached.rb +8 -8
- data/lib/oboe/inst/mongo.rb +2 -2
- data/lib/oboe/inst/moped.rb +29 -29
- data/lib/oboe/inst/rack.rb +3 -3
- data/lib/oboe/inst/redis.rb +24 -24
- data/lib/oboe/inst/resque.rb +4 -4
- data/lib/oboe/loading.rb +6 -6
- data/lib/oboe/logger.rb +4 -4
- data/lib/oboe/version.rb +1 -1
- data/lib/oboe_metal.rb +11 -39
- data/test/frameworks/apps/grape_simple.rb +1 -1
- data/test/frameworks/apps/sinatra_simple.rb +1 -1
- data/test/frameworks/padrino_test.rb +3 -3
- data/test/frameworks/sinatra_test.rb +3 -3
- data/test/instrumentation/cassandra_test.rb +45 -45
- data/test/instrumentation/http_test.rb +6 -6
- data/test/instrumentation/mongo_test.rb +347 -345
- data/test/instrumentation/moped_test.rb +40 -40
- data/test/instrumentation/redis_hashes_test.rb +20 -20
- data/test/instrumentation/redis_keys_test.rb +19 -19
- data/test/instrumentation/redis_lists_test.rb +22 -22
- data/test/instrumentation/redis_misc_test.rb +14 -14
- data/test/instrumentation/redis_sets_test.rb +20 -20
- data/test/instrumentation/redis_sortedsets_test.rb +25 -25
- data/test/instrumentation/redis_strings_test.rb +27 -27
- data/test/instrumentation/resque_test.rb +7 -7
- data/test/minitest_helper.rb +18 -6
- data/test/profiling/method_test.rb +24 -24
- data/test/support/liboboe_settings_test.rb +3 -3
- data/test/support/xtrace_test.rb +2 -2
- metadata +26 -32
- data/gemfiles/rails2.3.gemfile +0 -18
- data/gemfiles/rails2.3.gemfile.lock +0 -95
- data/gemfiles/rails3.0.gemfile +0 -18
- data/gemfiles/rails3.0.gemfile.lock +0 -142
- data/gemfiles/rails3.1.gemfile +0 -18
- data/gemfiles/rails3.1.gemfile.lock +0 -152
- data/gemfiles/rails3.2.gemfile +0 -18
- data/gemfiles/rails3.2.gemfile.lock +0 -150
| @@ -11,7 +11,7 @@ module Oboe | |
| 11 11 | 
             
                      alias_method_chain :render, :oboe
         | 
| 12 12 | 
             
                    end
         | 
| 13 13 | 
             
                  end
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
                  def process_with_oboe(*args)
         | 
| 16 16 | 
             
                    Oboe::API.trace('rails', {}) do
         | 
| 17 17 | 
             
                      process_without_oboe *args
         | 
| @@ -38,7 +38,7 @@ module Oboe | |
| 38 38 | 
             
                    end
         | 
| 39 39 | 
             
                  end
         | 
| 40 40 | 
             
                end
         | 
| 41 | 
            -
             | 
| 41 | 
            +
             | 
| 42 42 | 
             
                module Rails4ActionController
         | 
| 43 43 | 
             
                  def self.included(base)
         | 
| 44 44 | 
             
                    base.class_eval do
         | 
| @@ -46,7 +46,7 @@ module Oboe | |
| 46 46 | 
             
                      alias_method_chain :render, :oboe
         | 
| 47 47 | 
             
                    end
         | 
| 48 48 | 
             
                  end
         | 
| 49 | 
            -
             | 
| 49 | 
            +
             | 
| 50 50 | 
             
                  def process_action_with_oboe(method_name, *args)
         | 
| 51 51 | 
             
                    return process_action_without_oboe(method_name, *args) if Oboe::Config[:action_blacklist].present? &&
         | 
| 52 52 | 
             
                      Oboe::Config[:action_blacklist][[self.controller_name, self.action_name].join('#')]
         | 
| @@ -75,7 +75,7 @@ if defined?(ActionController::Base) and Oboe::Config[:action_controller][:enable | |
| 75 75 | 
             
                class ActionController::Base
         | 
| 76 76 | 
             
                  include Oboe::Inst::Rails4ActionController
         | 
| 77 77 | 
             
                end
         | 
| 78 | 
            -
             | 
| 78 | 
            +
             | 
| 79 79 | 
             
              elsif ::Rails::VERSION::MAJOR == 3
         | 
| 80 80 |  | 
| 81 81 | 
             
                class ActionController::Base
         | 
| @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
            if defined?(ActionView::Base) and Oboe::Config[:action_view][:enabled]
         | 
| 5 5 |  | 
| 6 6 | 
             
              ##
         | 
| 7 | 
            -
              # ActionView Instrumentation is version dependent.  ActionView 2.x is separate | 
| 7 | 
            +
              # ActionView Instrumentation is version dependent.  ActionView 2.x is separate
         | 
| 8 8 | 
             
              # and ActionView 3.0 is a special case.
         | 
| 9 9 | 
             
              # Everything else goes here. (ActionView 3.1 - 4.0 as of this writing)
         | 
| 10 10 | 
             
              #
         | 
| @@ -48,7 +48,7 @@ if defined?(ActionView::Base) and Oboe::Config[:action_view][:enabled] | |
| 48 48 | 
             
                      ret =  render_collection_without_oboe
         | 
| 49 49 | 
             
                    end
         | 
| 50 50 | 
             
                  end
         | 
| 51 | 
            -
             | 
| 51 | 
            +
             | 
| 52 52 | 
             
                end
         | 
| 53 53 | 
             
              end
         | 
| 54 54 | 
             
            end
         | 
| @@ -29,7 +29,7 @@ if defined?(ActionView::Base) and Oboe::Config[:action_view][:enabled] | |
| 29 29 | 
             
                      render_partial_without_oboe(options)
         | 
| 30 30 | 
             
                    end
         | 
| 31 31 | 
             
                  end
         | 
| 32 | 
            -
             | 
| 32 | 
            +
             | 
| 33 33 | 
             
                  alias :render_partial_collection_without_oboe :render_partial_collection
         | 
| 34 34 | 
             
                  def render_partial_collection(options = {})
         | 
| 35 35 | 
             
                    entry_kvs = {}
         | 
| @@ -16,7 +16,7 @@ if Oboe::Config[:active_record][:enabled] | |
| 16 16 | 
             
                Oboe::Inst::ConnectionAdapters::FlavorInitializers.postgresql if adapter == "postgresql"
         | 
| 17 17 | 
             
                Oboe::Inst::ConnectionAdapters::FlavorInitializers.oracle     if adapter == "oracleenhanced"
         | 
| 18 18 |  | 
| 19 | 
            -
              rescue  | 
| 19 | 
            +
              rescue StandardError => e
         | 
| 20 20 | 
             
                Oboe.logger.error "[oboe/error] Oboe/ActiveRecord error: #{e.inspect}"
         | 
| 21 21 | 
             
                Oboe.logger.debug e.backtrace.join("\n")
         | 
| 22 22 | 
             
              end
         | 
| @@ -9,7 +9,7 @@ module Oboe | |
| 9 9 | 
             
                      Oboe.logger.info "[oboe/loading] Instrumenting activerecord mysqladapter" if Oboe::Config[:verbose]
         | 
| 10 10 |  | 
| 11 11 | 
             
                      # ActiveRecord 3.2 and higher
         | 
| 12 | 
            -
                      if (::ActiveRecord::VERSION::MAJOR == 3 and ::ActiveRecord::VERSION::MINOR >= 2) or | 
| 12 | 
            +
                      if (::ActiveRecord::VERSION::MAJOR == 3 and ::ActiveRecord::VERSION::MINOR >= 2) or
         | 
| 13 13 | 
             
                          ::ActiveRecord::VERSION::MAJOR == 4
         | 
| 14 14 |  | 
| 15 15 | 
             
                        # AbstractMysqlAdapter
         | 
| @@ -24,13 +24,13 @@ module Oboe | |
| 24 24 |  | 
| 25 25 | 
             
                      else
         | 
| 26 26 | 
             
                        # ActiveRecord 3.1 and below
         | 
| 27 | 
            -
             | 
| 27 | 
            +
             | 
| 28 28 | 
             
                        # MysqlAdapter
         | 
| 29 29 | 
             
                        Oboe::Util.send_include(::ActiveRecord::ConnectionAdapters::MysqlAdapter,
         | 
| 30 30 | 
             
                                                  Oboe::Inst::ConnectionAdapters::Utils)
         | 
| 31 31 |  | 
| 32 32 | 
             
                        Oboe::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :execute)
         | 
| 33 | 
            -
             | 
| 33 | 
            +
             | 
| 34 34 | 
             
                        if ::ActiveRecord::VERSION::MAJOR == 3 and ::ActiveRecord::VERSION::MINOR == 1
         | 
| 35 35 | 
             
                          Oboe::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :begin_db_transaction)
         | 
| 36 36 | 
             
                          Oboe::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :exec_delete)
         | 
| @@ -7,12 +7,12 @@ module Oboe | |
| 7 7 | 
             
                  module FlavorInitializers
         | 
| 8 8 | 
             
                    def self.mysql2
         | 
| 9 9 | 
             
                      Oboe.logger.info "[oboe/loading] Instrumenting activerecord mysql2adapter" if Oboe::Config[:verbose]
         | 
| 10 | 
            -
             | 
| 10 | 
            +
             | 
| 11 11 | 
             
                      Oboe::Util.send_include(::ActiveRecord::ConnectionAdapters::Mysql2Adapter,
         | 
| 12 12 | 
             
                                                Oboe::Inst::ConnectionAdapters::Utils)
         | 
| 13 13 |  | 
| 14 14 | 
             
                      if (::ActiveRecord::VERSION::MAJOR == 3 and ::ActiveRecord::VERSION::MINOR == 0) or
         | 
| 15 | 
            -
                          ::ActiveRecord::VERSION::MAJOR == 2 | 
| 15 | 
            +
                          ::ActiveRecord::VERSION::MAJOR == 2
         | 
| 16 16 | 
             
                        # ActiveRecord 3.0 and prior
         | 
| 17 17 | 
             
                        Oboe::Util.method_alias(::ActiveRecord::ConnectionAdapters::Mysql2Adapter, :execute)
         | 
| 18 18 | 
             
                      else
         | 
| @@ -12,7 +12,7 @@ module Oboe | |
| 12 12 | 
             
                      Oboe::Util.send_include(::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter,
         | 
| 13 13 | 
             
                                                Oboe::Inst::ConnectionAdapters::Utils)
         | 
| 14 14 |  | 
| 15 | 
            -
                      if (::ActiveRecord::VERSION::MAJOR == 3 and ::ActiveRecord::VERSION::MINOR > 0) or | 
| 15 | 
            +
                      if (::ActiveRecord::VERSION::MAJOR == 3 and ::ActiveRecord::VERSION::MINOR > 0) or
         | 
| 16 16 | 
             
                            ::ActiveRecord::VERSION::MAJOR == 4
         | 
| 17 17 |  | 
| 18 18 | 
             
                        # ActiveRecord 3.1 and up
         | 
| @@ -5,7 +5,7 @@ module Oboe | |
| 5 5 | 
             
              module Inst
         | 
| 6 6 | 
             
                module ConnectionAdapters
         | 
| 7 7 | 
             
                  module Utils
         | 
| 8 | 
            -
             | 
| 8 | 
            +
             | 
| 9 9 | 
             
                    def extract_trace_details(sql, name = nil, binds = [])
         | 
| 10 10 | 
             
                      opts = {}
         | 
| 11 11 |  | 
| @@ -26,7 +26,7 @@ module Oboe | |
| 26 26 | 
             
                          config = ::Rails.configuration.database_configuration[::Rails.env]
         | 
| 27 27 | 
             
                        else
         | 
| 28 28 | 
             
                          config = ::Rails.application.config.database_configuration[::Rails.env]
         | 
| 29 | 
            -
                        end | 
| 29 | 
            +
                        end
         | 
| 30 30 |  | 
| 31 31 | 
             
                        opts[:Database]   = config["database"] if config.has_key?("database")
         | 
| 32 32 | 
             
                        opts[:RemoteHost] = config["host"]     if config.has_key?("host")
         | 
| @@ -42,7 +42,7 @@ module Oboe | |
| 42 42 | 
             
                    # We don't want to trace framework caches.  Only instrument SQL that
         | 
| 43 43 | 
             
                    # directly hits the database.
         | 
| 44 44 | 
             
                    def ignore_payload?(name)
         | 
| 45 | 
            -
                      %w(SCHEMA EXPLAIN CACHE).include? name.to_s or | 
| 45 | 
            +
                      %w(SCHEMA EXPLAIN CACHE).include? name.to_s or
         | 
| 46 46 | 
             
                        (name and name.to_sym == :skip_logging) or
         | 
| 47 47 | 
             
                          name == "ActiveRecord::SchemaMigration Load"
         | 
| 48 48 | 
             
                    end
         | 
| @@ -50,7 +50,7 @@ module Oboe | |
| 50 50 | 
             
                    #def cfg
         | 
| 51 51 | 
             
                    #  @config
         | 
| 52 52 | 
             
                    #end
         | 
| 53 | 
            -
             | 
| 53 | 
            +
             | 
| 54 54 | 
             
                    def execute_with_oboe(sql, name = nil)
         | 
| 55 55 | 
             
                      if Oboe.tracing? and !ignore_payload?(name)
         | 
| 56 56 |  | 
| @@ -62,7 +62,7 @@ module Oboe | |
| 62 62 | 
             
                        execute_without_oboe(sql, name)
         | 
| 63 63 | 
             
                      end
         | 
| 64 64 | 
             
                    end
         | 
| 65 | 
            -
             | 
| 65 | 
            +
             | 
| 66 66 | 
             
                    def exec_query_with_oboe(sql, name = nil, binds = [])
         | 
| 67 67 | 
             
                      if Oboe.tracing? and !ignore_payload?(name)
         | 
| 68 68 |  | 
| @@ -74,7 +74,7 @@ module Oboe | |
| 74 74 | 
             
                        exec_query_without_oboe(sql, name, binds)
         | 
| 75 75 | 
             
                      end
         | 
| 76 76 | 
             
                    end
         | 
| 77 | 
            -
             | 
| 77 | 
            +
             | 
| 78 78 | 
             
                    def exec_delete_with_oboe(sql, name = nil, binds = [])
         | 
| 79 79 | 
             
                      if Oboe.tracing? and !ignore_payload?(name)
         | 
| 80 80 |  | 
| @@ -86,7 +86,7 @@ module Oboe | |
| 86 86 | 
             
                        exec_delete_without_oboe(sql, name, binds)
         | 
| 87 87 | 
             
                      end
         | 
| 88 88 | 
             
                    end
         | 
| 89 | 
            -
             | 
| 89 | 
            +
             | 
| 90 90 | 
             
                    def exec_insert_with_oboe(sql, name = nil, binds = [], *args)
         | 
| 91 91 | 
             
                      if Oboe.tracing? and !ignore_payload?(name)
         | 
| 92 92 |  | 
| @@ -98,7 +98,7 @@ module Oboe | |
| 98 98 | 
             
                        exec_insert_without_oboe(sql, name, binds, *args)
         | 
| 99 99 | 
             
                      end
         | 
| 100 100 | 
             
                    end
         | 
| 101 | 
            -
             | 
| 101 | 
            +
             | 
| 102 102 | 
             
                    def begin_db_transaction_with_oboe()
         | 
| 103 103 | 
             
                      if Oboe.tracing?
         | 
| 104 104 | 
             
                        opts = {}
         | 
| @@ -31,11 +31,41 @@ module Oboe | |
| 31 31 | 
             
                      dispatch_without_oboe
         | 
| 32 32 | 
             
                    end
         | 
| 33 33 | 
             
                  end
         | 
| 34 | 
            -
             | 
| 34 | 
            +
             | 
| 35 35 | 
             
                  def handle_exception_with_oboe(boom)
         | 
| 36 36 | 
             
                    Oboe::API.log_exception(nil, boom) if Oboe.tracing?
         | 
| 37 37 | 
             
                    handle_exception_without_oboe(boom)
         | 
| 38 38 | 
             
                  end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  @@rum_xhr_tmpl = File.read(File.dirname(__FILE__) + '/rails/helpers/rum/rum_ajax_header.js.erb')
         | 
| 41 | 
            +
                  @@rum_hdr_tmpl = File.read(File.dirname(__FILE__) + '/rails/helpers/rum/rum_header.js.erb')
         | 
| 42 | 
            +
                  @@rum_ftr_tmpl = File.read(File.dirname(__FILE__) + '/rails/helpers/rum/rum_footer.js.erb')
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def oboe_rum_header
         | 
| 45 | 
            +
                    return unless Oboe::Config.rum_id
         | 
| 46 | 
            +
                    if Oboe.tracing?
         | 
| 47 | 
            +
                      if request.xhr?
         | 
| 48 | 
            +
                        return ERB.new(@@rum_xhr_tmpl).result
         | 
| 49 | 
            +
                      else
         | 
| 50 | 
            +
                        return ERB.new(@@rum_hdr_tmpl).result
         | 
| 51 | 
            +
                      end
         | 
| 52 | 
            +
                    end
         | 
| 53 | 
            +
                  rescue StandardError => e
         | 
| 54 | 
            +
                    Oboe.logger.warn "oboe_rum_header: #{e.message}."
         | 
| 55 | 
            +
                    return ""
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  def oboe_rum_footer
         | 
| 59 | 
            +
                    return unless Oboe::Config.rum_id
         | 
| 60 | 
            +
                    if Oboe.tracing?
         | 
| 61 | 
            +
                      # Even though the footer template is named xxxx.erb, there are no ERB tags in it so we'll
         | 
| 62 | 
            +
                      # skip that step for now
         | 
| 63 | 
            +
                      return @@rum_ftr_tmpl
         | 
| 64 | 
            +
                    end
         | 
| 65 | 
            +
                  rescue StandardError => e
         | 
| 66 | 
            +
                    Oboe.logger.warn "oboe_rum_footer: #{e.message}."
         | 
| 67 | 
            +
                    return ""
         | 
| 68 | 
            +
                  end
         | 
| 39 69 | 
             
                end
         | 
| 40 70 | 
             
              end
         | 
| 41 71 | 
             
            end
         | 
| @@ -54,11 +84,11 @@ if defined?(::Sinatra) | |
| 54 84 | 
             
              # When in TEST environment, we load this instrumentation regardless.
         | 
| 55 85 | 
             
              # Otherwise, only when Padrino isn't around.
         | 
| 56 86 | 
             
              unless defined?(::Padrino) and not (ENV['RACK_ENV'] == "test")
         | 
| 57 | 
            -
                # Padrino has 'enhanced' routes and rendering so the Sinatra | 
| 87 | 
            +
                # Padrino has 'enhanced' routes and rendering so the Sinatra
         | 
| 58 88 | 
             
                # instrumentation won't work anyways.  Only load for pure Sinatra apps.
         | 
| 59 89 | 
             
                ::Oboe::Util.send_include(::Sinatra::Base,      ::Oboe::Sinatra::Base)
         | 
| 60 90 | 
             
                ::Oboe::Util.send_include(::Sinatra::Templates, ::Oboe::Sinatra::Templates)
         | 
| 61 | 
            -
             | 
| 91 | 
            +
             | 
| 62 92 | 
             
                # Report __Init after fork when in Heroku
         | 
| 63 93 | 
             
                Oboe::API.report_init unless Oboe.heroku?
         | 
| 64 94 | 
             
              end
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 |  | 
| 4 4 | 
             
            module Oboe
         | 
| 5 5 | 
             
              module Sinatra
         | 
| 6 | 
            -
                module Templates | 
| 6 | 
            +
                module Templates
         | 
| 7 7 | 
             
                  def self.included(klass)
         | 
| 8 8 | 
             
                    ::Oboe::Util.method_alias(klass, :render, ::Sinatra::Templates)
         | 
| 9 9 | 
             
                  end
         | 
| @@ -16,7 +16,7 @@ module Oboe | |
| 16 16 | 
             
                      report_kvs[:template] = data
         | 
| 17 17 |  | 
| 18 18 | 
             
                      if Oboe::Context.tracing_layer_op?('render')
         | 
| 19 | 
            -
                        # For recursive calls to :render (for sub-partials and layouts), | 
| 19 | 
            +
                        # For recursive calls to :render (for sub-partials and layouts),
         | 
| 20 20 | 
             
                        # use method profiling.
         | 
| 21 21 | 
             
                        begin
         | 
| 22 22 | 
             
                          name = data
         | 
    
        data/lib/oboe/inst/cassandra.rb
    CHANGED
    
    | @@ -11,7 +11,7 @@ module Oboe | |
| 11 11 | 
             
                      report_kvs[:Op] = op.to_s
         | 
| 12 12 | 
             
                      report_kvs[:Cf] = column_family.to_s if column_family
         | 
| 13 13 | 
             
                      report_kvs[:Key] = keys.inspect if keys
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
                      # Open issue - how to handle multiple Cassandra servers
         | 
| 16 16 | 
             
                      report_kvs[:RemoteHost], report_kvs[:RemotePort] = @servers.first.split(":")
         | 
| 17 17 |  | 
| @@ -20,7 +20,7 @@ module Oboe | |
| 20 20 | 
             
                      if options.empty? and args.is_a?(Array)
         | 
| 21 21 | 
             
                        options = args.last if args.last.is_a?(Hash)
         | 
| 22 22 | 
             
                      end
         | 
| 23 | 
            -
             | 
| 23 | 
            +
             | 
| 24 24 | 
             
                      unless options.empty?
         | 
| 25 25 | 
             
                        [:start_key, :finish_key, :key_count, :batch_size, :columns, :count, :start,
         | 
| 26 26 | 
             
                         :stop, :finish, :finished, :reversed, :consistency, :ttl].each do |k|
         | 
| @@ -73,10 +73,10 @@ module Oboe | |
| 73 73 | 
             
                      send :count_columns_without_oboe, *args
         | 
| 74 74 | 
             
                    end
         | 
| 75 75 | 
             
                  end
         | 
| 76 | 
            -
             | 
| 76 | 
            +
             | 
| 77 77 | 
             
                  def get_columns_with_oboe(column_family, key, *columns_and_options)
         | 
| 78 78 | 
             
                    args = [column_family, key] + columns_and_options
         | 
| 79 | 
            -
             | 
| 79 | 
            +
             | 
| 80 80 | 
             
                    if Oboe.tracing? and not Oboe::Context.tracing_layer_op?(:multi_get_columns)
         | 
| 81 81 | 
             
                      report_kvs = extract_trace_details(:get_columns, column_family, key, columns_and_options)
         | 
| 82 82 |  | 
| @@ -87,7 +87,7 @@ module Oboe | |
| 87 87 | 
             
                      send :get_columns_without_oboe, *args
         | 
| 88 88 | 
             
                    end
         | 
| 89 89 | 
             
                  end
         | 
| 90 | 
            -
             | 
| 90 | 
            +
             | 
| 91 91 | 
             
                  def multi_get_columns_with_oboe(column_family, key, *columns_and_options)
         | 
| 92 92 | 
             
                    return send :multi_get_columns_without_oboe, *args unless Oboe.tracing?
         | 
| 93 93 |  | 
| @@ -109,10 +109,10 @@ module Oboe | |
| 109 109 | 
             
                      send :get_without_oboe, *args
         | 
| 110 110 | 
             
                    end
         | 
| 111 111 | 
             
                  end
         | 
| 112 | 
            -
             | 
| 112 | 
            +
             | 
| 113 113 | 
             
                  def multi_get_with_oboe(column_family, key, *columns_and_options)
         | 
| 114 114 | 
             
                    args = [column_family, key] + columns_and_options
         | 
| 115 | 
            -
             | 
| 115 | 
            +
             | 
| 116 116 | 
             
                    if Oboe.tracing? and not Oboe::Context.tracing_layer_op?(:get)
         | 
| 117 117 | 
             
                      report_kvs = extract_trace_details(:multi_get, column_family, key, columns_and_options)
         | 
| 118 118 |  | 
| @@ -134,7 +134,7 @@ module Oboe | |
| 134 134 | 
             
                      send :exists_without_oboe?, *args
         | 
| 135 135 | 
             
                    end
         | 
| 136 136 | 
             
                  end
         | 
| 137 | 
            -
             | 
| 137 | 
            +
             | 
| 138 138 | 
             
                  def get_range_single_with_oboe(column_family, options = {})
         | 
| 139 139 | 
             
                    if Oboe.tracing? and not Oboe::Context.tracing_layer_op?(:get_range_batch)
         | 
| 140 140 | 
             
                      report_kvs = extract_trace_details(:get_range_single, column_family, nil, nil)
         | 
| @@ -147,10 +147,10 @@ module Oboe | |
| 147 147 | 
             
                      get_range_single_without_oboe(column_family, options)
         | 
| 148 148 | 
             
                    end
         | 
| 149 149 | 
             
                  end
         | 
| 150 | 
            -
             | 
| 150 | 
            +
             | 
| 151 151 | 
             
                  def get_range_batch_with_oboe(column_family, options = {})
         | 
| 152 152 | 
             
                    return get_range_batch_without_oboe(column_family, options) unless Oboe.tracing?
         | 
| 153 | 
            -
             | 
| 153 | 
            +
             | 
| 154 154 | 
             
                    report_kvs = extract_trace_details(:get_range_batch, column_family, nil, nil)
         | 
| 155 155 | 
             
                    args = [column_family, options]
         | 
| 156 156 |  | 
| @@ -158,7 +158,7 @@ module Oboe | |
| 158 158 | 
             
                      get_range_batch_without_oboe(column_family, options)
         | 
| 159 159 | 
             
                    end
         | 
| 160 160 | 
             
                  end
         | 
| 161 | 
            -
             | 
| 161 | 
            +
             | 
| 162 162 | 
             
                  def get_indexed_slices_with_oboe(column_family, index_clause, *columns_and_options)
         | 
| 163 163 | 
             
                    return send :get_indexed_slices_without_oboe, *args unless Oboe.tracing?
         | 
| 164 164 |  | 
| @@ -174,7 +174,7 @@ module Oboe | |
| 174 174 | 
             
                    unless Oboe.tracing?
         | 
| 175 175 | 
             
                      return create_index_without_oboe(keyspace, column_family, column_name, validation_class)
         | 
| 176 176 | 
             
                    end
         | 
| 177 | 
            -
             | 
| 177 | 
            +
             | 
| 178 178 | 
             
                    report_kvs = extract_trace_details(:create_index, column_family, nil, nil)
         | 
| 179 179 | 
             
                    begin
         | 
| 180 180 | 
             
                      report_kvs[:Keyspace] = keyspace.to_s
         | 
| @@ -190,7 +190,7 @@ module Oboe | |
| 190 190 |  | 
| 191 191 | 
             
                  def drop_index_with_oboe(keyspace, column_family, column_name)
         | 
| 192 192 | 
             
                    return drop_index_without_oboe(keyspace, column_family, column_name) unless Oboe.tracing?
         | 
| 193 | 
            -
             | 
| 193 | 
            +
             | 
| 194 194 | 
             
                    report_kvs = extract_trace_details(:drop_index, column_family, nil, nil)
         | 
| 195 195 | 
             
                    begin
         | 
| 196 196 | 
             
                      report_kvs[:Keyspace] = keyspace.to_s
         | 
| @@ -216,7 +216,7 @@ module Oboe | |
| 216 216 | 
             
                      add_column_family_without_oboe(cf_def)
         | 
| 217 217 | 
             
                    end
         | 
| 218 218 | 
             
                  end
         | 
| 219 | 
            -
             | 
| 219 | 
            +
             | 
| 220 220 | 
             
                  def drop_column_family_with_oboe(column_family)
         | 
| 221 221 | 
             
                    return drop_column_family_without_oboe(column_family) unless Oboe.tracing?
         | 
| 222 222 |  | 
| @@ -226,7 +226,7 @@ module Oboe | |
| 226 226 | 
             
                      drop_column_family_without_oboe(column_family)
         | 
| 227 227 | 
             
                    end
         | 
| 228 228 | 
             
                  end
         | 
| 229 | 
            -
             | 
| 229 | 
            +
             | 
| 230 230 | 
             
                  def add_keyspace_with_oboe(ks_def)
         | 
| 231 231 | 
             
                    return add_keyspace_without_oboe(ks_def) unless Oboe.tracing?
         | 
| 232 232 |  | 
| @@ -237,10 +237,10 @@ module Oboe | |
| 237 237 | 
             
                      add_keyspace_without_oboe(ks_def)
         | 
| 238 238 | 
             
                    end
         | 
| 239 239 | 
             
                  end
         | 
| 240 | 
            -
             | 
| 240 | 
            +
             | 
| 241 241 | 
             
                  def drop_keyspace_with_oboe(keyspace)
         | 
| 242 242 | 
             
                    return drop_keyspace_without_oboe(keyspace) unless Oboe.tracing?
         | 
| 243 | 
            -
             | 
| 243 | 
            +
             | 
| 244 244 | 
             
                    report_kvs = extract_trace_details(:drop_keyspace, nil, nil, nil)
         | 
| 245 245 | 
             
                    report_kvs[:Name] = keyspace.to_s rescue ""
         | 
| 246 246 |  | 
| @@ -254,11 +254,11 @@ end | |
| 254 254 |  | 
| 255 255 | 
             
            if defined?(::Cassandra) and Oboe::Config[:cassandra][:enabled]
         | 
| 256 256 | 
             
              Oboe.logger.info "[oboe/loading] Instrumenting cassandra" if Oboe::Config[:verbose]
         | 
| 257 | 
            -
             | 
| 257 | 
            +
             | 
| 258 258 | 
             
              class ::Cassandra
         | 
| 259 259 | 
             
                include Oboe::Inst::Cassandra
         | 
| 260 260 |  | 
| 261 | 
            -
                [ :insert, :remove, :count_columns, :get_columns, :multi_get_columns, :get, | 
| 261 | 
            +
                [ :insert, :remove, :count_columns, :get_columns, :multi_get_columns, :get,
         | 
| 262 262 | 
             
                  :multi_get, :get_range_single, :get_range_batch, :get_indexed_slices,
         | 
| 263 263 | 
             
                  :create_index, :drop_index, :add_column_family, :drop_column_family,
         | 
| 264 264 | 
             
                  :add_keyspace, :drop_keyspace].each do |m|
         | 
    
        data/lib/oboe/inst/dalli.rb
    CHANGED
    
    | @@ -24,7 +24,7 @@ module Oboe | |
| 24 24 |  | 
| 25 25 | 
             
                  def perform_with_oboe(*all_args, &blk)
         | 
| 26 26 | 
             
                    op, key, *args = *all_args
         | 
| 27 | 
            -
             | 
| 27 | 
            +
             | 
| 28 28 | 
             
                    if Oboe.tracing? and not Oboe::Context.tracing_layer_op?(:get_multi)
         | 
| 29 29 | 
             
                      Oboe::API.trace('memcache', { :KVOp => op, :KVKey => key }) do
         | 
| 30 30 | 
             
                        result = perform_without_oboe(*all_args, &blk)
         | 
| @@ -32,7 +32,7 @@ module Oboe | |
| 32 32 | 
             
                        info_kvs = {}
         | 
| 33 33 | 
             
                        info_kvs[:KVHit] = memcache_hit?(result) if op == :get and key.class == String
         | 
| 34 34 | 
             
                        info_kvs[:Backtrace] = Oboe::API.backtrace if Oboe::Config[:dalli][:collect_backtraces]
         | 
| 35 | 
            -
             | 
| 35 | 
            +
             | 
| 36 36 | 
             
                        Oboe::API.log('memcache', 'info', info_kvs) unless info_kvs.empty?
         | 
| 37 37 | 
             
                        result
         | 
| 38 38 | 
             
                      end
         | 
| @@ -43,11 +43,11 @@ module Oboe | |
| 43 43 |  | 
| 44 44 | 
             
                  def get_multi_with_oboe(*keys)
         | 
| 45 45 | 
             
                    return get_multi_without_oboe(keys) unless Oboe.tracing?
         | 
| 46 | 
            -
             | 
| 46 | 
            +
             | 
| 47 47 | 
             
                    info_kvs = {}
         | 
| 48 | 
            -
             | 
| 48 | 
            +
             | 
| 49 49 | 
             
                    begin
         | 
| 50 | 
            -
                      info_kvs[:KVKeyCount] = keys.flatten.length | 
| 50 | 
            +
                      info_kvs[:KVKeyCount] = keys.flatten.length
         | 
| 51 51 | 
             
                      info_kvs[:KVKeyCount] = (info_kvs[:KVKeyCount] - 1) if keys.last.is_a?(Hash) || keys.last.nil?
         | 
| 52 52 | 
             
                    rescue
         | 
| 53 53 | 
             
                      Oboe.logger.debug "[oboe/debug] Error collecting info keys: #{e.message}"
         | 
| @@ -56,12 +56,12 @@ module Oboe | |
| 56 56 |  | 
| 57 57 | 
             
                    Oboe::API.trace('memcache', { :KVOp => :get_multi }, :get_multi) do
         | 
| 58 58 | 
             
                      values = get_multi_without_oboe(keys)
         | 
| 59 | 
            -
             | 
| 59 | 
            +
             | 
| 60 60 | 
             
                      info_kvs[:KVHitCount] = values.length
         | 
| 61 61 | 
             
                      info_kvs[:Backtrace] = Oboe::API.backtrace if Oboe::Config[:dalli][:collect_backtraces]
         | 
| 62 62 | 
             
                      Oboe::API.log('memcache', 'info', info_kvs)
         | 
| 63 63 |  | 
| 64 | 
            -
                      values | 
| 64 | 
            +
                      values
         | 
| 65 65 | 
             
                    end
         | 
| 66 66 | 
             
                  end
         | 
| 67 67 | 
             
                end
         |