appoptics_apm 4.0.9 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a51f0eb046ed02b1a7a348d9fe94bd2032346610
4
- data.tar.gz: fe218ed8a4c12fa99467c38fe90263e16c25bfc9
3
+ metadata.gz: 90ed895e7d5acf3fb30fa85e0d5df0a3df0d3075
4
+ data.tar.gz: acf370948b698d06dfe982a322058d2bb2e227eb
5
5
  SHA512:
6
- metadata.gz: f26600d8d87550401be000a90d062a9eed4bbb317312be5383d04ab92f9fdc612f36da5d9d90d56a94cebaec41fd516b4aa2721a8b86676c1be1a88d89512343
7
- data.tar.gz: 86fa8448ef415190e497d79be22dd19623d54c9ca5865d3f01d0029e7847618894ca44f57c91eb874917cca0c9b42b84c9572823aff25654be8fc0a5c6923108
6
+ metadata.gz: 26c3753688ed6e8568b9c4ced5364505bde26cccfbf0b7ce53adb55ea5dd703de3427c7b68f96fe9845726d04c3049422c30feb686bd76791e5590467c70ca87
7
+ data.tar.gz: 8cdc020d21282e659a2fc8c82066f9975641f45a82735fc628e94e11dbf6cfc5ca0b35115e3ef3012be37daa32e05de733799d0d88f4470c03a925faeda62c00
data/.gitignore CHANGED
@@ -15,7 +15,6 @@ ext/oboe_metal/src/oboe.h
15
15
  ext/oboe_metal/src/oboe.hpp
16
16
  ext/oboe_metal/src/oboe_debug.h
17
17
  ext/oboe_metal/src/oboe_wrap.cxx
18
- ext/oboe_metal/src/VERSION
19
18
  log/
20
19
  .vagrant
21
20
  gemfiles/.bundle
@@ -9,7 +9,6 @@ rvm:
9
9
  - 2.5.0
10
10
  - 2.4.3
11
11
  - 2.3.6
12
- - 1.9.3 # soon not supported anymore
13
12
  # - jruby-9.0.5.0
14
13
 
15
14
  gemfile:
@@ -71,18 +70,6 @@ matrix:
71
70
  - rvm: 2.4.3
72
71
  gemfile: gemfiles/rails32.gemfile
73
72
 
74
- # Rails 5 requires Ruby >= 2.2
75
- - rvm: 1.9.3
76
- gemfile: gemfiles/rails50.gemfile
77
- - rvm: 1.9.3
78
- gemfile: gemfiles/rails51.gemfile
79
-
80
- # WebMock requires Ruby 2.0 or higher
81
- - rvm: 1.9.3
82
- gemfile: gemfiles/instrumentation_mocked.gemfile
83
- - rvm: 1.9.3
84
- gemfile: gemfiles/instrumentation_mocked_oldgems.gemfile
85
-
86
73
  # - rvm: jruby-9.0.5.0
87
74
  # gemfile: gemfiles/delayed_job.gemfile
88
75
 
@@ -9,6 +9,7 @@ RUN apt-get update \
9
9
  git-core \
10
10
  libpcre3-dev \
11
11
  libreadline-dev \
12
+ libsasl2-dev \
12
13
  libssl-dev \
13
14
  openjdk-8-jdk \
14
15
  zlib1g-dev \
@@ -32,7 +33,6 @@ RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
32
33
 
33
34
  # install rubies to build our gem against
34
35
  RUN . ~/.profile \
35
- && rbenv install 1.9.3-p551 \
36
36
  && rbenv install 2.3.6 \
37
37
  && rbenv install 2.4.3 \
38
38
  && rbenv install 2.5.0
data/Gemfile CHANGED
@@ -7,11 +7,7 @@ group :development, :test do
7
7
  gem 'minitest-debugger', :require => false
8
8
  gem 'rack-test'
9
9
  gem 'puma'
