newrelic_rpm 6.15.0 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -22
  3. data/README.md +2 -2
  4. data/lib/new_relic/agent.rb +0 -6
  5. data/lib/new_relic/agent/autostart.rb +1 -2
  6. data/lib/new_relic/agent/configuration/default_source.rb +270 -104
  7. data/lib/new_relic/agent/configuration/manager.rb +2 -2
  8. data/lib/new_relic/agent/datastores/redis.rb +0 -4
  9. data/lib/new_relic/agent/distributed_tracing.rb +0 -66
  10. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +0 -16
  11. data/lib/new_relic/agent/instrumentation/bunny.rb +10 -152
  12. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +45 -0
  13. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +152 -0
  14. data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +35 -0
  15. data/lib/new_relic/agent/instrumentation/curb.rb +9 -241
  16. data/lib/new_relic/agent/instrumentation/curb/chain.rb +93 -0
  17. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +222 -0
  18. data/lib/new_relic/agent/instrumentation/curb/prepend.rb +63 -0
  19. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +38 -0
  20. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +53 -0
  21. data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +34 -0
  22. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +8 -50
  23. data/lib/new_relic/agent/instrumentation/excon.rb +2 -1
  24. data/lib/new_relic/agent/instrumentation/grape.rb +13 -113
  25. data/lib/new_relic/agent/instrumentation/grape/chain.rb +25 -0
  26. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +100 -0
  27. data/lib/new_relic/agent/instrumentation/grape/prepend.rb +17 -0
  28. data/lib/new_relic/agent/instrumentation/httpclient.rb +8 -30
  29. data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +25 -0
  30. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +38 -0
  31. data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +17 -0
  32. data/lib/new_relic/agent/instrumentation/httprb.rb +29 -0
  33. data/lib/new_relic/agent/instrumentation/httprb/chain.rb +22 -0
  34. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +30 -0
  35. data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +15 -0
  36. data/lib/new_relic/agent/instrumentation/memcache.rb +54 -69
  37. data/lib/new_relic/agent/instrumentation/memcache/chain.rb +16 -0
  38. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +38 -121
  39. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +56 -0
  40. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +88 -0
  41. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +88 -0
  42. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +2 -0
  43. data/lib/new_relic/agent/instrumentation/mongo.rb +7 -0
  44. data/lib/new_relic/agent/instrumentation/net_http.rb +39 -0
  45. data/lib/new_relic/agent/instrumentation/net_http/chain.rb +25 -0
  46. data/lib/new_relic/agent/instrumentation/{net_prepend.rb → net_http/instrumentation.rb} +3 -3
  47. data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +21 -0
  48. data/lib/new_relic/agent/instrumentation/padrino.rb +18 -53
  49. data/lib/new_relic/agent/instrumentation/padrino/chain.rb +34 -0
  50. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +27 -0
  51. data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +20 -0
  52. data/lib/new_relic/agent/instrumentation/rack.rb +29 -139
  53. data/lib/new_relic/agent/instrumentation/rack/chain.rb +57 -0
  54. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +32 -0
  55. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +73 -0
  56. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +36 -0
  57. data/lib/new_relic/agent/instrumentation/rake.rb +13 -154
  58. data/lib/new_relic/agent/instrumentation/rake/chain.rb +25 -0
  59. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +144 -0
  60. data/lib/new_relic/agent/instrumentation/rake/prepend.rb +14 -0
  61. data/lib/new_relic/agent/instrumentation/redis.rb +10 -109
  62. data/lib/new_relic/agent/instrumentation/redis/chain.rb +34 -0
  63. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +65 -0
  64. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +24 -0
  65. data/lib/new_relic/agent/instrumentation/resque.rb +8 -28
  66. data/lib/new_relic/agent/instrumentation/resque/chain.rb +22 -0
  67. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +33 -0
  68. data/lib/new_relic/agent/instrumentation/resque/prepend.rb +16 -0
  69. data/lib/new_relic/agent/instrumentation/sinatra.rb +20 -158
  70. data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +55 -0
  71. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +29 -34
  72. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +118 -0
  73. data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +33 -0
  74. data/lib/new_relic/agent/instrumentation/typhoeus.rb +10 -89
  75. data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +22 -0
  76. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +82 -0
  77. data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +14 -0
  78. data/lib/new_relic/agent/new_relic_service.rb +3 -12
  79. data/lib/new_relic/agent/sql_sampler.rb +1 -1
  80. data/lib/new_relic/agent/transaction.rb +1 -4
  81. data/lib/new_relic/control/frameworks/rails.rb +11 -9
  82. data/lib/new_relic/control/instance_methods.rb +1 -0
  83. data/lib/new_relic/dependency_detection.rb +116 -10
  84. data/lib/new_relic/noticed_error.rb +1 -5
  85. data/lib/new_relic/supportability_helper.rb +1 -2
  86. data/lib/new_relic/version.rb +2 -2
  87. data/newrelic_rpm.gemspec +1 -1
  88. metadata +53 -8
  89. data/cert/cacert.pem +0 -1177
  90. data/lib/new_relic/agent/instrumentation/http.rb +0 -49
  91. data/lib/new_relic/agent/instrumentation/net.rb +0 -70
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59fdb006789ae2f1cb776c15084ad1bc7f854abf000573fd11dd2c14882b4273
4
- data.tar.gz: 7b8d00cdaa547832fb34c1f76a697b694ff28c9a74be046545e7d3b0866d97e6
3
+ metadata.gz: 01dec51b68827b0fa9cd58d7882d9ddb29e7de80bcaa55cda486c30ff8529da9
4
+ data.tar.gz: 358e73adb1e93b0e12bc7f415df728a4a8670bed0ac4eb36b81df545cc1c4651
5
5
  SHA512:
