appoptics_apm 4.4.0 → 4.4.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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/examples/carrying_context.rb +1 -1
  4. data/lib/appoptics_apm/api/logging.rb +1 -1
  5. data/lib/appoptics_apm/api/profiling.rb +2 -2
  6. data/lib/appoptics_apm/api/tracing.rb +0 -1
  7. data/lib/appoptics_apm/base.rb +1 -1
  8. data/lib/appoptics_apm/config.rb +2 -2
  9. data/lib/appoptics_apm/frameworks/grape.rb +13 -12
  10. data/lib/appoptics_apm/frameworks/padrino.rb +67 -14
  11. data/lib/appoptics_apm/frameworks/rails/inst/action_controller.rb +3 -3
  12. data/lib/appoptics_apm/frameworks/rails/inst/action_controller3.rb +4 -7
  13. data/lib/appoptics_apm/frameworks/rails/inst/action_controller4.rb +1 -1
  14. data/lib/appoptics_apm/frameworks/rails/inst/action_controller5.rb +1 -1
  15. data/lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb +2 -2
  16. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/mysql.rb +14 -14
  17. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/mysql2.rb +9 -9
  18. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/postgresql.rb +8 -8
  19. data/lib/appoptics_apm/frameworks/sinatra.rb +62 -11
  20. data/lib/appoptics_apm/inst/bunny-client.rb +12 -10
  21. data/lib/appoptics_apm/inst/bunny-consumer.rb +54 -56
  22. data/lib/appoptics_apm/inst/curb.rb +11 -11
  23. data/lib/appoptics_apm/inst/dalli.rb +3 -4
  24. data/lib/appoptics_apm/inst/delayed_job.rb +7 -7
  25. data/lib/appoptics_apm/inst/em-http-request.rb +6 -9
  26. data/lib/appoptics_apm/inst/excon.rb +10 -9
  27. data/lib/appoptics_apm/inst/faraday.rb +6 -8
  28. data/lib/appoptics_apm/inst/grpc_client.rb +8 -9
  29. data/lib/appoptics_apm/inst/httpclient.rb +10 -10
  30. data/lib/appoptics_apm/inst/memcached.rb +9 -13
  31. data/lib/appoptics_apm/inst/mongo.rb +14 -10
  32. data/lib/appoptics_apm/inst/mongo2.rb +5 -5
  33. data/lib/appoptics_apm/inst/moped.rb +10 -10
  34. data/lib/appoptics_apm/inst/rack.rb +11 -14
  35. data/lib/appoptics_apm/inst/redis.rb +10 -10
  36. data/lib/appoptics_apm/inst/resque.rb +9 -9
  37. data/lib/appoptics_apm/inst/rest-client.rb +4 -6
  38. data/lib/appoptics_apm/inst/sequel.rb +10 -10
  39. data/lib/appoptics_apm/inst/sidekiq-client.rb +5 -5
  40. data/lib/appoptics_apm/inst/sidekiq-worker.rb +5 -5
  41. data/lib/appoptics_apm/inst/twitter-cassandra.rb +3 -3
  42. data/lib/appoptics_apm/inst/typhoeus.rb +8 -9
  43. data/lib/appoptics_apm/legacy_method_profiling.rb +1 -1
  44. data/lib/appoptics_apm/ruby.rb +1 -1
  45. data/lib/appoptics_apm/sdk/custom_metrics.rb +1 -1
  46. data/lib/appoptics_apm/sdk/tracing.rb +3 -0
  47. data/lib/appoptics_apm/support.rb +2 -2
  48. data/lib/appoptics_apm/thread_local.rb +1 -1
  49. data/lib/appoptics_apm/util.rb +4 -4
  50. data/lib/appoptics_apm/version.rb +1 -1
  51. data/lib/oboe/backward_compatibility.rb +3 -3
  52. data/lib/rails/generators/appoptics_apm/templates/appoptics_apm_initializer.rb +11 -4
  53. metadata +2 -4
  54. data/lib/appoptics_apm/frameworks/padrino/templates.rb +0 -58
  55. data/lib/appoptics_apm/frameworks/sinatra/templates.rb +0 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f55957c02fb447084c8430a6dff438ce8ff3725f1eaf755e1c0f9092f94360b0