10
- if RUBY_VERSION < '1.9.3'
11
- gem 'bson', '<= 1.12.3'
12
- else
13
- gem 'bson'
14
- end
10
+ gem 'bson'
15
11
  gem 'webmock' if RUBY_VERSION >= '2.0.0'
16
12
  gem 'mocha'
17
13
  gem 'rubocop', require: false
@@ -24,12 +20,8 @@ group :development do
24
20
  gem 'debugger', :platform => :mri_19
25
21
  gem 'byebug', :platforms => [:mri_20, :mri_21, :mri_22, :mri_23, :mri_24]
26
22
  # gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
27
- if RUBY_VERSION >= '2.0.0'
28
- gem 'pry'
29
- gem 'pry-byebug', :platforms => [:mri_20, :mri_21, :mri_22, :mri_23, :mri_24]
30
- else
31
- gem 'pry', '~> 0.10.0'
32
- end
23
+ gem 'pry'
24
+ gem 'pry-byebug', :platforms => [:mri_20, :mri_21, :mri_22, :mri_23, :mri_24]
33
25
  end
34
26
 
35
27
  if defined?(JRUBY_VERSION)
data/Rakefile CHANGED
@@ -73,7 +73,7 @@ task :fetch_ext_deps do
73
73
  end
74
74
 
75
75
  # The c-lib version is different from the gem version
76
- oboe_version = ENV['OBOE_VERSION'] || '2.0.9'
76
+ oboe_version = ENV['OBOE_VERSION'] || 'latest'
77
77
  oboe_src_dir = "https://s3-us-west-2.amazonaws.com/rc-files-t2/c-lib/#{oboe_version}"
78
78
  ext_src_dir = File.expand_path('ext/oboe_metal/src')
79
79
 
@@ -29,23 +29,17 @@ Gem::Specification.new do |s|
29
29
  s.extensions = ['ext/oboe_metal/extconf.rb'] unless defined?(JRUBY_VERSION)
30
30
 
31
31
  s.add_runtime_dependency('json', '>= 0')
32
- s.add_runtime_dependency('no_proxy_fix', '~> 0.1.2', '>= 0.1.2')
33
32
 
34
33
  # Development dependencies used in gem development & testing
35
34
  s.add_development_dependency('rake', '>= 0.9.0')
36
35
 
37
36
  unless defined?(JRUBY_VERSION)
38
- case RUBY_VERSION
39
- when /^1\.9/
40
- s.add_development_dependency('pry-debugger', '>= 0.2.3')
41
- when /^2\./
42
- s.add_development_dependency('byebug', '>= 8.0.0')
43
- s.add_development_dependency('pry', '>= 0.10.0')
44
- s.add_development_dependency('pry-byebug', '>= 3.0.0')
45
- end
37
+ s.add_development_dependency('byebug', '>= 8.0.0')
38
+ s.add_development_dependency('pry', '>= 0.10.0')
39
+ s.add_development_dependency('pry-byebug', '>= 3.0.0')
46
40
  else
47
41
  s.add_development_dependency('pry', '>= 0.10.0')
48
42
  end
49
43
 
50
- s.required_ruby_version = '>= 1.9.3'
44
+ s.required_ruby_version = '>= 2.0.0'
51
45
  end
@@ -15,7 +15,7 @@ AppOpticsAPM::Config[:tracing_mode] = 'always'
15
15
  # and doesn't have to be called manually
16
16
  #
17
17
  # Load library instrumentation to auto-capture stuff we know about...
18
- # e.g. ActiveRecord, Cassandra, Dalli, Redis, memcache, mongo
18
+ # e.g. ActiveRecord, Cassandra, Dalli, Redis, Memcache, Mongo
19
19
  # AppOpticsAPM::Ruby.load
20
20
 
21
21
  # Some KVs to report to the dashboard
@@ -4,9 +4,7 @@
4
4
  require 'mkmf'
5
5
  require 'rbconfig'
6
6
  require 'open-uri'
7
- require 'no_proxy_fix'
8
-
9
- # require 'digest'
7
+ require 'digest'
10
8
 
