appoptics_apm 4.4.0 → 4.4.1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -11,7 +11,7 @@ module Oboe
11
11
  #
12
12
  module API
13
13
  include AppOpticsAPM::API
14
- extend ::AppOpticsAPM::ThreadLocal
14
+ extend AppOpticsAPM::ThreadLocal
15
15
  thread_local :deprecation_notified
16
16
 
17
17
  def self.method_missing(sym, *args, &blk)
@@ -31,7 +31,7 @@ module Oboe
31
31
  # Support for Oboe::Config calls
32
32
  #
33
33
  module Config
34
- extend ::AppOpticsAPM::ThreadLocal
34
+ extend AppOpticsAPM::ThreadLocal
35
35
  thread_local :deprecation_notified
36
36
 
37
37
  def self.method_missing(sym, *args)
@@ -50,7 +50,7 @@ module Oboe
50
50
  # Support for legacy Oboe::Ruby.load calls
51
51
  #
52
52
  module Ruby
53
- extend ::AppOpticsAPM::ThreadLocal
53
+ extend AppOpticsAPM::ThreadLocal
54
54
  thread_local :deprecation_notified
55
55
 
56
56
  def self.method_missing(sym, *args)
@@ -31,7 +31,7 @@ if defined?(AppOpticsAPM::Config)
31
31
  #
32
32
  # It sets the log level and takes the following values:
33
33
  # -1 disabled, 0 fatal, 1 error, 2 warning, 3 info (the default), 4 debug low, 5 debug medium, 6 debug high.
34
- # Values < -1 or > 6 will set the log level to the default (info).
34
+ # Values out of range (< -1 or > 6) are ignored and the log level is set to the default (info).
35
35
  #
36
36
  AppOpticsAPM::Config[:debug_level] = 3
37
37
  #
@@ -75,7 +75,7 @@ if defined?(AppOpticsAPM::Config)
75
75
  # collect and report query literals to AppOpticsAPM.
76
76
  #
77
77
  AppOpticsAPM::Config[:sanitize_sql] = true
78
- AppOpticsAPM::Config[:sanitize_sql_regexp] = '(\'[\s\S][^\']*\'|\d*\.\d+|\d+|NULL)'
78
+ AppOpticsAPM::Config[:sanitize_sql_regexp] = '(\'[^\']*\'|\d*\.\d+|\d+|NULL)'
79
79
  AppOpticsAPM::Config[:sanitize_sql_opts] = Regexp::IGNORECASE
80
80
 
81
81
  #
@@ -183,6 +183,7 @@ if defined?(AppOpticsAPM::Config)
183
183
  AppOpticsAPM::Config[:mongo][:enabled] = true
184
184
  AppOpticsAPM::Config[:moped][:enabled] = true
185
185
  AppOpticsAPM::Config[:nethttp][:enabled] = true
186
+ AppOpticsAPM::Config[:padrino][:enabled] = true
186
187
  AppOpticsAPM::Config[:rack][:enabled] = true
187
188
  AppOpticsAPM::Config[:redis][:enabled] = true
188
189
  AppOpticsAPM::Config[:resqueclient][:enabled] = true
@@ -191,14 +192,18 @@ if defined?(AppOpticsAPM::Config)
191
192
  AppOpticsAPM::Config[:sequel][:enabled] = true
192
193
  AppOpticsAPM::Config[:sidekiqclient][:enabled] = true
193
194
  AppOpticsAPM::Config[:sidekiqworker][:enabled] = true
195
+ AppOpticsAPM::Config[:sinatra][:enabled] = true
194
196
  AppOpticsAPM::Config[:typhoeus][:enabled] = true
195
197
  #
196
198
 
197
199
  #
198
200
  # Argument logging
199
201
  #
200
- # for http requests
201
- # Set to true to enable argument logging
202
+ #
203
+ # For http requests:
204
+ # By default the query string parameters are included in the URLs reported.
205
+ # Set :log_args to false and instrumentation will stop collecting
206
+ # and reporting query arguments from URLs.
202
207
  #
203
208
  AppOpticsAPM::Config[:bunnyconsumer][:log_args] = true
204
209
  AppOpticsAPM::Config[:curb][:log_args] = true
@@ -243,6 +248,7 @@ if defined?(AppOpticsAPM::Config)
243
248
  AppOpticsAPM::Config[:mongo][:collect_backtraces] = true
244
249
  AppOpticsAPM::Config[:moped][:collect_backtraces] = true
245
250
  AppOpticsAPM::Config[:nethttp][:collect_backtraces] = true
251
+ AppOpticsAPM::Config[:padrino][:collect_backtraces] = true
246
252
  AppOpticsAPM::Config[:rack][:collect_backtraces] = true
247
253
  AppOpticsAPM::Config[:redis][:collect_backtraces] = false
248
254
  AppOpticsAPM::Config[:resqueclient][:collect_backtraces] = true
@@ -251,6 +257,7 @@ if defined?(AppOpticsAPM::Config)
251
257
  AppOpticsAPM::Config[:sequel][:collect_backtraces] = true
252
258
  AppOpticsAPM::Config[:sidekiqclient][:collect_backtraces] = false
253
259
  AppOpticsAPM::Config[:sidekiqworker][:collect_backtraces] = false
260
+ AppOpticsAPM::Config[:sinatra][:collect_backtraces] = true
254
261
  AppOpticsAPM::Config[:typhoeus][:collect_backtraces] = false
255
262
 
256
263
  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.4.0