6
- metadata.gz: 5cadb8ca1d02feadc30a85871d1e8cd6c24064bfc3b1bed98680573bb4c29075e07447f4290dfc360d9607c1ff3a5433d0c36be9eaeae515c725547424ee92cc
7
- data.tar.gz: c3901a54a577cdab2159ee6a93bf4bd6acf82d6629d4d4ba99c4565d7155efc7d653387f9fcee8cd246d19cecfe662b60bd63f05cbf19d38194e0b6d9d6ce0b9
6
+ metadata.gz: b06d4efcd172c4517ac7be9c7271833cef6709ff18040ceaa81240bf4a3f8ce66f9c609cc78dfffbadc698cc761a2c7e7b439c72d69b024808c10d4b9873180f
7
+ data.tar.gz: 6f665d24f019d4e5c55aef8851a48f3fe7ff9735e16c41ba97cc27664fdfc9f66cdbcfd698aebe2072b12c7124431e00f4c08bdb4b15a57350d886ff98745f08
data/CHANGELOG.md CHANGED
@@ -1,9 +1,83 @@
1
1
  # New Relic Ruby Agent Release Notes #
2
2
 
3
+ ## v7.0.0
4
+
5
+ * **Ruby Agent 6.x to 7.x Migration Guide Available**
6
+
7
+ Please see our [Ruby Agent 6.x to 7.x migration guide](https://docs.newrelic.com/docs/agents/ruby-agent/getting-started/migration-7x-guide/) for helpful strategies and tips for migrating from earlier versions of the Ruby agent to 7.0.0. We cover new configuration settings, diagnosiing and installing SSL CA certificates and deprecated items and their replacements in this guide.
8
+
9
+ * **Ruby 2.0 and 2.1 Dropped**
10
+
11
+ Support for Ruby 2.0 and 2.1 dropped with this release. No code changes that would prevent the agent from continuing to
12
+ work with these releases are known. However, Rubies 2.0 and 2.1 are no longer included in our test matrices and are not supported
13
+ for 7.0.0 and onward.
14
+
15
+ * **Implemented prepend auto-instrumentation strategies for most Ruby gems/libraries**
16
+
17
+ This release brings the auto-instrumentation strategies for most gems into the modern era for Ruby by providing both
18
+ prepend and method-chaining (a.k.a. method-aliasing) strategies for auto instrumenting. Prepend, which has been available since
19
+ Ruby 2.0 is now the default strategy employed in auto-instrumenting. It is known that some external gems lead to Stack Level
20
+ too Deep exceptions when prepend and method-chaining are mixed. In such known cases, auto-instrumenting strategy will fall back
21
+ to method-chaining automatically.
22
+
23
+ This release also deprecates many overlapping and inconsistently named configuration settings in favor of being able to control
24
+ behavior of instrumentation per library with one setting that can be one of auto (the default), disabled, prepend, or chain.
25
+
26
+ Please see the above-referenced migration guide for further details.
27
+
28
+ * **Removed SSL cert bundle**
29
+
30
+ The agent will no longer ship this bundle and will rely on system certs.
31
+
32
+ * **Removed deprecated config options**
33
+
34
+ The following config options were previously deprecated and are no longer available
35
+ - `disable_active_record_4`
36
+ - `disable_active_record_5`
37
+ - `autostart.blacklisted_constants`
38
+ - `autostart.blacklisted_executables`
39
+ - `autostart.blacklisted_rake_tasks`
40
+ - `strip_exception_messages.whitelist`
41
+
42
+ * **Removed deprecated attribute**
43
+
44
+ The attribute `httpResponseCode` was previously deprecated and replaced with `http.statusCode`. This deprecated attribute has now been removed.
45
+
46
+ * **Removed deprecated option in notice_error**
47
+
48
+ Previously, the `:trace_only` option to NewRelic::Agent.notice_error was deprecated and replaced with `:expected`. This deprecated option has been removed.
49
+
50
+ * **Removed deprecated api methods**
51
+
52
+ Previously the api methods `create_distributed_trace_payload` and `accept_distributed_trace_payload` were deprecated. These have now been removed. Instead, please see `insert_distributed_trace_headers` and `accept_distributed_trace_headers`, respectively.
53
+
54
+ * **Bugfix: Prevent browser monitoring middleware from installing to middleware multiple times**
55
+
56
+ In rare cases on jRuby, the BrowserMonitoring middleware could attempt to install itself
57
+ multiple times at start up. This bug fix addresses that by using a mutex to introduce
58
+ thread safety to the operation. Sintra in particular can have this race condition because
59
+ its middleware stack is not installed until the first request is received.
60
+
61
+ * **Skip constructing Time for transactions**
62
+
63
+ Thanks to @viraptor, we are no longer constructing an unused Time object with every call to starting a new Transaction.
64
+
65
+ * **Bugfix: nil Middlewares injection now prevented and gracefully handled in Sinatra**
66
+
67
+ Previously, the agent could potentially inject multiples of an instrumented middleware if Sinatra received many
68
+ requests at once during start up and initialization due to Sinatra's ability to delay full start up as long as possible.
69
+ This has now been fixed and the Ruby agent correctly instruments only once as well as gracefully handles nil middleware
70
+ classes in general.
71
+
72
+ * **Bugfix: Ensure transaction nesting max depth is always consistent with length of segments**
73
+
74
+ Thanks to @warp for noticing and fixing the scenario where Transaction nesting_max_depth can get out of sync
75
+ with segments length resulting in an exception when attempting to nest the initial segment which does not exist.
76
+
3
77
  ## v6.15.0
4
78
 
5
79
  * **Official Ruby 3.0 support**
6
-
80
+
7
81
  The ruby agent has been verified to run on ruby 3.0.0
8
82
 
9
83
  * **Added support for Rails 6.1**
@@ -17,7 +91,7 @@
17
91
 
18
92
  * **Bugfix: No longer overwrites sidekiq trace data**
19
93
 
20
- Distributed traing data is now added to the job trace info rather than overwriting the existing data.
94
+ Distributed tracing data is now added to the job trace info rather than overwriting the existing data.
21
95
 
22
96
  * **Bugfix: Fixes cases where errors are reported for spans with no other attributes**
23
97
 
@@ -26,7 +100,7 @@
26
100
  This is now fixed and errors are now correctly recorded against such span events.
27
101
 
28
102
  * **Bugfix: `DistributedTracing.insert_distributed_trace_headers` Supportability metric now recorded**
29
-
103
+
30
104
  Previously, API calls to `DistributedTracing.insert_distributed_trace_headers` would lead to an exception
31
105
  about the missing supportability metric rather than flowing through the API implementation as intended.
32
106
  This would potentially lead to broken distributed traces as the trace headers were not inserted on the API call.
@@ -36,25 +110,25 @@
36
110
  * **Bugfix: child completions after parent completes sometimes throws exception attempting to access nil parent**
37
111
 
38
112
  In scenarios where the child segment/span is completing after the parent in jRuby, the parent may have already
39
- been freed and no longer accessible. This would lead to attempting to calll `descendant_complete` on a Nil
113
+ been freed and no longer accessible. This would lead to an attempt to call `descendant_complete` on a Nil
40
114
  object. This is fixed to protect against calling the `descendant_complete` in such cases.
41
-
115
+
42
116
  * **Feature: implements `force_install_exit_handler` config flag**
43
-
44
- The `force_install_exit_handler` configuration flag allows an application to instruct the agent to install it's
45
- graceful shutdown exit handler, which will send any locally cached data to the New Relic collector prior to the
46
- application shutting down. This useful for when the primary framework has an embedded Sinatra application that
117
+
118
+ The `force_install_exit_handler` configuration flag allows an application to instruct the agent to install its
119
+ graceful shutdown exit handler, which will send any locally cached data to the New Relic collector prior to the
120
+ application shutting down. This is useful for when the primary framework has an embedded Sinatra application that
47
121
  is otherwise detected and skips installing the exit hook for graceful shutdowns.
48
122
 
49
123
  * **Default prepend_net_instrumentation to false**
50
124
 
51
- Previously, `prepend_net_instrumentation` defaulted to true. However, many gems are still using monkey patching on Net::HTTP, which causes compatibility issues with using prepend. Defaulting this to false minimizes instances of
125
+ Previously, `prepend_net_instrumentation` defaulted to true. However, many gems are still using monkey patching on Net::HTTP, which causes compatibility issues with using prepend. Defaulting this to false minimizes instances of
52
126
  unexpected compatibilty issues.
53
-
127
+
54
128
  ## v6.14.0
55
129
 
56
130
  * **Bugfix: Method tracers no longer cloning arguments**
57
-
131
+
58
132
  Previously, when calling add_method_tracer with certain combination of arguments, it would lead to the wrapped method's arguments being cloned rather than passed to the original method for manipulation as intended. This has been fixed.
59
133
 
60
134
  * **Bugfix: Delayed Job instrumentation fixed for Ruby 2.7+**
@@ -63,22 +137,22 @@
63
137
  Delayed Job's library. The led to Delayed job not auto-instrumenting correctly and has been fixed.
64
138
 
65
139
  * **Bugfix: Ruby 2.7+ methods sometimes erroneously attributed compiler warnings to the Agent's `add_method_tracer`**
66
-
140
+
67
141
  The specific edge cases presented are now fixed by this release of the agent. There are still some known corner-cases
68
- that will be resolved with upcoming changes in next major release of the Agent. If you encounter a problem with adding
142
+ that will be resolved with upcoming changes in next major release of the Agent. If you encounter a problem with adding
69
143
  method tracers and compiler warnings raised, please continue to submit small repoducible examples.
70
144
 
71
145
  * **Bugfix: Ruby 2.7+ fix for keyword arguments on Rack apps is unnecessary and removed**
72
146
 
73
- A common fix for positional and keyword arguments for method parameters was implemented where it was not needed and
74
- led to RackApps getting extra arguments converted to keyword arguments rather than Hash when it expected one. This
147
+ A common fix for positional and keyword arguments for method parameters was implemented where it was not needed and
148
+ led to RackApps getting extra arguments converted to keyword arguments rather than Hash when it expected one. This
75
149
  Ruby 2.7+ change was reverted so that Rack apps behave correctly for Ruby >= 2.7.
76
150
 
77
151
  * **Feature: captures incoming and outgoing request headers for distributed tracing**
78
152
 
79
- HTTP request headers will be logged when log level is at least debug level. Similarly, request headers
153
+ HTTP request headers will be logged when log level is at least debug level. Similarly, request headers
80
154
  for exchanges with New Relic servers are now audit logged when audit logging is enabled.
81
-
155
+
82
156
  * **Bugfix: `newrelic.yml.erb` added to the configuration search path**
83
157
 
84
158
  Previously, when a user specifies a `newrelic.yml.erb` and no `newrelic.yml` file, the agent fails to find
@@ -88,7 +162,7 @@
88
162
  the `.yml` file is used instead of the `.erb` file. Search directories and order of traversal remain unchanged.
89
163
 
90
164
  * **Bugfix: dependency detection of Redis now works without raising an exception**
91
-
165
+
92
166
  Previously, when detecting if Redis was available to instrument, the dependency detection would fail with an Exception raised
93
167
  (with side effect of not attempting to instrument Redis). This is now fixed with a better dependency check that resolves falsly without raising an `Exception`.
94
168
 
@@ -99,12 +173,12 @@
99
173
 
100
174
  * **Memory Sampler updated to recognize macOS Big Sur**
101
175
 
102
- Previously, the agent was unable to recognize the platform macOS Big Sur in the memory sampler, resulting in an error being logged. The memory sampler is now able to recognize Big Sur.
176
+ Previously, the agent was unable to recognize the platform macOS Big Sur in the memory sampler, resulting in an error being logged. The memory sampler is now able to recognize Big Sur.
103
177
 
104
178
  * **Prepend implementation of Net::HTTP instrumentation available**
105
-
179
+
106
180
  There is now a config option (`prepend_net_instrumentation`) that will enable the agent to use prepend while instrumenting Net::HTTP. This option is set to true by default.
107
-
181
+
108
182
  ## v6.13.1
109
183
 
110
184
  * **Bugfix: obfuscating URLs to external services no longer modifying original URI**
data/README.md CHANGED
@@ -47,7 +47,7 @@ and then require the New Relic Ruby agent in your Ruby start-up sequence:
47
47
  require 'newrelic_rpm'
48
48
  ```
49
49
 
50
- #### Oher Environments
50
+ #### Other Environments
51
51
 
52
52
  Assuming you have installed the agent per above, you may also need to tell the Ruby agent to start for some frameworks and non-framework environments. To do so, add the following to your Ruby start-up sequence start the agent:
53
53
 
@@ -133,4 +133,4 @@ Thank you, and may your application scale to infinity plus one.
133
133
 
134
134
  Lew Cirne, Founder and CEO
135
135
 
136
- New Relic, Inc.
136
+ New Relic, Inc.
@@ -283,12 +283,6 @@ module NewRelic
283
283
  def notice_error(exception, options={})
284
284
  record_api_supportability_metric(:notice_error)
285
285
 
286
- if options.has_key?(:trace_only)
287
- NewRelic::Agent.logger.log_once(:warn, :trace_only_deprecated,
288
- 'Passing the :trace_only option to NewRelic::Agent.notice_error is deprecated. Please use :expected instead.')
289
- options[:expected] = options.delete(:trace_only)
290
- end
291
-
292
286
  Transaction.notice_error(exception, options)
293
287
  nil # don't return a noticed error datastructure. it can only hurt.
294
288
  end
@@ -32,8 +32,7 @@ module NewRelic
32
32
  COMMA = ",".freeze
33
33
 
34
34
  def denylisted_constants?
35
- # For backwards compatibility until :'autostart_blacklisted_constants' config option is removed
36
- constants = NewRelic::Agent.config[:'autostart.denylisted_constants'] << COMMA << NewRelic::Agent.config[:'autostart.blacklisted_constants']
35
+ constants = NewRelic::Agent.config[:'autostart.denylisted_constants']
37
36
 
38
37
  denylisted?(constants) do |name|
39
38
  constant_is_defined?(name)
@@ -15,6 +15,35 @@ module NewRelic
15
15
  end
16
16
  end
17
17
 
18
+ # Combines potentially two properties into one.
19
+ # Given the example:
20
+ # :disable_net_http and :prepend_net_instrumentation
21
+ # if :disable_net_http is true, then returned value is "disabled"
22
+ # if :prepend_net_instrumentation is false, then returned value is "chain"
23
+ # otherwise, "auto" is returned.
24
+ #
25
+ # Intent is:
26
+ # - if user sets disable_xxx property, then don't instrument
27
+ # - if user set prepend to `false` then we use method_alias chaining
28
+ # - auto, when returned means, try to use prepend unless conflicting gems discovered
29
+ #
30
+ def self.instrumentation_value_of(disable_key, prepend_key=nil)
31
+ Proc.new do
32
+ if NewRelic::Agent.config[disable_key]
33
+ "disabled"
34
+ elsif prepend_key && !NewRelic::Agent.config[prepend_key]
35
+ "chain"
36
+ else
37
+ "auto"
38
+ end
39
+ end
40
+ end
41
+
42
+ def self.deprecated_description new_setting, description
43
+ link_ref = new_setting.to_s.gsub(".", "-")
44
+ %{<a href="##{link_ref}"><code>#{new_setting}</code>}
45
+ end
46
+
18
47
  class Boolean
19
48
  def self.===(o)
20
49
  TrueClass === o or FalseClass === o
@@ -101,7 +130,8 @@ module NewRelic
101
130
  when 4..6
102
131
  :rails_notifications
103
132
  else
104
- ::NewRelic::Agent.logger.error "Detected unsupported Rails version #{Rails::VERSION::STRING}"
133
+ ::NewRelic::Agent.logger.warn "Detected untested Rails version #{Rails::VERSION::STRING}"
134
+ :rails_notifications
105
135
  end
106
136
  when defined?(::Sinatra) && defined?(::Sinatra::Base) then :sinatra
107
137
  when defined?(::NewRelic::IA) then :external
@@ -446,17 +476,6 @@ module NewRelic
446
476
  :allowed_from_server => false,
447
477
  :description => 'Autodetected application framework used to enable framework-specific functionality.'
448
478
  },
449
- :'autostart.blacklisted_constants' => {
450
- :default => 'Rails::Console',
451
- :public => true,
452
- :type => String,
453
- :allowed_from_server => false,
454
- :description => 'Deprecated. ' \
455
- 'For agent versions 6.8.0 or higher, ' \
456
- 'use <a href="#autostart-denylisted_constants"><code>' \
457
- 'autostart.denylisted_constants' \
458
- '</code></a> instead.'
459
- },
460
479
  :'autostart.denylisted_constants' => {
461
480
  :default => 'Rails::Console',
462
481
  :public => true,
@@ -464,55 +483,36 @@ module NewRelic
464
483
  :allowed_from_server => false,
465
484
  :description => 'Specify a list of constants that should prevent the agent from starting automatically. Separate individual constants with a comma <code>,</code>. For example, <code>Rails::Console,UninstrumentedBackgroundJob</code>.'
466
485
  },
467
- :'autostart.blacklisted_executables' => {
468
- :default => 'irb,rspec',
469
- :public => true,
470
- :type => String,
471
- :allowed_from_server => false,
472
- :description => 'Deprecated. ' \
473
- 'For agent versions 6.8.0 or higher, ' \
474
- 'use <a href="#autostart-denylisted_executables"><code>' \
475
- 'autostart.denylisted_executables' \
476
- '</code></a> instead.'
477
- },
478
486
  :'autostart.denylisted_executables' => {
479
- :default => value_of(:'autostart.blacklisted_executables'),
487
+ :default => 'irb,rspec',
480
488
  :public => true,
481
489
  :type => String,
482
490
  :allowed_from_server => false,
483
491
  :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, <code>rake,my_ruby_script.rb</code>.'
484
492
  },
485
- :'autostart.blacklisted_rake_tasks' => {
486
- :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
487
- :public => true,
488
- :type => String,
489
- :allowed_from_server => false,
490
- :description => 'Deprecated. ' \
491
- 'For agent versions 6.8.0 or higher, ' \
492
- 'use <a href="#autostart-denylisted_rake_tasks"><code>' \
493
- 'autostart.denylisted_rake_tasks' \
494
- '</code></a> instead.'
495
- },
496
493
  :'autostart.denylisted_rake_tasks' => {
497
- :default => value_of(:'autostart.blacklisted_rake_tasks'),
494
+ :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
498
495
  :public => true,
499
496
  :type => String,
500
497
  :allowed_from_server => false,
501
498
  :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, <code>assets:precompile,db:migrate</code>.'
502
499
  },
500
+
503
501
  :disable_rake => {
504
502
  :default => false,
505
503
  :public => true,
506
504
  :type => Boolean,
507
505
  :allowed_from_server => false,
508
- :description => 'If <code>true</code>, disables Rake instrumentation.'
506
+ :deprecated => true,
507
+ :description => deprecated_description(:'instrumentation.rake', 'If <code>true</code>, disables Rake instrumentation.')
509
508
  },
510
509
  :disable_rake_instrumentation => {
511
510
  :default => false,
512
511
  :public => false,
513
512
  :type => Boolean,
514
513
  :allowed_from_server => false,
515
- :description => 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`'
514
+ :deprecated => true,
515
+ :description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
516
516
  },