11
9
  ext_dir = File.expand_path(File.dirname(__FILE__))
12
10
 
@@ -20,7 +18,7 @@ ao_include = File.join(ext_dir, 'src')
20
18
 
21
19
  # Download the appropriate liboboe from S3(via rake for testing) or files.appoptics.com (production)
22
20
  version = File.read(File.join(ao_include, 'VERSION')).chomp
23
- if ENV['APPOPTICS_FROM_S3'].to_s.downcase == 'true'
21
+ if ENV['FROM_S3']
24
22
  ao_path = File.join('https://s3-us-west-2.amazonaws.com/rc-files-t2/c-lib/', version)
25
23
  puts "Fetching c-lib from S3"
26
24
  else
@@ -80,7 +78,6 @@ if success
80
78
 
81
79
  dir_config('oboe', 'src', 'lib')
82
80
 
83
- # create Makefile
84
81
  if jruby || ENV.key?('APPOPTICS_URL')
85
82
  # Build the noop extension under JRuby and Heroku.
86
83
  # The oboe-heroku gem builds it's own c extension which links to
@@ -0,0 +1 @@
1
+ 2.0.9
@@ -9,6 +9,7 @@ module AppOpticsAPM
9
9
  module API
10
10
  ##
11
11
  # Utility methods for the Memcache instrumentation
12
+ # currently used by dalli and memcached
12
13
  module Memcache #:nodoc:
13
14
  MEMCACHE_OPS = %w(add append cas decr decrement delete fetch get incr increment prepend replace set)
14
15
 
@@ -85,11 +85,7 @@ module AppOpticsAPM
85
85
  # like we did something to nicely play the no-op part.
86
86
  return true unless AppOpticsAPM.loaded
87
87
 
88
- if RUBY_VERSION < '1.9.3'
89
- AppOpticsAPM.logger.warn '[appoptics_apm/error] profile_method: Use the legacy method profiling for Ruby versions before 1.9.3'
90
- return false
91
-
92
- elsif !klass.is_a?(Module)
88
+ if !klass.is_a?(Module)
93
89
  AppOpticsAPM.logger.warn "[appoptics_apm/error] profile_method: Not sure what to do with #{klass}. Send a class or module."
94
90
  return false
95
91
 
@@ -193,25 +193,21 @@ module AppOpticsAPMBase
193
193
  env = ENV['RACK_ENV'] || ENV['RAILS_ENV']
194
194
  return unless %w(development, test).include? env
195
195
 
196
- if RUBY_VERSION > '1.9.3'
197
- require 'pry'
198
- require 'pry-byebug'
199
-
200
- if defined?(PryByebug)
201
- Pry.commands.alias_command 'c', 'continue'
202
- Pry.commands.alias_command 's', 'step'
203
- Pry.commands.alias_command 'n', 'next'
204
- Pry.commands.alias_command 'f', 'finish'
205
-
206
- Pry::Commands.command(/^$/, 'repeat last command') do
207
- _pry_.run_command Pry.history.to_a.last
208
- end
209
- end
196
+ require 'pry'
197
+ require 'pry-byebug'
210
198
 
211
- byebug
212
- else
213
- require 'ruby-debug'; debugger
199
+ if defined?(PryByebug)
200
+ Pry.commands.alias_command 'c', 'continue'
201
+ Pry.commands.alias_command 's', 'step'
202
+ Pry.commands.alias_command 'n', 'next'
203
+ Pry.commands.alias_command 'f', 'finish'
204
+
205
+ Pry::Commands.command(/^$/, 'repeat last command') do
206
+ _pry_.run_command Pry.history.to_a.last
207
+ end
214
208
  end
209
+
210
+ byebug
215
211
  end
216
212
 
217
213
  ##
@@ -15,8 +15,7 @@ module AppOpticsAPM
15
15
  :active_record, :bunnyclient, :bunnyconsumer, :cassandra, :curb,