4
- data.tar.gz: 02a24b754db042ec253cefb0160217bb9d136a2ad360916630bc4413007b3786
3
+ metadata.gz: 2c47f21237c21b5074eae5806315b7abc78380b75a964385c611157d561ef9e9
4
+ data.tar.gz: cca745771a727e6e85fb2e5accfa380f20bd2932f2ecf0bf23fdf84d8fdbd923
5
5
  SHA512:
6
- metadata.gz: ed5020f576a5ebc447bdfad639140373670cdc30ff50e5c8b379bdd3c1fab74b764eea21ef3f0e3a5670152f64daa07db6b08bf291bb0468ece448fc4f7f1399
7
- data.tar.gz: f0d5f73b872b8d869b3308aff1180447f2a46f48039afa84f0ce8a43a2e06bdcaeb13fbca95453c9cc80988f93a85c1c534882b963e528ed0904195b6d75edb0
6
+ metadata.gz: 97639be2a19811b48f8de96867b86d912727834108d3770ab10bb447e8be07de02a8e4b9db985a1227735980fb3831dd4338ccaa253c069feb3e250600c8a7ec
7
+ data.tar.gz: 6d7c6a513f80161d3848c9a857de69504d42deffe64d125390d8b98ffdbf017f8101e9afa326ee78fbbd04b6b1a1b713b52aded8cbd7c1b9331d57ca6ce80d96
@@ -30,6 +30,9 @@ gemfile:
30
30
 
31
31
  matrix:
32
32
  exclude:
33
+ - rvm: ruby-head
34
+ gemfile: gemfiles/rails42.gemfile
35
+
33
36
  - rvm: 2.5.3
34
37
  env: DBTYPE=mysql
35
38
  - rvm: 2.4.5
@@ -19,7 +19,7 @@
19
19
  #
20
20
  # For example, when a web request comes into a stack, a tracing
21
21
  # context is established using `AppOpticsAPM::API.log_start` as the request
22
- # enters through the rack middleware via `::AppOpticsAPM::Rack`.
22
+ # enters through the rack middleware via `AppOpticsAPM::Rack`.
23
23
  #
24
24
  # That tracing context is then continued using `AppOpticsAPM::API.trace` or
25
25
  # `AppOpticsAPM::API.log_entry` for each subsequent layer such as Rails,
@@ -102,7 +102,7 @@ module AppOpticsAPM
102
102
  #
103
103
  # Returns an xtrace metadata string if we are tracing
104
104
  def log_start(layer, xtrace = nil, opts = {})
105
- return if !AppOpticsAPM.loaded || (opts.key?(:URL) && ::AppOpticsAPM::Util.static_asset?(opts[:URL]))
105
+ return if !AppOpticsAPM.loaded || (opts.key?(:URL) && AppOpticsAPM::Util.static_asset?(opts[:URL]))
106
106
 
107
107
  #--
108
108
  # Is the below necessary? Only on JRuby? Could there be an existing context but not x-trace header?
@@ -124,10 +124,10 @@ module AppOpticsAPM
124
124
 
125
125
  source_location = []
126
126
  if instance_method
127
- ::AppOpticsAPM::Util.send_include(klass, ::AppOpticsAPM::MethodProfiling)
127
+ AppOpticsAPM::Util.send_include(klass, AppOpticsAPM::MethodProfiling)
128
128
  source_location = klass.instance_method(method).source_location
129
129
  elsif class_method
130
- ::AppOpticsAPM::Util.send_extend(klass, ::AppOpticsAPM::MethodProfiling)
130
+ AppOpticsAPM::Util.send_extend(klass, AppOpticsAPM::MethodProfiling)
131
131
  source_location = klass.method(method).source_location
132
132
  end
133
133
 
@@ -48,7 +48,6 @@ module AppOpticsAPM
48
48
  [start_trace_with_target(span, xtrace, target, opts) { yield }, target['X-Trace']]
49
49
  end