4
+ version: 4.4.1
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-11-14 00:00:00.000000000 Z
13
+ date: 2018-12-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -169,7 +169,6 @@ files:
169
169
  - lib/appoptics_apm/config.rb
170
170
  - lib/appoptics_apm/frameworks/grape.rb
171
171
  - lib/appoptics_apm/frameworks/padrino.rb
172
- - lib/appoptics_apm/frameworks/padrino/templates.rb
173
172
  - lib/appoptics_apm/frameworks/rails.rb
174
173
  - lib/appoptics_apm/frameworks/rails/inst/action_controller.rb
175
174
  - lib/appoptics_apm/frameworks/rails/inst/action_controller3.rb
@@ -185,7 +184,6 @@ files:
185
184
  - lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils.rb
186
185
  - lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils5x.rb
187
186
  - lib/appoptics_apm/frameworks/sinatra.rb
188
- - lib/appoptics_apm/frameworks/sinatra/templates.rb
189
187
  - lib/appoptics_apm/inst/bunny-client.rb
190
188
  - lib/appoptics_apm/inst/bunny-consumer.rb
191
189
  - lib/appoptics_apm/inst/curb.rb
@@ -1,58 +0,0 @@
1
- # Copyright (c) 2016 SolarWinds, LLC.
2
- # All rights reserved.
3
-
4
- module AppOpticsAPM
5
- module PadrinoInst
6
- module Rendering
7
- def self.included(klass)
8
- ::AppOpticsAPM::Util.method_alias(klass, :render, ::Padrino::Rendering)
9
- end
10
-
11
- def render_with_appoptics(engine, data = nil, options = {}, locals = {}, &block)
12
- if AppOpticsAPM.tracing?
13
- report_kvs = {}
14
-
15
- if data
16
- report_kvs[:engine] = engine
17
- report_kvs[:template] = data
18
- else
19
- report_kvs[:template] = engine
20
- end
21
-
22
- if AppOpticsAPM.tracing_layer_op?(:render)
23
- # For recursive calls to :render (for sub-partials and layouts),
24
- # use method profiling.
25
- begin
26
- report_kvs[:FunctionName] = :render
27
- report_kvs[:Class] = :Rendering
28
- report_kvs[:Module] = :Padrino
29
- report_kvs[:File] = __FILE__
30
- report_kvs[:LineNumber] = __LINE__
31
- rescue StandardError => e
32
- ::AppOpticsAPM.logger.debug "[appoptics_apm/padrino] #{e.message}"
33
- ::AppOpticsAPM.logger.debug e.backtrace.join(', ')
34
- end
35
-
36
- AppOpticsAPM::API.profile(report_kvs[:template], report_kvs, false) do
37
- render_without_appoptics(engine, data, options, locals, &block)
38
- end
39
- else
40
- # Fall back to the raw tracing API so we can pass KVs
41
- # back on exit (a limitation of the AppOpticsAPM::API.trace
42
- # block method) This removes the need for an info
43
- # event to send additonal KVs
44
- ::AppOpticsAPM::API.log_entry(:render, {}, :render)
45
-
46
- begin
47
- render_without_appoptics(engine, data, options, locals, &block)
48
- ensure
49
- ::AppOpticsAPM::API.log_exit(:render, report_kvs)
50
- end
51
- end
52
- else
53
- render_without_appoptics(engine, data, options, locals, &block)
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,56 +0,0 @@
1
- # Copyright (c) 2016 SolarWinds, LLC.
2
- # All rights reserved.
3
-
4
- module AppOpticsAPM
5
- module Sinatra
6
- module Templates
7
- def self.included(klass)
8
- ::AppOpticsAPM::Util.method_alias(klass, :render, ::Sinatra::Templates)
9
- end
10
-
11
- def render_with_appoptics(engine, data, options = {}, locals = {}, &block)
12
- if AppOpticsAPM.tracing?
13
- report_kvs = {}
14
-
15
- report_kvs[:engine] = engine
16
- report_kvs[:template] = data
17
-
18
- if AppOpticsAPM.tracing_layer_op?(:render)
19
- # For recursive calls to :render (for sub-partials and layouts),
20
- # use method profiling.
21
- begin
22
- name = data
23
- report_kvs[:FunctionName] = :render
24
- report_kvs[:Class] = :Templates
25
- report_kvs[:Module] = :'Sinatra::Templates'
26
- report_kvs[:File] = __FILE__
27
- report_kvs[:LineNumber] = __LINE__
28
- rescue StandardError => e
29
- ::AppOpticsAPM.logger.debug e.message
30
- ::AppOpticsAPM.logger.debug e.backtrace.join(', ')
31
- end
32
-
33
- AppOpticsAPM::API.profile(name, report_kvs, false) do
34
- render_without_appoptics(engine, data, options, locals, &block)
35
- end
36
-
37
- else
38
- # Fall back to the raw tracing API so we can pass KVs
39
- # back on exit (a limitation of the AppOpticsAPM::API.trace
40
- # block method) This removes the need for an info
41
- # event to send additonal KVs
42
- ::AppOpticsAPM::API.log_entry(:render, {}, :render)
43
-
44
- begin
45
- render_without_appoptics(engine, data, options, locals, &block)
46
- ensure
47
- ::AppOpticsAPM::API.log_exit(:render, report_kvs, :render)
48
- end
49
- end
50
- else
51
- render_without_appoptics(engine, data, options, locals, &block)
52
- end
53
- end
54
- end
55
- end
56
- end