16
16
  :dalli, :delayed_jobclient, :delayed_jobworker,
17
17
  :em_http_request, :excon, :faraday, :grape,
18
- :httpclient, :nethttp, :memcached,
19
- :memcache, :mongo, :moped, :rack, :redis,
18
+ :httpclient, :nethttp, :memcached, :mongo, :moped, :rack, :redis,
20
19
  :resqueclient, :resqueworker, :rest_client,
21
20
  :sequel, :sidekiqclient, :sidekiqworker, :typhoeus]
22
21
 
@@ -66,7 +65,6 @@ module AppOpticsAPM
66
65
  AppOpticsAPM::Config[:faraday][:collect_backtraces] = false
67
66
  AppOpticsAPM::Config[:grape][:collect_backtraces] = true
68
67
  AppOpticsAPM::Config[:httpclient][:collect_backtraces] = true
69
- AppOpticsAPM::Config[:memcache][:collect_backtraces] = false
70
68
  AppOpticsAPM::Config[:memcached][:collect_backtraces] = false
71
69
  AppOpticsAPM::Config[:mongo][:collect_backtraces] = true
72
70
  AppOpticsAPM::Config[:moped][:collect_backtraces] = true
@@ -321,7 +321,7 @@ module AppOpticsAPM
321
321
  end
322
322
  end
323
323
 
324
- if AppOpticsAPM::Config[:curb][:enabled] && defined?(::Curl) && RUBY_VERSION > '1.8.7'
324
+ if AppOpticsAPM::Config[:curb][:enabled] && defined?(::Curl)
325
325
  ::AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting curb' if AppOpticsAPM::Config[:verbose]
326
326
  ::AppOpticsAPM::Util.send_include(::Curl::Easy, ::AppOpticsAPM::Inst::CurlEasy)
327
327
  ::AppOpticsAPM::Util.send_extend(::Curl::Multi, ::AppOpticsAPM::Inst::CurlMultiCM)
@@ -12,7 +12,8 @@ module AppOpticsAPM
12
12
  if ::Dalli::Client.private_method_defined? :perform
13
13
  alias perform_without_appoptics perform
14
14
  alias perform perform_with_appoptics
15
- else AppOpticsAPM.logger.warn '[appoptics_apm/loading] Couldn\'t properly instrument Memcache (Dalli). Partial traces may occur.'
15
+ else
16
+ AppOpticsAPM.logger.warn '[appoptics_apm/loading] Couldn\'t properly instrument Memcache (Dalli). Partial traces may occur.'
16
17
  end
17
18
 
18
19
  if ::Dalli::Client.method_defined? :get_multi
@@ -76,30 +76,28 @@ module AppOpticsAPM
76
76
  end
77
77
  end
78
78
 
79
- if RUBY_VERSION >= '1.9'
80
- if defined?(::EventMachine::HttpConnection) && defined?(::EventMachine::HttpClient) && AppOpticsAPM::Config[:em_http_request][:enabled]
81
- AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting em-http-request' if AppOpticsAPM::Config[:verbose]
82
-
83
- class ::EventMachine::HttpConnection
84
- include AppOpticsAPM::Inst::EventMachine::HttpConnection
85
-
86
- if method_defined?(:setup_request)
87
- class_eval 'alias :setup_request_without_appoptics :setup_request'
88
- class_eval 'alias :setup_request :setup_request_with_appoptics'
89
- else
90
- AppOpticsAPM.logger.warn '[appoptics_apm/loading] Couldn\'t properly instrument em-http-request (:setup_request). Partial traces may occur.'
91
- end
79
+ if defined?(::EventMachine::HttpConnection) && defined?(::EventMachine::HttpClient) && AppOpticsAPM::Config[:em_http_request][:enabled]
80
+ AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting em-http-request' if AppOpticsAPM::Config[:verbose]
81
+
82
+ class ::EventMachine::HttpConnection
83
+ include AppOpticsAPM::Inst::EventMachine::HttpConnection
84
+
85
+ if method_defined?(:setup_request)
86
+ class_eval 'alias :setup_request_without_appoptics :setup_request'
87
+ class_eval 'alias :setup_request :setup_request_with_appoptics'
88
+ else
89
+ AppOpticsAPM.logger.warn '[appoptics_apm/loading] Couldn\'t properly instrument em-http-request (:setup_request). Partial traces may occur.'
92
90
  end