50
50
 
51
-
52
51
  end
53
52
  end
54
53
  end
@@ -33,7 +33,7 @@ TRACE_FILE = '/tmp/appoptics_traces.bson'.freeze
33
33
  # Current variations as of 2014-09-10 are a c-extension, JRuby (using AppOpticsAPM Java
34
34
  # instrumentation) and a Heroku c-extension (with embedded tracelyzer)
35
35
  module AppOpticsAPMBase
36
- extend ::AppOpticsAPM::ThreadLocal
36
+ extend AppOpticsAPM::ThreadLocal
37
37
 
38
38
  attr_accessor :reporter
39
39
  attr_accessor :loaded
@@ -15,9 +15,9 @@ module AppOpticsAPM
15
15
  :active_record, :bunnyclient, :bunnyconsumer, :cassandra, :curb,
16
16
  :dalli, :delayed_jobclient, :delayed_jobworker,
17
17
  :em_http_request, :excon, :faraday, :grpc_client, :grape,
18
- :httpclient, :nethttp, :memcached, :mongo, :moped, :rack, :redis,
18
+ :httpclient, :memcached, :mongo, :moped, :nethttp, :padrino, :rack, :redis,
19
19
  :resqueclient, :resqueworker, :rest_client,
20
- :sequel, :sidekiqclient, :sidekiqworker, :typhoeus]
20
+ :sequel, :sidekiqclient, :sidekiqworker, :sinatra, :typhoeus]
21
21
 
22
22
  # Subgrouping of instrumentation
23
23
  @@http_clients = [:curb, :excon, :em_http_request, :faraday, :httpclient, :nethttp, :rest_client, :typhoeus]
@@ -7,19 +7,19 @@ module AppOpticsAPM
7
7
  module Grape
8
8
  module API
9
9
  def self.extended(klass)
10
- ::AppOpticsAPM::Util.class_method_alias(klass, :inherited, ::Grape::API)
10
+ AppOpticsAPM::Util.class_method_alias(klass, :inherited, ::Grape::API)
11
11
  end
12
12
 
13
13
  def inherited_with_appoptics(subclass)
14
14
  inherited_without_appoptics(subclass)
15
15
 
16
- subclass.use ::AppOpticsAPM::Rack
16
+ subclass.use AppOpticsAPM::Rack
17
17
  end
18
18
  end
19
19
 
20
20
  module Endpoint
21
21
  def self.included(klass)
22
- ::AppOpticsAPM::Util.method_alias(klass, :run, ::Grape::Endpoint)
22
+ AppOpticsAPM::Util.method_alias(klass, :run, ::Grape::Endpoint)
23
23
  end
24
24
 
25
25
  def run_with_appoptics(*args)
@@ -33,22 +33,23 @@ module AppOpticsAPM
33
33
  else
34
34
  report_kvs[:Action] = args.empty? ? env['PATH_INFO'] : args[0]['PATH_INFO']
35
35
  end
36
+ report_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:grape][:collect_backtraces]
36
37
 
37
38
  env['appoptics_apm.controller'] = report_kvs[:Controller]
38
39
  env['appoptics_apm.action'] = report_kvs[:Action]
39
40
 
40
- ::AppOpticsAPM::API.log_entry('grape', report_kvs)
41
+ AppOpticsAPM::API.log_entry('grape', report_kvs)
41
42
 
42
43
  run_without_appoptics(*args)
43
44
  ensure
44
- ::AppOpticsAPM::API.log_exit('grape')
45
+ AppOpticsAPM::API.log_exit('grape')
45
46
  end
46
47
  end
47
48
 
48
49
  module Middleware
49
50
  module Error
50
51
  def self.included(klass)
51
- ::AppOpticsAPM::Util.method_alias(klass, :error_response, ::Grape::Middleware::Error)
52
+ AppOpticsAPM::Util.method_alias(klass, :error_response, ::Grape::Middleware::Error)
52
53
  end
53
54
 
54
55
  def error_response_with_appoptics(error = {})
@@ -60,9 +61,9 @@ module AppOpticsAPM
60
61
 