517
517
  :'rake.tasks' => {
518
518
  :default => [],
@@ -544,19 +544,6 @@ module NewRelic
544
544
  :allowed_from_server => false,
545
545
  :description => 'If true, the agent strips messages from all exceptions except those in the <a href="#strip_exception_messages-allowlist">allowlist</a>. Enabled automatically in <a href="https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security">high security mode</a>.'
546
546
  },
547
- :'strip_exception_messages.whitelist' => {
548
- :default => '',
549
- :public => true,
550
- :type => String,
551
- :deprecated => true,
552
- :allowed_from_server => false,
553
- :transform => DefaultSource.method(:convert_to_constant_list),
554
- :description => 'Deprecated. ' \
555
- 'For agent versions 6.8.0 or higher, ' \
556
- 'use <a href="#strip_exception_messages.allowed_classes"><code>' \
557
- 'strip_exception_messages.allowed_classes' \
558
- '</code></a> instead.'
559
- },
560
547
  :'strip_exception_messages.allowed_classes' => {
561
548
  :default => '',
562
549
  :public => true,
@@ -776,8 +763,9 @@ module NewRelic
776
763
  :default => false,
777
764
  :public => true,
778
765
  :type => Boolean,
766
+ :deprecated => true,
779
767
  :allowed_from_server => false,
780
- :description => 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/resque-instrumentation">Resque instrumentation</a>.'
768
+ :description => deprecated_description(:'instrumentation.resque', 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/resque-instrumentation">Resque instrumentation</a>.')
781
769
  },
782
770
  :disable_sidekiq => {
783
771
  :default => false,
@@ -789,16 +777,18 @@ module NewRelic
789
777
  :disable_dj => {
790
778
  :default => false,
791
779
  :public => true,
780
+ :deprecated => true,
792
781
  :type => Boolean,
793
782
  :allowed_from_server => false,
794
- :description => 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/delayedjob">Delayed::Job instrumentation</a>.'
783
+ :description => deprecated_description(:'instrumentation.delayed_job', 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/delayedjob">Delayed::Job instrumentation</a>.'
784
+ )
795
785
  },
796
786
  :disable_sinatra => {
797
787
  :default => false,
798
788
  :public => true,
799
789
  :type => Boolean,
800
790
  :allowed_from_server => false,
801
- :description => 'If <code>true</code> , disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/sinatra-support">Sinatra instrumentation</a>.'
791
+ :description => deprecated_description(:'instrumentation.sinatra', 'If <code>true</code> , disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/sinatra-support">Sinatra instrumentation</a>.' )
802
792
  },
803
793
  :disable_sinatra_auto_middleware => {
804
794
  :default => false,
@@ -843,11 +833,170 @@ module NewRelic
843
833
  :description => 'If <code>true</code>, uses Module.prepend rather than alias_method for ActiveRecord instrumentation.'
844
834
  },
845
835
  :prepend_net_instrumentation => {
846
- :default => false,
847
- :public => true,
836
+ :default => true,
837
+ :public => false,
848
838
  :type => Boolean,
849
839
  :allowed_from_server => false,
850
- :description => 'If <code>true</code>, uses Module.prepend rather than alias_method for Net::HTTP instrumentation.'
840
+ :deprecated => true,
841
+ :description => deprecated_description(:'instrumentation.net_http',
842
+ 'If <code>true</code>, uses Module.prepend rather than alias_method for Net::HTTP instrumentation.'
843
+ )
844
+ },
845
+ :'instrumentation.net_http' => {
846
+ :default => instrumentation_value_of(:disable_net_http, :prepend_net_instrumentation),
847
+ :public => true,
848
+ :type => String,
849
+ :dynamic_name => true,
850
+ :allowed_from_server => false,
851
+ :description => "Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled]."
852
+ },
853
+ :'instrumentation.typhoeus' => {
854
+ :default => instrumentation_value_of(:disable_typhoeus),
855
+ :public => true,
856
+ :type => String,
857
+ :dynamic_name => true,
858
+ :allowed_from_server => false,
859
+ :description => "Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled]."
860
+ },
861
+ :'instrumentation.bunny' => {
862
+ :default => instrumentation_value_of(:disable_bunny),
863
+ :public => true,
864
+ :type => String,
865
+ :dynamic_name => true,
866
+ :allowed_from_server => false,
867
+ :description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
868
+ },
869
+ :'instrumentation.httprb' => {
870
+ :default => instrumentation_value_of(:disable_httprb),
871
+ :public => true,
872
+ :type => String,
873
+ :dynamic_name => true,
874
+ :allowed_from_server => false,
875
+ :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
876
+ },
877
+ :'instrumentation.resque' => {
878
+ :default => instrumentation_value_of(:disable_resque),
879
+ :public => true,
880
+ :type => String,
881
+ :dynamic_name => true,
882
+ :allowed_from_server => false,
883
+ :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
884
+ },
885
+ :'instrumentation.redis' => {
886
+ :default => instrumentation_value_of(:disable_redis),
887
+ :public => true,
888
+ :type => String,
889
+ :dynamic_name => true,
890
+ :allowed_from_server => false,
891
+ :description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
892
+ },
893
+ :'instrumentation.rake' => {
894
+ :default => instrumentation_value_of(:disable_rake),
895
+ :public => :true,
896
+ :type => String,
897
+ :dynamic_name => true,
898
+ :allowed_from_server => false,
899
+ :description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
900
+ },
901
+ :'instrumentation.mongo' => {
902
+ :default => instrumentation_value_of(:disable_mongo),
903
+ :public => :true,
904
+ :type => String,
905
+ :dynamic_name => true,
906
+ :allowed_from_server => false,
907
+ :description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
908
+ },
909
+ :'instrumentation.delayed_job' => {
910
+ :default => instrumentation_value_of(:disable_dj),
911
+ :public => true,
912
+ :type => String,
913
+ :dynamic_name => true,
914
+ :allowed_from_server => false,
915
+ :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
916
+ },
917
+ :'instrumentation.httpclient' => {
918
+ :default => instrumentation_value_of(:disable_httpclient),
919
+ :public => true,
920
+ :type => String,
921
+ :dynamic_name => true,
922
+ :allowed_from_server => false,
923
+ :description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
924
+ },
925
+ :'instrumentation.curb' => {
926
+ :default => instrumentation_value_of(:disable_curb),
927
+ :public => true,
928
+ :type => String,
929
+ :dynamic_name => true,
930
+ :allowed_from_server => false,
931
+ :description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
932
+ },
933
+ :'instrumentation.sinatra' => {
934
+ :default => instrumentation_value_of(:disable_sinatra),
935
+ :public => :true,
936
+ :type => String,
937
+ :dynamic_name => true,
938
+ :allowed_from_server => false,
939
+ :description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
940
+ },
941
+ :'instrumentation.rack' => {
942
+ :default => instrumentation_value_of(:disable_rack),
943
+ :public => true,
944
+ :type => String,
945
+ :dynamic_name => true,
946
+ :allowed_from_server => false,
947
+ :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
948
+ "<code>to_app</code> method in Rack::Builder to find gems to instrument during " \
949
+ "application startup. May be one of [auto|prepend|chain|disabled]."
950
+ },
951
+ :'instrumentation.rack_urlmap' => {
952
+ :default => instrumentation_value_of(:disable_rack_urlmap),
953
+ :public => true,
954
+ :type => String,
955
+ :dynamic_name => true,
956
+ :allowed_from_server => false,
957
+ :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
958
+ },
959
+ :'instrumentation.puma_rack' => {
960
+ :default => instrumentation_value_of(:disable_puma_rack), # TODO: change to value_of(:'instrumentation.rack') when we remove :disable_puma_rack in 8.0)
961
+ :public => true,
962
+ :type => String,
963
+ :dynamic_name => true,
964
+ :allowed_from_server => false,
965
+ :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
966
+ "<code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during " \
967
+ "application startup. May be one of [auto|prepend|chain|disabled]."
968
+ },
969
+ :'instrumentation.puma_rack_urlmap' => {
970
+ :default => instrumentation_value_of(:disable_puma_rack_urlmap), # TODO: change to value_of(:'instrumentation.rack_urlmap') when we remove :disable_puma_rack_urlmap in 8.0)
971
+ :public => true,
972
+ :type => String,
973
+ :dynamic_name => true,
974
+ :allowed_from_server => false,
975
+ :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
976
+ },
977
+ :'instrumentation.memcached' => {
978
+ :default => instrumentation_value_of(:disable_memcached),
979
+ :public => true,
980
+ :type => String,
981
+ :dynamic_name => true,
982
+ :allowed_from_server => false,
983
+ :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
984
+ },
985
+ :'instrumentation.memcache_client' => {
986
+ :default => instrumentation_value_of(:disable_memcache_client),
987
+ :public => true,
988
+ :type => String,
989
+ :dynamic_name => true,
990
+ :allowed_from_server => false,
991
+ :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
992
+ },
993
+ :'instrumentation.memcache' => {
994
+ :default => instrumentation_value_of(:disable_dalli),
995
+ :public => true,
996
+ :type => String,
997
+ :dynamic_name => true,
998
+ :allowed_from_server => false,
999
+ :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
851
1000
  },
852
1001
  :disable_data_mapper => {
853
1002
  :default => false,
@@ -884,36 +1033,41 @@ module NewRelic
884
1033
  :default => value_of(:disable_memcache_instrumentation),
885
1034
  :public => true,
886
1035
  :type => Boolean,
1036
+ :deprecated => true,
887
1037
  :allowed_from_server => false,
888
- :description => 'If <code>true</code>, disables instrumentation for the memcached gem.'
1038
+ :description => deprecated_description(:'instrumentation.memcached', 'If <code>true</code>, disables instrumentation for the memcached gem.')
889
1039
  },
890
1040
  :disable_memcache_client => {
891
1041
  :default => value_of(:disable_memcache_instrumentation),
892
1042
  :public => true,
893
1043
  :type => Boolean,
1044
+ :deprecated => true,
894
1045
  :allowed_from_server => false,
895
- :description => 'If <code>true</code>, disables instrumentation for the memcache-client gem.'
1046
+ :description => deprecated_description(:'instrumentation.memcache-client', 'If <code>true</code>, disables instrumentation for the memcache-client gem.')
896
1047
  },
897
1048
  :disable_dalli => {
898
1049
  :default => value_of(:disable_memcache_instrumentation),
899
1050
  :public => true,
900
1051
  :type => Boolean,
1052
+ :deprecated => true,
901
1053
  :allowed_from_server => false,
902
- :description => 'If <code>true</code>, disables instrumentation for the dalli gem.'
1054
+ :description => deprecated_description(:'instrumentation.memcache', 'If <code>true</code>, disables instrumentation for the dalli gem.')
903
1055
  },
904
1056
  :disable_dalli_cas_client => {
905
1057
  :default => value_of(:disable_memcache_instrumentation),
906
1058
  :public => true,
907
1059
  :type => Boolean,
1060
+ :deprecated => true,
908
1061
  :allowed_from_server => false,
909
- :description => "If <code>true</code>, disables instrumentation for the dalli gem\'s additional CAS client support."
1062
+ :description => deprecated_description(:'instrumentation.memcache', "If <code>true</code>, disables instrumentation for the dalli gem\'s additional CAS client support.")
910
1063
  },
911
1064
  :disable_memcache_instrumentation => {
912
1065
  :default => false,
913
1066
  :public => true,
914
1067
  :type => Boolean,
1068
+ :deprecated => true,
915
1069
  :allowed_from_server => false,
916
- :description => 'If <code>true</code>, disables memcache instrumentation.'
1070
+ :description => deprecated_description(:'instrumentation.memcache', 'If <code>true</code>, disables memcache instrumentation.')
917
1071
  },
918
1072
  :disable_gc_profiler => {
919
1073
  :default => false,
@@ -1048,21 +1202,24 @@ module NewRelic
1048
1202
  :type => Boolean,
1049
1203
  :allowed_from_server => false,
1050
1204
  :dynamic_name => true,
1051
- :description => 'If <code>true</code>, the agent won\'t install <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/mongo-instrumentation">instrumentation for the Mongo gem</a>.'
1205
+ :deprecated => true,
1206
+ :description => deprecated_description(:'instrumentation.mongo', 'If <code>true</code>, the agent won\'t install <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/mongo-instrumentation">instrumentation for the Mongo gem</a>.')
1052
1207
  },
1053
1208
  :disable_redis => {
1054
1209
  :default => false,
1055
1210
  :public => true,
1056
1211
  :type => Boolean,
1212
+ :deprecated => true,
1057
1213
  :allowed_from_server => false,
1058
- :description => 'If <code>true</code>, the agent won\'t install <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/redis-instrumentation">instrumentation for Redis</a>.'
1214
+ :description => deprecated_description(:'instrumentation.redis', 'If <code>true</code>, the agent won\'t install <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/redis-instrumentation">instrumentation for Redis</a>.')
1059
1215
  },
1060
1216
  :disable_redis_instrumentation => {
1061
1217
  :default => false,
1062
1218
  :public => false,
1063
1219
  :type => Boolean,
1220
+ :deprecated => true,
1064
1221
  :allowed_from_server => false,
1065
- :description => 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.'
1222
+ :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
1066
1223
  },
1067
1224
  :'message_tracer.segment_parameters.enabled' => {
1068
1225
  :default => true,
@@ -1398,32 +1555,6 @@ module NewRelic
1398
1555
  :allowed_from_server => false,
1399
1556
  :description => 'If <code>true</code>, the agent won\'t measure the depth of Delayed Job queues.'
1400
1557
  },
1401
- :disable_active_record_4 => {
1402
- :default => false,
1403
- :public => true,
1404
- :type => Boolean,
1405
- :dynamic_name => true,
1406
- :allowed_from_server => false,
1407
- :deprecated => true,
1408
- :description => 'Deprecated. ' \
1409
- 'For agent versions 6.3 or higher, ' \
1410
- 'use <a href="#disable_active_record_notifications"><code>' \
1411
- 'disable_active_record_notifications' \
1412
- '</code></a> instead.'
1413
- },
1414
- :disable_active_record_5 => {
1415
- :default => false,
1416
- :public => true,
1417
- :type => Boolean,
1418
- :dynamic_name => true,
1419
- :allowed_from_server => false,
1420
- :deprecated => true,
1421
- :description => 'Deprecated. ' \
1422
- 'For agent versions 6.3 or higher, ' \
1423
- 'use <a href="#disable_active_record_notifications"><code>' \
1424
- 'disable_active_record_notifications' \
1425
- '</code></a> instead.'
1426
- },
1427
1558
  :disable_active_record_notifications => {
1428
1559
  :default => false,
1429
1560
  :public => true,
@@ -1436,33 +1567,45 @@ module NewRelic
1436
1567
  :default => false,
1437
1568
  :public => true,
1438
1569
  :type => Boolean,
1570
+ :deprecated => true,
1439
1571
  :dynamic_name => true,
1440
1572
  :allowed_from_server => false,
1441
- :description => 'If <code>true</code>, disables instrumentation for the bunny gem.'
1573
+ :description => deprecated_description(:'instrumentation.bunny', 'If <code>true</code>, disables instrumentation for the bunny gem.')
1442
1574
  },
1443
1575
  :disable_curb => {
1444
1576
  :default => false,
1445
1577
  :public => true,
1446
1578
  :type => Boolean,
1579
+ :deprecated => true,
1447
1580
  :dynamic_name => true,
1448
1581
  :allowed_from_server => false,
1449
- :description => 'If <code>true</code>, disables instrumentation for the curb gem.'
1582
+ :description => deprecated_description(:'instrumentation.curb', 'If <code>true</code>, disables instrumentation for the curb gem.' )
1450
1583
  },
1451
1584
  :disable_excon => {
1452
1585
  :default => false,
1453
1586
  :public => true,
1454
1587
  :type => Boolean,
1455
1588
  :dynamic_name => true,
1589
+ :deprecated => true,
1456
1590
  :allowed_from_server => false,
1457
- :description => 'If <code>true</code>, disables instrumentation for the excon gem.'
1591
+ :description => deprecated_description(:'instrumentation.excon', 'If <code>true</code>, disables instrumentation for the excon gem.')
1592
+ },
1593
+ :'instrumentation.excon' => {
1594
+ :default => instrumentation_value_of(:disable_excon),
1595
+ :public => :true,
1596
+ :type => String,
1597
+ :dynamic_name => true,
1598
+ :allowed_from_server => false,
1599
+ :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1458
1600
  },
1459
1601
  :disable_httpclient => {
1460
1602
  :default => false,
1461
1603
  :public => true,
1462
1604
  :type => Boolean,
1463
1605
  :dynamic_name => true,
1606
+ :deprecated => true,
1464
1607
  :allowed_from_server => false,
1465
- :description => 'If <code>true</code>, disables instrumentation for the httpclient gem.'
1608
+ :description => deprecated_description(:'instrumentation.httpclient', 'If <code>true</code>, disables instrumentation for the httpclient gem.')
1466
1609
  },
1467
1610
  :disable_net_http => {
1468
1611
  :default => false,
@@ -1470,7 +1613,10 @@ module NewRelic
1470
1613
  :type => Boolean,
1471
1614
  :dynamic_name => true,
1472
1615
  :allowed_from_server => false,
1473
- :description => 'If <code>true</code>, disables instrumentation for Net::HTTP.'
1616
+ :deprecated => true,
1617
+ :description => deprecated_description(:'instrumentation.net_http',
1618
+ 'If <code>true</code>, disables instrumentation for Net::HTTP.'
1619
+ )
1474
1620
  },
1475
1621
  :disable_rack => {
1476
1622
  :default => false,
@@ -1478,7 +1624,8 @@ module NewRelic
1478
1624
  :type => Boolean,
1479
1625
  :dynamic_name => true,
1480
1626
  :allowed_from_server => false,
1481
- :description => 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Rack::Builder to find gems to instrument during application startup.'
1627
+ :deprecated => true,
1628
+ :description => deprecated_description(:'instrumentation.rack', 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Rack::Builder to find gems to instrument during application startup.')
1482
1629
  },
1483
1630
  :disable_rack_urlmap => {
1484
1631
  :default => false,
@@ -1486,7 +1633,8 @@ module NewRelic
1486
1633
  :type => Boolean,
1487
1634
  :dynamic_name => true,
1488
1635
  :allowed_from_server => false,
1489
- :description => 'If <code>true</code>, prevents the agent from hooking into Rack::URLMap to install middleware tracing.'
1636
+ :deprecated => true,
1637
+ :description => deprecated_description(:'instrumentation.rack_urlmap', 'If <code>true</code>, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1490
1638
  },
1491
1639
  :disable_puma_rack => {
1492
1640
  :default => value_of(:disable_rack),
@@ -1494,7 +1642,8 @@ module NewRelic
1494
1642
  :type => Boolean,
1495
1643
  :dynamic_name => true,
1496
1644
  :allowed_from_server => false,
1497
- :description => 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during application startup.'
1645
+ :deprecated => true,
1646
+ :description => deprecated_description(:'instrumentation.puma_rack', 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during application startup.')
1498
1647
  },
1499
1648
  :disable_puma_rack_urlmap => {
1500
1649
  :default => value_of(:disable_rack_urlmap),
@@ -1502,23 +1651,26 @@ module NewRelic
1502
1651
  :type => Boolean,
1503
1652
  :dynamic_name => true,
1504
1653
  :allowed_from_server => false,
1505
- :description => 'If <code>true</code>, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.'
1654
+ :deprecated => true,
1655
+ :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If <code>true</code>, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1506
1656
  },
1507
1657
  :disable_typhoeus => {
1508
1658
  :default => false,
1509
1659
  :public => true,
1510
1660
  :type => Boolean,
1511
1661
  :dynamic_name => true,
1662
+ :deprecated => true,
1512
1663
  :allowed_from_server => false,
1513
- :description => 'If <code>true</code>, the agent won\'t install instrumentation for the typhoeus gem.'
1664
+ :description => deprecated_description(:'instrumentation.typhoeus', 'If <code>true</code>, the agent won\'t install instrumentation for the typhoeus gem.' )
1514
1665
  },
1515
1666
  :disable_httprb => {
1516
1667
  :default => false,
1517
1668
  :public => true,
1518
1669
  :type => Boolean,
1519
1670
  :dynamic_name => true,
1671
+ :deprecated => true,
1520
1672
  :allowed_from_server => false,
1521
- :description => 'If <code>true</code>, the agent won\'t install instrumentation for the http.rb gem.'
1673
+ :description => deprecated_description(:'instrumentation.httprb', 'If <code>true</code>, the agent won\'t install instrumentation for the http.rb gem.' )
1522
1674
  },
1523
1675
  :disable_middleware_instrumentation => {
1524
1676
  :default => false,
@@ -1627,14 +1779,28 @@ module NewRelic
1627
1779
  :public => false,
1628
1780
  :type => Boolean,
1629
1781
  :allowed_from_server => false,
1630
- :description => 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1782
+ :deprecated => true,
1783
+ :description => deprecated_description(:'instrumentation.grape',
1784
+ 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1785
+ )
1631
1786
  },
1632
1787
  :disable_grape => {
1633
1788
  :default => false,
1634
1789
  :public => true,
1635
1790
  :type => Boolean,
1636
1791
  :allowed_from_server => false,
1637
- :description => 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1792
+ :deprecated => true,
1793
+ :description => deprecated_description(:'instrumentation.grape',
1794
+ 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1795
+ )
1796
+ },
1797
+ :'instrumentation.grape' => {
1798
+ :default => instrumentation_value_of(:disable_grape_instrumentation),
1799
+ :public => :true,
1800
+ :type => String,
1801
+ :dynamic_name => true,
1802
+ :allowed_from_server => false,
1803
+ :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1638
1804
  },
1639
1805
  :'attributes.enabled' => {
1640
1806
  :default => true,