91
+ end
93
92
 
94
- class ::EventMachine::HttpClient
95
- include AppOpticsAPM::Inst::EventMachine::HttpClient
93
+ class ::EventMachine::HttpClient
94
+ include AppOpticsAPM::Inst::EventMachine::HttpClient
96
95
 
97
- if method_defined?(:parse_response_header)
98
- class_eval 'alias :parse_response_header_without_appoptics :parse_response_header'
99
- class_eval 'alias :parse_response_header :parse_response_header_with_appoptics'
100
- else
101
- AppOpticsAPM.logger.warn '[appoptics_apm/loading] Couldn\'t properly instrument em-http-request (:parse_response_header). Partial traces may occur.'
102
- end
96
+ if method_defined?(:parse_response_header)
97
+ class_eval 'alias :parse_response_header_without_appoptics :parse_response_header'
98
+ class_eval 'alias :parse_response_header :parse_response_header_with_appoptics'
99
+ else
100
+ AppOpticsAPM.logger.warn '[appoptics_apm/loading] Couldn\'t properly instrument em-http-request (:parse_response_header). Partial traces may occur.'
103
101
  end
104
102
  end
105
103
  end
@@ -20,15 +20,7 @@ module AppOpticsAPM
20
20
  # Conditionally log query args
21
21
  if AppOpticsAPM::Config[:excon][:log_args] && @data[:query]
22
22
  if @data[:query].is_a?(Hash)
23
- if RUBY_VERSION >= '1.9.2'
24
- kvs[:ServiceArg] = "#{@data[:path]}?#{URI.encode_www_form(@data[:query])}"
25
- else
26
- # An imperfect solution for the lack of URI.encode_www_form for Ruby versions before
27
- # 1.9.2. We manually create a query string for reporting purposes only.
28
- query_arg = ""
29
- @data[:query].each_pair { |k,v| query_arg += "#{k}=#{v}?"; }
30
- kvs[:ServiceArg] = "#{@data[:path]}?#{query_arg.chop}"
31
- end
23
+ kvs[:ServiceArg] = "#{@data[:path]}?#{URI.encode_www_form(@data[:query])}"
32
24
  else
33
25
  kvs[:ServiceArg] = "#{@data[:path]}?#{@data[:query]}"
34
26
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  require 'json'
5
5
 
6
- if RUBY_VERSION >= '1.9' && AppOpticsAPM::Config[:mongo][:enabled]
6
+ if AppOpticsAPM::Config[:mongo][:enabled]
7
7
  if defined?(::Mongo) && (Gem.loaded_specs['mongo'].version.to_s >= '2.0.0')
8
8
  ::AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting mongo' if AppOpticsAPM::Config[:verbose]
9
9
 
@@ -138,7 +138,7 @@ module AppOpticsAPM
138
138
  end
139
139
  end
140
140
 
141
- if defined?(::Resque) && RUBY_VERSION >= '1.9.3'
141
+ if defined?(::Resque)
142
142
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting resque' if AppOpticsAPM::Config[:verbose]
143
143
 
144
144
  ::AppOpticsAPM::Util.send_include(::Resque, ::AppOpticsAPM::Inst::ResqueClient) if AppOpticsAPM::Config[:resqueclient][:enabled]
@@ -43,7 +43,7 @@ module AppOpticsAPM
43
43
  end
44
44
  end
45
45
 
46
- if defined?(::Sidekiq) && RUBY_VERSION >= '2.0' && AppOpticsAPM::Config[:sidekiqclient][:enabled]
46
+ if defined?(::Sidekiq) && AppOpticsAPM::Config[:sidekiqclient][:enabled]
47
47
  ::Sidekiq.configure_client do |config|