61
62
  # Since Grape uses throw/catch and not Exceptions, we have to create an exception here
62
63
  exception = GrapeError.new(error[:message] ? error[:message] : "No message given.")
63
- exception.set_backtrace(::AppOpticsAPM::API.backtrace)
64
+ exception.set_backtrace(AppOpticsAPM::API.backtrace)
64
65
 
65
- ::AppOpticsAPM::API.log_exception('rack', exception )
66
+ AppOpticsAPM::API.log_exception('rack', exception)
66
67
 
67
68
  # Since calls to error() are handled similar to abort in Grape. We
68
69
  # manually log the rack exit here since the original code won't
@@ -83,14 +84,14 @@ module AppOpticsAPM
83
84
  end
84
85
  end
85
86
 
86
- if AppOpticsAPM::Config[:grape][:enabled] && defined?(::Grape)
87
+ if AppOpticsAPM::Config[:grape][:enabled] && defined?(Grape)
87
88
  require 'appoptics_apm/inst/rack'
88
89
 
89
90
  AppOpticsAPM.logger.info "[appoptics_apm/loading] Instrumenting Grape" if AppOpticsAPM::Config[:verbose]
90
91
 
91
92
  AppOpticsAPM::Inst.load_instrumentation
92
93
 
93
- ::AppOpticsAPM::Util.send_extend(::Grape::API, ::AppOpticsAPM::Grape::API)
94
- ::AppOpticsAPM::Util.send_include(::Grape::Endpoint, ::AppOpticsAPM::Grape::Endpoint)
95
- ::AppOpticsAPM::Util.send_include(::Grape::Middleware::Error, ::AppOpticsAPM::Grape::Middleware::Error)
94
+ AppOpticsAPM::Util.send_extend(Grape::API, AppOpticsAPM::Grape::API)
95
+ AppOpticsAPM::Util.send_include(Grape::Endpoint, AppOpticsAPM::Grape::Endpoint)
96
+ AppOpticsAPM::Util.send_include(Grape::Middleware::Error, AppOpticsAPM::Grape::Middleware::Error)
96
97
  end
@@ -5,17 +5,17 @@ module AppOpticsAPM
5
5
  module PadrinoInst
6
6
  module Routing
7
7
  def self.included(klass)
8
- ::AppOpticsAPM::Util.method_alias(klass, :dispatch!, ::Padrino::Routing)
8
+ AppOpticsAPM::Util.method_alias(klass, :dispatch!, ::Padrino::Routing)
9
9
  end
10
10
 
11
11
  def dispatch_with_appoptics
12
12
 
13
- ::AppOpticsAPM::API.log_entry('padrino', {})
13
+ AppOpticsAPM::API.log_entry('padrino', {})
14
+ report_kvs = {}
14
15
 
15
16
  result = dispatch_without_appoptics
16
17
 
17
18
  # Report Controller/Action and Transaction as best possible
18
- report_kvs = {}
19
19
  controller = (request.controller && !request.controller.empty?) ? request.controller : nil
20
20
  report_kvs[:Controller] = controller || self.class
21
21
  report_kvs[:Action] = request.route_obj ? request.route_obj.path : request.action
@@ -24,29 +24,82 @@ module AppOpticsAPM
24
24
 
25
25
  result
26
26
  rescue => e
27
- ::AppOpticsAPM::API.log_exception('padrino', e)
27
+ AppOpticsAPM::API.log_exception('padrino', e)
28
28
  raise e
29
29
  ensure
30
- ::AppOpticsAPM::API.log_exit('padrino', report_kvs)
30
+ report_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:padrino][:collect_backtraces]
31
+ AppOpticsAPM::API.log_exit('padrino', report_kvs)
32
+ end
33
+ end
34
+
35
+ module Rendering
36
+ def self.included(klass)
37
+ AppOpticsAPM::Util.method_alias(klass, :render, ::Padrino::Rendering)
38
+ end
39
+
40
+ # TODO add test coverage, currently there are no tests for this
41
+ def render_with_appoptics(engine, data = nil, options = {}, locals = {}, &block)
42
+ if AppOpticsAPM.tracing?
43
+ report_kvs = {}
44
+
45
+ if data
46
+ report_kvs[:engine] = engine
47
+ report_kvs[:template] = data
48
+ else
49
+ report_kvs[:template] = engine
50
+ end
51
+
52
+ if AppOpticsAPM.tracing_layer_op?(:render)
53
+ # For recursive calls to :render (for sub-partials and layouts),
54
+ # use method profiling.
55
+ begin
56
+ report_kvs[:FunctionName] = :render
57
+ report_kvs[:Class] = :Rendering
58
+ report_kvs[:Module] = :Padrino
59
+ report_kvs[:File] = __FILE__
60
+ report_kvs[:LineNumber] = __LINE__
61
+ rescue StandardError => e
62
+ AppOpticsAPM.logger.debug "[appoptics_apm/padrino] #{e.message}"
63
+ AppOpticsAPM.logger.debug e.backtrace.join(', ')
64
+ end
65
+
66
+ AppOpticsAPM::API.profile(report_kvs[:template], report_kvs, false) do
67
+ render_without_appoptics(engine, data, options, locals, &block)
68
+ end
69
+ else
70
+ # Fall back to the raw tracing API so we can pass KVs
71
+ # back on exit (a limitation of the AppOpticsAPM::API.trace
72
+ # block method) This removes the need for an info
73
+ # event to send additonal KVs
74
+ AppOpticsAPM::API.log_entry(:render, {}, :render)
75
+
76
+ begin
77
+ render_without_appoptics(engine, data, options, locals, &block)
78
+ ensure
79
+ report_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:padrino][:collect_backtraces]
80
+ AppOpticsAPM::API.log_exit(:render, report_kvs)
81
+ end
82
+ end
83
+ else
84
+ render_without_appoptics(engine, data, options, locals, &block)
85
+ end
31
86
  end
32
87
  end
33
88
  end
34
89
  end
35
90
 
36
- if defined?(::Padrino)
91
+ if defined?(Padrino) && AppopticsAPM::Config[:padrino][:enabled]
37
92
  # This instrumentation is a superset of the Sinatra instrumentation similar
38
93
  # to how Padrino is a superset of Sinatra itself.
39
- ::AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting Padrino' if AppOpticsAPM::Config[:verbose]
40
-
41
- require 'appoptics_apm/frameworks/padrino/templates'
94
+ AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting Padrino' if AppOpticsAPM::Config[:verbose]
42
95
 
43
96
  Padrino.after_load do
44
- ::AppOpticsAPM.logger = ::Padrino.logger if ::Padrino.respond_to?(:logger)
45
- ::AppOpticsAPM::Inst.load_instrumentation
97
+ AppOpticsAPM.logger = Padrino.logger if Padrino.respond_to?(:logger)
98
+ AppOpticsAPM::Inst.load_instrumentation
46
99
 
47
- ::AppOpticsAPM::Util.send_include(::Padrino::Routing::InstanceMethods, ::AppOpticsAPM::PadrinoInst::Routing)
48
- if defined?(::Padrino::Rendering)
49
- ::AppOpticsAPM::Util.send_include(::Padrino::Rendering::InstanceMethods, ::AppOpticsAPM::PadrinoInst::Rendering)
100
+ AppOpticsAPM::Util.send_include(Padrino::Routing::InstanceMethods, AppOpticsAPM::PadrinoInst::Routing)
101
+ if defined?(Padrino::Rendering)
102
+ AppOpticsAPM::Util.send_include(Padrino::Rendering::InstanceMethods, AppOpticsAPM::PadrinoInst::Rendering)
50
103
  end
51
104
 
52
105
  # Report __Init after fork when in Heroku