48
48
  config.client_middleware do |chain|
49
49
  ::AppOpticsAPM.logger.info '[appoptics_apm/loading] Adding Sidekiq client middleware' if AppOpticsAPM::Config[:verbose]
@@ -55,7 +55,7 @@ module AppOpticsAPM
55
55
  end
56
56
  end
57
57
 
58
- if defined?(::Sidekiq) && RUBY_VERSION >= '2.0' && AppOpticsAPM::Config[:sidekiqworker][:enabled]
58
+ if defined?(::Sidekiq) && AppOpticsAPM::Config[:sidekiqworker][:enabled]
59
59
  ::AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting sidekiq' if AppOpticsAPM::Config[:verbose]
60
60
 
61
61
  ::Sidekiq.configure_server do |config|
@@ -29,20 +29,13 @@ module AppOpticsAPMMethodProfiling
29
29
  def profile_method_real(method_name, profile_name, store_args = false, store_return = false, *_)
30
30
  begin
31
31
  # this only gets file and line where profiling is turned on, presumably
32
- # right after the function definition. ruby 1.9 and 2.0 has nice introspection (Method.source_location)
33
- # but its appears no such luck for ruby 1.8
32
+ # right after the function definition.
34
33
  file = ''
35
34
  line = ''
36
- if RUBY_VERSION >= '1.9'
37
- info = instance_method(method_name).source_location
38
- unless info.nil?
39
- file = info[0].to_s
40
- line = info[1].to_s
41
- end
42
- else
43
- info = Kernel.caller[0].split(':')
44
- file = info.first.to_s
45
- line = info.last.to_s
35
+ info = instance_method(method_name).source_location
36
+ unless info.nil?
37
+ file = info[0].to_s
38
+ line = info[1].to_s
46
39
  end
47
40
 
48
41
  # Safety: Make sure there are no quotes or double quotes to break the class_eval
@@ -105,9 +105,6 @@ module AppOpticsAPM
105
105
  #
106
106
  def static_asset?(path)
107
107
  path =~ Regexp.new(AppOpticsAPM::Config[:dnt_regexp], AppOpticsAPM::Config[:dnt_opts])
108
- rescue => e
109
- AppOpticsAPM.logger.warn "[AppOpticsAPM/debug] Could not apply Regex.new to path. #{e.inspect}"
110
- false
111
108
  end
112
109
 
113
110
  ##
@@ -209,7 +206,7 @@ module AppOpticsAPM
209
206
  platform_info['Ruby.Excon.Version'] = "Excon-#{::Excon::VERSION}" if defined?(::Excon::VERSION)
210
207
  platform_info['Ruby.Faraday.Version'] = "Faraday-#{::Faraday::VERSION}" if defined?(::Faraday::VERSION)
211
208
  platform_info['Ruby.HTTPClient.Version'] = "HTTPClient-#{::HTTPClient::VERSION}" if defined?(::HTTPClient::VERSION)
212
- platform_info['Ruby.MemCache.Version'] = "MemCache-#{::MemCache::VERSION}" if defined?(::MemCache::VERSION)
209
+ platform_info['Ruby.Memcached.Version'] = "Memcached-#{::Memcached::VERSION}" if defined?(::Memcached::VERSION)
213
210
  platform_info['Ruby.Moped.Version'] = "Moped-#{::Moped::VERSION}" if defined?(::Moped::VERSION)
214
211
  platform_info['Ruby.Redis.Version'] = "Redis-#{::Redis::VERSION}" if defined?(::Redis::VERSION)
215
212
  platform_info['Ruby.Resque.Version'] = "Resque-#{::Resque::VERSION}" if defined?(::Resque::VERSION)
@@ -7,8 +7,8 @@ module AppOpticsAPM
7
7
  # appoptics_apm.gemspec during gem build process