@@ -88,9 +88,9 @@ if defined?(ActionController::Base) && AppOpticsAPM::Config[:action_controller][
88
88
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting actioncontroller' if AppOpticsAPM::Config[:verbose]
89
89
  require "appoptics_apm/frameworks/rails/inst/action_controller#{Rails::VERSION::MAJOR}"
90
90
  if Rails::VERSION::MAJOR >= 5
91
- ::ActionController::Base.send(:prepend, ::AppOpticsAPM::Inst::ActionController)
91
+ ActionController::Base.send(:prepend, ::AppOpticsAPM::Inst::ActionController)
92
92
  else
93
- ::AppOpticsAPM::Util.send_include(::ActionController::Base, AppOpticsAPM::Inst::ActionController)
93
+ AppOpticsAPM::Util.send_include(::ActionController::Base, AppOpticsAPM::Inst::ActionController)
94
94
  end
95
95
  end
96
96
 
@@ -98,7 +98,7 @@ end
98
98
  if defined?(ActionController::API) && AppOpticsAPM::Config[:action_controller_api][:enabled]
99
99
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting actioncontroller api' if AppOpticsAPM::Config[:verbose]
100
100
  require "appoptics_apm/frameworks/rails/inst/action_controller_api"
101
- ::ActionController::API.send(:prepend, ::AppOpticsAPM::Inst::ActionControllerAPI)
101
+ ActionController::API.send(:prepend, ::AppOpticsAPM::Inst::ActionControllerAPI)
102
102
  end
103
103
 
104
104
  # vim:set expandtab:tabstop=2
@@ -10,7 +10,7 @@ module AppOpticsAPM
10
10
  # to Rails v3
11
11
  #
12
12
  module ActionController
13
- include ::AppOpticsAPM::Inst::RailsBase
13
+ include AppOpticsAPM::Inst::RailsBase
14
14
 
15
15
  def self.included(base)
16
16
  base.class_eval do
@@ -21,12 +21,8 @@ module AppOpticsAPM
21
21
  end
22
22
 
23
23
  def process_with_appoptics(*args)
24
- kvs = {
25
- :Controller => self.class.name,
26
- :Action => self.action_name,
27
- }
28
- request.env['appoptics_apm.controller'] = kvs[:Controller]
29
- request.env['appoptics_apm.action'] = kvs[:Action]
24
+ request.env['appoptics_apm.controller'] = self.class.name
25
+ request.env['appoptics_apm.action'] = self.action_name
30
26
 
31
27
  trace('rails') do
32
28
  process_without_appoptics(*args)
@@ -49,6 +45,7 @@ module AppOpticsAPM
49
45
  process_action_without_appoptics(*args)
50
46
  rescue Exception
51
47
  kvs[:Status] = 500
48
+ kvs.delete(:Backtrace)
52
49
  AppOpticsAPM::API.log(nil, 'info', kvs)
53
50
  raise
54
51
  end
@@ -10,7 +10,7 @@ module AppOpticsAPM
10
10
  # to Rails v4
11
11
  #
12
12
  module ActionController
13
- include ::AppOpticsAPM::Inst::RailsBase
13
+ include AppOpticsAPM::Inst::RailsBase
14
14
 
15
15
  def self.included(base)
16
16
  base.class_eval do
@@ -10,7 +10,7 @@ module AppOpticsAPM
10
10
  # to Rails v5
11
11
  #
12
12
  module ActionController
13
- include ::AppOpticsAPM::Inst::RailsBase
13
+ include AppOpticsAPM::Inst::RailsBase
14
14
 
15
15
  def process_action(method_name, *args)
16
16
  kvs = {
@@ -10,7 +10,7 @@ module AppOpticsAPM
10
10
  # to Rails v5.
11
11
  #
12
12
  module ActionControllerAPI
13
- include ::AppOpticsAPM::Inst::RailsBase
13
+ include AppOpticsAPM::Inst::RailsBase
14
14
 
15
15
  def process_action(method_name, *args)
16
16
  kvs = {
@@ -38,7 +38,7 @@ module AppOpticsAPM
38
38
  #
39
39
  # render
40
40
  #
41
- # Our render wrapper that calls 'add_logging', which will log if we are tracing
41
+ # Our render wrapper that calls 'trace', which will log if we are tracing
42
42
  #
43
43
  def render(*args, &blk)
44
44
  trace('actionview') do
@@ -9,31 +9,31 @@ module AppOpticsAPM
9
9
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting activerecord mysqladapter' if AppOpticsAPM::Config[:verbose]
10
10
 
11
11
  # ActiveRecord 3.2 and higher
12
- if (::ActiveRecord::VERSION::MAJOR == 3 && ::ActiveRecord::VERSION::MINOR >= 2) ||
13
- ::ActiveRecord::VERSION::MAJOR == 4
12
+ if (ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR >= 2) ||
13
+ ActiveRecord::VERSION::MAJOR == 4
14
14
 
15
15
  # AbstractMysqlAdapter
16
- AppOpticsAPM::Util.send_include(::ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter,
17
- ::AppOpticsAPM::Inst::ConnectionAdapters::Utils)
18
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter, :execute)
16
+ AppOpticsAPM::Util.send_include(ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter,
17
+ AppOpticsAPM::Inst::ConnectionAdapters::Utils)
18
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter, :execute)
19
19
 
20
20
  # MysqlAdapter
21
- AppOpticsAPM::Util.send_include(::ActiveRecord::ConnectionAdapters::MysqlAdapter,
22
- ::AppOpticsAPM::Inst::ConnectionAdapters::Utils)
23
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :exec_query)
21
+ AppOpticsAPM::Util.send_include(ActiveRecord::ConnectionAdapters::MysqlAdapter,
22
+ AppOpticsAPM::Inst::ConnectionAdapters::Utils)
23
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::MysqlAdapter, :exec_query)
24
24
 
25
25
  else
26
26
  # ActiveRecord 3.1 and below
27
27
 
28
28
  # MysqlAdapter
29
- AppOpticsAPM::Util.send_include(::ActiveRecord::ConnectionAdapters::MysqlAdapter,
30
- ::AppOpticsAPM::Inst::ConnectionAdapters::Utils)
29
+ AppOpticsAPM::Util.send_include(ActiveRecord::ConnectionAdapters::MysqlAdapter,
30
+ AppOpticsAPM::Inst::ConnectionAdapters::Utils)
31
31
 
32
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :execute)
32
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::MysqlAdapter, :execute)
33
33
 
34
- if ::ActiveRecord::VERSION::MAJOR == 3 && ::ActiveRecord::VERSION::MINOR == 1
35
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :begin_db_transaction)
36
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::MysqlAdapter, :exec_delete)
34
+ if ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR == 1
35
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::MysqlAdapter, :begin_db_transaction)
36
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::MysqlAdapter, :exec_delete)
37
37
  end
38
38
  end
39
39
  end
@@ -8,19 +8,19 @@ module AppOpticsAPM
8
8
  def self.mysql2
9
9
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting activerecord mysql2adapter' if AppOpticsAPM::Config[:verbose]
10
10
 
11
- AppOpticsAPM::Util.send_include(::ActiveRecord::ConnectionAdapters::Mysql2Adapter,
12
- ::AppOpticsAPM::Inst::ConnectionAdapters::Utils)
11
+ AppOpticsAPM::Util.send_include(ActiveRecord::ConnectionAdapters::Mysql2Adapter,
12
+ AppOpticsAPM::Inst::ConnectionAdapters::Utils)
13
13
 
14
- if (::ActiveRecord::VERSION::MAJOR == 3 && ::ActiveRecord::VERSION::MINOR == 0) ||
15
- ::ActiveRecord::VERSION::MAJOR == 2
14
+ if (ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR == 0) ||
15
+ ActiveRecord::VERSION::MAJOR == 2
16
16
  # ActiveRecord 3.0 and prior
17
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::Mysql2Adapter, :execute)
17
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::Mysql2Adapter, :execute)
18
18
  else
19
19
  # ActiveRecord 3.1 and above
20
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_insert)
21
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_query)
22
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_update)
23
- AppOpticsAPM::Util.method_alias(::ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_delete)
20
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_insert)
21
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_query)
22
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_update)
23
+ AppOpticsAPM::Util.method_alias(ActiveRecord::ConnectionAdapters::Mysql2Adapter, :exec_delete)
24
24
  end
25
25
  end
26
26
  end