8
8
  module Version
9
9
  MAJOR = 4
10
- MINOR = 0
11
- PATCH = 9
10
+ MINOR = 1
11
+ PATCH = 0
12
12
 
13
13
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
14
14
  end
@@ -165,7 +165,6 @@ if defined?(AppOpticsAPM::Config)
165
165
  # AppOpticsAPM::Config[:faraday][:enabled] = true
166
166
  # AppOpticsAPM::Config[:grape][:enabled] = true
167
167
  # AppOpticsAPM::Config[:httpclient][:enabled] = true
168
- # AppOpticsAPM::Config[:memcache][:enabled] = true
169
168
  # AppOpticsAPM::Config[:memcached][:enabled] = true
170
169
  # AppOpticsAPM::Config[:mongo][:enabled] = true
171
170
  # AppOpticsAPM::Config[:moped][:enabled] = true
@@ -204,7 +203,6 @@ if defined?(AppOpticsAPM::Config)
204
203
  # AppOpticsAPM::Config[:faraday][:collect_backtraces] = false
205
204
  # AppOpticsAPM::Config[:grape][:collect_backtraces] = false
206
205
  # AppOpticsAPM::Config[:httpclient][:collect_backtraces] = false
207
- # AppOpticsAPM::Config[:memcache][:collect_backtraces] = false
208
206
  # AppOpticsAPM::Config[:memcached][:collect_backtraces] = false
209
207
  # AppOpticsAPM::Config[:mongo][:collect_backtraces] = true
210
208
  # AppOpticsAPM::Config[:moped][:collect_backtraces] = true
@@ -31,7 +31,6 @@ travis['matrix']['exclude'].each do |h|
31
31
  end
32
32
 
33
33
  matrix.each do |args|
34
- args['rvm'] = '1.9.3-p551' if args['rvm'] =~ /1.9.3/
35
34
  `docker-compose run --rm --service-ports ruby_appoptics_apm /code/ruby-appoptics_apm/ruby_setup.sh #{args['rvm']} #{args['gemfile']} #{args['env']}`
36
35
  puts "docker-compose run --rm --service-ports ruby_appoptics_apm /code/ruby-appoptics_apm/ruby_setup.sh #{args['rvm']} #{args['gemfile']} #{args['env']}"
37
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appoptics_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.9
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maia Engeli
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-05-05 00:00:00.000000000 Z
13
+ date: 2018-04-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -26,26 +26,6 @@ dependencies:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0'
29
- - !ruby/object:Gem::Dependency
30
- name: no_proxy_fix
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: 0.1.2
36
- - - ">="
37
- - !ruby/object:Gem::Version
38
- version: 0.1.2
39
- type: :runtime
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- requirements:
43
- - - "~>"
44
- - !ruby/object:Gem::Version
45
- version: 0.1.2
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: 0.1.2
49
29
  - !ruby/object:Gem::Dependency
50
30
  name: rake
51
31
  requirement: !ruby/object:Gem::Requirement
@@ -192,7 +172,6 @@ files:
192
172
  - lib/appoptics_apm/inst/faraday.rb
193
173
  - lib/appoptics_apm/inst/http.rb
194
174
  - lib/appoptics_apm/inst/httpclient.rb
195
- - lib/appoptics_apm/inst/memcache.rb
196
175
  - lib/appoptics_apm/inst/memcached.rb
197
176
  - lib/appoptics_apm/inst/mongo.rb
198
177
  - lib/appoptics_apm/inst/mongo2.rb
@@ -242,7 +221,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
242
221
  requirements:
243
222
  - - ">="
244
223
  - !ruby/object:Gem::Version
245
- version: 1.9.3
224
+ version: 2.0.0
246
225
  required_rubygems_version: !ruby/object:Gem::Requirement
247
226
  requirements:
248
227
  - - ">="
@@ -1,102 +0,0 @@
1
- # Copyright (c) 2016 SolarWinds, LLC.
2
- # All rights reserved.
3
-
4
- module AppOpticsAPM
5
- module Inst
6
- module MemCache
7
- include AppOpticsAPM::API::Memcache
8
-
9
- def self.included(cls)
10
- AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting memcache' if AppOpticsAPM::Config[:verbose]
11
-
12
- cls.class_eval do
13
- MEMCACHE_OPS.reject { |m| !method_defined?(m) }.each do |m|
14
-
15
- define_method("#{m}_with_appoptics") do |*args|
16
- report_kvs = { :KVOp => m }
17
- report_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:memcache][:collect_backtraces]
18
-
19
- if AppOpticsAPM.tracing?
20
- AppOpticsAPM::API.trace(:memcache, report_kvs) do
21
- send("#{m}_without_appoptics", *args)
22
- end
23
- else
24
- send("#{m}_without_appoptics", *args)
25
- end
26
- end
27
-
28
- class_eval "alias #{m}_without_appoptics #{m}"
29
- class_eval "alias #{m} #{m}_with_appoptics"
30
- end
31
- end
32
-
33
- [:request_setup, :cache_get, :get_multi].each do |m|
34
- if ::MemCache.method_defined? :request_setup
35
- cls.class_eval "alias #{m}_without_appoptics #{m}"
36
- cls.class_eval "alias #{m} #{m}_with_appoptics"
37
- elsif AppOpticsAPM::Config[:verbose]
38
- AppOpticsAPM.logger.warn "[appoptics_apm/loading] Couldn't properly instrument Memcache: #{m}"
39
- end
40
- end
41
- end
42
-
43
- def get_multi_with_appoptics(*args)
44
- return get_multi_without_appoptics(args) unless AppOpticsAPM.tracing?
45
-
46
- info_kvs = {}
47
-
48
- begin
49
- info_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:memcache][:collect_backtraces]
50
-
51
- if args.last.is_a?(Hash) || args.last.nil?
52
- info_kvs[:KVKeyCount] = args.flatten.length - 1
53
- else
54
- info_kvs[:KVKeyCount] = args.flatten.length
55
- end
56
- rescue StandardError => e
57
- AppOpticsAPM.logger.debug "[appoptics_apm/debug] Error collecting info keys: #{e.message}"
58
- AppOpticsAPM.logger.debug e.backtrace
59
- end
60
-
61
- AppOpticsAPM::API.trace(:memcache, { :KVOp => :get_multi }, :get_multi) do
62
- values = get_multi_without_appoptics(args)
63
-
64
- info_kvs[:KVHitCount] = values.length
65
- AppOpticsAPM::API.log(:memcache, :info, info_kvs)
66
-
67
- values
68
- end
69
- end
70
-
71
- def request_setup_with_appoptics(*args)
72
- if AppOpticsAPM.tracing? && !AppOpticsAPM.tracing_layer_op?(:get_multi)
73
- server, cache_key = request_setup_without_appoptics(*args)
74
-
75
- info_kvs = { :KVKey => cache_key, :RemoteHost => server.host }
76
- info_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:memcache][:collect_backtraces]
77
- AppOpticsAPM::API.log(:memcache, :info, info_kvs)
78
-
79
- [server, cache_key]
80
- else
81
- request_setup_without_appoptics(*args)
82
- end
83
- end
84
-
85
- def cache_get_with_appoptics(server, cache_key)
86
- result = cache_get_without_appoptics(server, cache_key)
87
-
88
- info_kvs = { :KVHit => memcache_hit?(result) }
89
- info_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:memcache][:collect_backtraces]
90
- AppOpticsAPM::API.log(:memcache, :info, info_kvs)
91
-
92
- result
93
- end
94
- end # module MemCache
95
- end # module Inst
96
- end # module AppOpticsAPM
97
-
98
- if defined?(::MemCache) && AppOpticsAPM::Config[:memcache][:enabled]
99
- ::MemCache.class_eval do
100
- include AppOpticsAPM::Inst::MemCache
101
- end
102
- end