newrelic_rpm 6.15.0 → 7.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +164 -22
  3. data/CONTRIBUTING.md +13 -2
  4. data/README.md +2 -2
  5. data/lib/new_relic/agent.rb +5 -8
  6. data/lib/new_relic/agent/agent.rb +2 -1
  7. data/lib/new_relic/agent/autostart.rb +1 -2
  8. data/lib/new_relic/agent/configuration/default_source.rb +442 -227
  9. data/lib/new_relic/agent/configuration/manager.rb +3 -3
  10. data/lib/new_relic/agent/connect/request_builder.rb +4 -2
  11. data/lib/new_relic/agent/datastores/redis.rb +0 -4
  12. data/lib/new_relic/agent/distributed_tracing.rb +0 -66
  13. data/lib/new_relic/agent/error_collector.rb +52 -37
  14. data/lib/new_relic/agent/error_filter.rb +167 -0
  15. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +0 -16
  16. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +1 -3
  17. data/lib/new_relic/agent/instrumentation/bunny.rb +10 -152
  18. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +45 -0
  19. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +152 -0
  20. data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +35 -0
  21. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -0
  22. data/lib/new_relic/agent/instrumentation/curb.rb +9 -241
  23. data/lib/new_relic/agent/instrumentation/curb/chain.rb +93 -0
  24. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +222 -0
  25. data/lib/new_relic/agent/instrumentation/curb/prepend.rb +63 -0
  26. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +38 -0
  27. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +53 -0
  28. data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +34 -0
  29. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +8 -50
  30. data/lib/new_relic/agent/instrumentation/excon.rb +2 -1
  31. data/lib/new_relic/agent/instrumentation/grape.rb +13 -113
  32. data/lib/new_relic/agent/instrumentation/grape/chain.rb +25 -0
  33. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +100 -0
  34. data/lib/new_relic/agent/instrumentation/grape/prepend.rb +17 -0
  35. data/lib/new_relic/agent/instrumentation/httpclient.rb +8 -30
  36. data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +25 -0
  37. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +38 -0
  38. data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +17 -0
  39. data/lib/new_relic/agent/instrumentation/httprb.rb +29 -0
  40. data/lib/new_relic/agent/instrumentation/httprb/chain.rb +22 -0
  41. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +30 -0
  42. data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +15 -0
  43. data/lib/new_relic/agent/instrumentation/memcache.rb +54 -69
  44. data/lib/new_relic/agent/instrumentation/memcache/chain.rb +16 -0
  45. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +38 -121
  46. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +56 -0
  47. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +88 -0
  48. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +88 -0
  49. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +2 -0
  50. data/lib/new_relic/agent/instrumentation/mongo.rb +7 -0
  51. data/lib/new_relic/agent/instrumentation/net_http.rb +44 -0
  52. data/lib/new_relic/agent/instrumentation/net_http/chain.rb +25 -0
  53. data/lib/new_relic/agent/instrumentation/{net_prepend.rb → net_http/instrumentation.rb} +3 -3
  54. data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +21 -0
  55. data/lib/new_relic/agent/instrumentation/padrino.rb +18 -53
  56. data/lib/new_relic/agent/instrumentation/padrino/chain.rb +34 -0
  57. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +27 -0
  58. data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +20 -0
  59. data/lib/new_relic/agent/instrumentation/rack.rb +29 -139
  60. data/lib/new_relic/agent/instrumentation/rack/chain.rb +58 -0
  61. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +32 -0
  62. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +73 -0
  63. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +37 -0
  64. data/lib/new_relic/agent/instrumentation/rake.rb +13 -154
  65. data/lib/new_relic/agent/instrumentation/rake/chain.rb +25 -0
  66. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +144 -0
  67. data/lib/new_relic/agent/instrumentation/rake/prepend.rb +14 -0
  68. data/lib/new_relic/agent/instrumentation/redis.rb +12 -107
  69. data/lib/new_relic/agent/instrumentation/redis/chain.rb +34 -0
  70. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +65 -0
  71. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +24 -0
  72. data/lib/new_relic/agent/instrumentation/resque.rb +21 -32
  73. data/lib/new_relic/agent/instrumentation/resque/chain.rb +22 -0
  74. data/lib/new_relic/agent/instrumentation/resque/helper.rb +19 -0
  75. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +35 -0
  76. data/lib/new_relic/agent/instrumentation/resque/prepend.rb +16 -0
  77. data/lib/new_relic/agent/instrumentation/sinatra.rb +20 -158
  78. data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +55 -0
  79. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +29 -34
  80. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +124 -0
  81. data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +33 -0
  82. data/lib/new_relic/agent/instrumentation/typhoeus.rb +10 -89
  83. data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +22 -0
  84. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +82 -0
  85. data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +14 -0
  86. data/lib/new_relic/agent/javascript_instrumentor.rb +12 -7
  87. data/lib/new_relic/agent/new_relic_service.rb +15 -13
  88. data/lib/new_relic/agent/sql_sampler.rb +3 -3
  89. data/lib/new_relic/agent/transaction.rb +1 -4
  90. data/lib/new_relic/control/frameworks/rails.rb +11 -9
  91. data/lib/new_relic/control/instance_methods.rb +1 -0
  92. data/lib/new_relic/dependency_detection.rb +116 -10
  93. data/lib/new_relic/noticed_error.rb +4 -8
  94. data/lib/new_relic/supportability_helper.rb +1 -2
  95. data/lib/new_relic/version.rb +2 -2
  96. data/lib/tasks/config.html.erb +14 -25
  97. data/lib/tasks/config.rake +8 -7
  98. data/newrelic_rpm.gemspec +1 -1
  99. metadata +55 -8
  100. data/cert/cacert.pem +0 -1177
  101. data/lib/new_relic/agent/instrumentation/http.rb +0 -49
  102. 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: e364456c599b5484bd0b031f9bc19fd1ec634954c6c060eee1ac85c38adfed78
4
+ data.tar.gz: aaaaa6a31504b5aac1da40ac2c0d69fefbbae8525ce96ef38e7fc01460c618d9
5
5
  SHA512:
6
- metadata.gz: 5cadb8ca1d02feadc30a85871d1e8cd6c24064bfc3b1bed98680573bb4c29075e07447f4290dfc360d9607c1ff3a5433d0c36be9eaeae515c725547424ee92cc
7
- data.tar.gz: c3901a54a577cdab2159ee6a93bf4bd6acf82d6629d4d4ba99c4565d7155efc7d653387f9fcee8cd246d19cecfe662b60bd63f05cbf19d38194e0b6d9d6ce0b9
6
+ metadata.gz: c8a7d6825a9d05a99d45bffb9fc537f5630f9e8077cd939970f28b17e85991fa80443752bc05560b5fcea7f3a47058e68eb96621f66a0e3b2989206a0aa66ebd
7
+ data.tar.gz: 2586902aac108d89c355eccae23acf6b88a72c18abdc773ef4938f3a5aaf17568821e2890bd2ecc4e56695d3798f1f74bdb136f2df3fc6002aacaa563fd329ea
data/CHANGELOG.md CHANGED
@@ -1,9 +1,151 @@
1
1
  # New Relic Ruby Agent Release Notes #
2
2
 
3
+ ## v7.2.0
4
+
5
+ * **Expected Errors and Ignore Errors**
6
+ This release adds support for configuration for expected/ignored errors by class name, status code, and message. The following configuration options are now available:
7
+ - `error_collector.ignore_classes`
8
+ - `error_collector.ignore_messages`
9
+ - `error_collector.ignore_status_codes`
10
+ - `error_collector.expected_classes`
11
+ - `error_collector.expected_messages`
12
+ - `error_collector.expected_status_codes`
13
+ For more details about expected and ignored errors, please see our [configuration documentation](https://docs.newrelic.com/docs/agents/ruby-agent/configuration/)
14
+
15
+ * **Bugfix: resolves "can't add a new key into hash during iteration" Errors**
16
+
17
+ Thanks to @wyhaines for this fix that prevents "can't add a new key into hash during iteration" errors from occuring when iterating over environment data.
18
+
19
+ * **Bugfix: kwarg support fixed for Rack middleware instrumentation**
20
+
21
+ Thanks to @walro for submitting this fix. This fixes the rack instrumentation when using kwargs.
22
+
23
+ * **Update known conflicts with use of Module#Prepend**
24
+
25
+ With our release of v7.0.0, we updated our instrumentation to use Module#Prepend by default, instead of method chaining. We have received reports of conflicts and added a check for these known conflicts. If a known conflict with prepend is detected while using the default value of 'auto' for gem instrumentation, the agent will instead install method chaining instrumentation in order to avoid this conflict. This check can be bypassed by setting the instrumentation method for the gem to 'prepend'.
26
+
27
+
28
+ ## v7.1.0
29
+
30
+ * **Add support for CSP nonces when using our API to insert the browser agent**
31
+
32
+ We now support passing in a nonce to our API method `browser_timing_header` to allow the browser agent to run on applications using CSP nonces. This allows users to inject the browser agent themselves and use the nonce required for the script to run. In order to utilize this new feature, you must disable auto instrumentation for the browser agent, and use the API method browser_timing_header to pass the nonce in and inject the script manually.
33
+
34
+ * **Removed MD5 use in the SQL sampler**
35
+
36
+ In order to allow the agent to run in FIPS compliant environments, the usage of MD5 for aggregating slow sql traces has been replaced with SHA1.
37
+
38
+ * **Enable server-side configuration of distributed tracing**
39
+
40
+ `distributed_tracing.enabled` may now be set in server-side application configuration.
41
+
42
+ * **Bugfix: Fix for missing part of a previous bugfix**
43
+
44
+ Our previous fix of "nil Middlewares injection now prevented and gracefully handled in Sinatra" released in 7.0.0 was partially overwritten by some of the other changes in that release. This release adds back those missing sections of the bugfix, and should resolve the issue for sinatra users.
45
+
46
+ * **Update known conflicts with use of Module#Prepend**
47
+
48
+ With our release of v7.0.0, we updated our instrumentation to use Module#Prepend by default, instead of method chaining. We have received reports of conflicts and added a check for these known conflicts. If a known conflict with prepend is detected while using the default value of 'auto' for gem instrumentation, the agent will instead install method chaining instrumentation in order to avoid this conflict. This check can be bypassed by setting the instrumentation method for the gem to 'prepend'.
49
+
50
+ * **Bugfix: Updated support for ActiveRecord 6.1+ instrumentation**
51
+
52
+ Previously, the agent depended on `connection_id` to be present in the Active Support instrumentation for `sql.active_record`
53
+ to get the current ActiveRecord connection. As of Rails 6.1, `connection_id` has been dropped in favor of providing the connection
54
+ object through the `connection` value exclusively. This resulted in datastore spans displaying fallback behavior, including showing
55
+ "ActiveRecord" as the database vendor.
56
+
57
+ * **Bugfix: Updated support for Resque's FORK_PER_JOB option**
58
+
59
+ Support for Resque's FORK_PER_JOB flag within the Ruby agent was incomplete and nonfunctional. The agent should now behave
60
+ correctly when running in a non-forking Resque worker process.
61
+
62
+ * **Bugfix: Added check for ruby2_keywords in add_transaction_tracer**
63
+
64
+ Thanks @beauraF for the contribution! Previously, the add_transaction_tracer was not updated when we added support for ruby 3. In order to correctly support `**kwargs`, ruby2_keywords was added to correctly update the method signature to use **kwargs in ruby versions that support that.
65
+
66
+ * **Confirmed support for yajl 1.4.0**
67
+
68
+ Thanks to @creaturenex for the contribution! `yajl-ruby` 1.4.0 was added to our test suite and confirmed all tests pass, showing the agent supports this version as well.
69
+
70
+
71
+ ## v7.0.0
72
+
73
+ * **Ruby Agent 6.x to 7.x Migration Guide Available**
74
+
75
+ 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.
76
+
77
+ * **Ruby 2.0 and 2.1 Dropped**
78
+
79
+ Support for Ruby 2.0 and 2.1 dropped with this release. No code changes that would prevent the agent from continuing to
80
+ 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
81
+ for 7.0.0 and onward.
82
+
83
+ * **Implemented prepend auto-instrumentation strategies for most Ruby gems/libraries**
84
+
85
+ This release brings the auto-instrumentation strategies for most gems into the modern era for Ruby by providing both
86
+ prepend and method-chaining (a.k.a. method-aliasing) strategies for auto instrumenting. Prepend, which has been available since
87
+ Ruby 2.0 is now the default strategy employed in auto-instrumenting. It is known that some external gems lead to Stack Level
88
+ too Deep exceptions when prepend and method-chaining are mixed. In such known cases, auto-instrumenting strategy will fall back
89
+ to method-chaining automatically.
90
+
91
+ This release also deprecates many overlapping and inconsistently named configuration settings in favor of being able to control
92
+ behavior of instrumentation per library with one setting that can be one of auto (the default), disabled, prepend, or chain.
93
+
94
+ Please see the above-referenced migration guide for further details.
95
+
96
+ * **Removed SSL cert bundle**
97
+
98
+ The agent will no longer ship this bundle and will rely on system certs.
99
+
100
+ * **Removed deprecated config options**
101
+
102
+ The following config options were previously deprecated and are no longer available
103
+ - `disable_active_record_4`
104
+ - `disable_active_record_5`
105
+ - `autostart.blacklisted_constants`
106
+ - `autostart.blacklisted_executables`
107
+ - `autostart.blacklisted_rake_tasks`
108
+ - `strip_exception_messages.whitelist`
109
+
110
+ * **Removed deprecated attribute**
111
+
112
+ The attribute `httpResponseCode` was previously deprecated and replaced with `http.statusCode`. This deprecated attribute has now been removed.
113
+
114
+ * **Removed deprecated option in notice_error**
115
+
116
+ Previously, the `:trace_only` option to NewRelic::Agent.notice_error was deprecated and replaced with `:expected`. This deprecated option has been removed.
117
+
118
+ * **Removed deprecated api methods**
119
+
120
+ 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.
121
+
122
+ * **Bugfix: Prevent browser monitoring middleware from installing to middleware multiple times**
123
+
124
+ In rare cases on jRuby, the BrowserMonitoring middleware could attempt to install itself
125
+ multiple times at start up. This bug fix addresses that by using a mutex to introduce
126
+ thread safety to the operation. Sintra in particular can have this race condition because
127
+ its middleware stack is not installed until the first request is received.
128
+
129
+ * **Skip constructing Time for transactions**
130
+
131
+ Thanks to @viraptor, we are no longer constructing an unused Time object with every call to starting a new Transaction.
132
+
133
+ * **Bugfix: nil Middlewares injection now prevented and gracefully handled in Sinatra**
134
+
135
+ Previously, the agent could potentially inject multiples of an instrumented middleware if Sinatra received many
136
+ requests at once during start up and initialization due to Sinatra's ability to delay full start up as long as possible.
137
+ This has now been fixed and the Ruby agent correctly instruments only once as well as gracefully handles nil middleware
138
+ classes in general.
139
+
140
+ * **Bugfix: Ensure transaction nesting max depth is always consistent with length of segments**
141
+
142
+ Thanks to @warp for noticing and fixing the scenario where Transaction nesting_max_depth can get out of sync
143
+ with segments length resulting in an exception when attempting to nest the initial segment which does not exist.
144
+
3
145
  ## v6.15.0
4
146
 
5
147
  * **Official Ruby 3.0 support**
6
-
148
+
7
149
  The ruby agent has been verified to run on ruby 3.0.0
8
150
 
9
151
  * **Added support for Rails 6.1**
@@ -17,7 +159,7 @@
17
159
 
18
160
  * **Bugfix: No longer overwrites sidekiq trace data**
19
161
 
20
- Distributed traing data is now added to the job trace info rather than overwriting the existing data.
162
+ Distributed tracing data is now added to the job trace info rather than overwriting the existing data.
21
163
 
22
164
  * **Bugfix: Fixes cases where errors are reported for spans with no other attributes**
23
165
 
@@ -26,7 +168,7 @@
26
168
  This is now fixed and errors are now correctly recorded against such span events.
27
169
 
28
170
  * **Bugfix: `DistributedTracing.insert_distributed_trace_headers` Supportability metric now recorded**
29
-
171
+
30
172
  Previously, API calls to `DistributedTracing.insert_distributed_trace_headers` would lead to an exception
31
173
  about the missing supportability metric rather than flowing through the API implementation as intended.
32
174
  This would potentially lead to broken distributed traces as the trace headers were not inserted on the API call.
@@ -36,25 +178,25 @@
36
178
  * **Bugfix: child completions after parent completes sometimes throws exception attempting to access nil parent**
37
179
 
38
180
  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
181
+ been freed and no longer accessible. This would lead to an attempt to call `descendant_complete` on a Nil
40
182
  object. This is fixed to protect against calling the `descendant_complete` in such cases.
41
-
183
+
42
184
  * **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
185
+
186
+ The `force_install_exit_handler` configuration flag allows an application to instruct the agent to install its
187
+ graceful shutdown exit handler, which will send any locally cached data to the New Relic collector prior to the
188
+ application shutting down. This is useful for when the primary framework has an embedded Sinatra application that
47
189
  is otherwise detected and skips installing the exit hook for graceful shutdowns.
48
190
 
49
191
  * **Default prepend_net_instrumentation to false**
50
192
 
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
193
+ 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
194
  unexpected compatibilty issues.
53
-
195
+
54
196
  ## v6.14.0
55
197
 
56
198
  * **Bugfix: Method tracers no longer cloning arguments**
57
-
199
+
58
200
  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
201
 
60
202
  * **Bugfix: Delayed Job instrumentation fixed for Ruby 2.7+**
@@ -63,22 +205,22 @@
63
205
  Delayed Job's library. The led to Delayed job not auto-instrumenting correctly and has been fixed.
64
206
 
65
207
  * **Bugfix: Ruby 2.7+ methods sometimes erroneously attributed compiler warnings to the Agent's `add_method_tracer`**
66
-
208
+
67
209
  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
210
+ that will be resolved with upcoming changes in next major release of the Agent. If you encounter a problem with adding
69
211
  method tracers and compiler warnings raised, please continue to submit small repoducible examples.
70
212
 
71
213
  * **Bugfix: Ruby 2.7+ fix for keyword arguments on Rack apps is unnecessary and removed**
72
214
 
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
215
+ A common fix for positional and keyword arguments for method parameters was implemented where it was not needed and
216
+ led to RackApps getting extra arguments converted to keyword arguments rather than Hash when it expected one. This
75
217
  Ruby 2.7+ change was reverted so that Rack apps behave correctly for Ruby >= 2.7.
76
218
 
77
219
  * **Feature: captures incoming and outgoing request headers for distributed tracing**
78
220
 
79
- HTTP request headers will be logged when log level is at least debug level. Similarly, request headers
221
+ HTTP request headers will be logged when log level is at least debug level. Similarly, request headers
80
222
  for exchanges with New Relic servers are now audit logged when audit logging is enabled.
81
-
223
+
82
224
  * **Bugfix: `newrelic.yml.erb` added to the configuration search path**
83
225
 
84
226
  Previously, when a user specifies a `newrelic.yml.erb` and no `newrelic.yml` file, the agent fails to find
@@ -88,7 +230,7 @@
88
230
  the `.yml` file is used instead of the `.erb` file. Search directories and order of traversal remain unchanged.
89
231
 
90
232
  * **Bugfix: dependency detection of Redis now works without raising an exception**
91
-
233
+
92
234
  Previously, when detecting if Redis was available to instrument, the dependency detection would fail with an Exception raised
93
235
  (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
236
 
@@ -99,12 +241,12 @@
99
241
 
100
242
  * **Memory Sampler updated to recognize macOS Big Sur**
101
243
 
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.
244
+ 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
245
 
104
246
  * **Prepend implementation of Net::HTTP instrumentation available**
105
-
247
+
106
248
  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
-
249
+
108
250
  ## v6.13.1
109
251
 
110
252
  * **Bugfix: obfuscating URLs to external services no longer modifying original URI**
data/CONTRIBUTING.md CHANGED
@@ -6,8 +6,7 @@ development team.
6
6
 
7
7
  When contributing, keep in mind that the agent runs in a wide variety of Ruby
8
8
  language implementations (e.g. 2.x.x, jruby, etc.) as well as a wide variety of
9
- application environments (e.g. Rails, Sinatra, roll-your-own, etc.) See [Ruby agent requirements and supported frameworks]
10
- (https://docs.newrelic.com/docs/agents/ruby-agent/getting-started/ruby-agent-requirements-supported-frameworks)
9
+ application environments (e.g. Rails, Sinatra, roll-your-own, etc.) See [Ruby agent requirements and supported frameworks](https://docs.newrelic.com/docs/agents/ruby-agent/getting-started/ruby-agent-requirements-supported-frameworks)
11
10
  for the current full list.
12
11
 
13
12
  Because of this, we need to be more defensive in our coding practices than most
@@ -85,6 +84,18 @@ release from this repo, use the appropriate tag. New Relic usually pushes beta
85
84
  versions of a release to a working branch before tagging them for General
86
85
  Availability.
87
86
 
87
+ ## Development Environment Setup
88
+
89
+ 1. Fork and clone the repo locally
90
+ - Fork the repository inside GitHub
91
+ - `git clone git@github.com:<gh username>/newrelic-ruby-agent.git`
92
+ 1. Pick a Ruby version
93
+ - Use rbenv or rvm to install any version of Ruby between 2.2 up to 3.0.1
94
+ 1. Install development dependencies
95
+ - `bundle install`
96
+ 1. Check that your env is setup correctly
97
+ - `bundle exec rake`
98
+
88
99
  ## Testing
89
100
 
90
101
  The agent includes a suite of unit and functional tests which should be used to
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.
@@ -44,6 +44,7 @@ module NewRelic
44
44
  require 'new_relic/agent/sql_sampler'
45
45
  require 'new_relic/agent/commands/thread_profiler_session'
46
46
  require 'new_relic/agent/error_collector'
47
+ require 'new_relic/agent/error_filter'
47
48
  require 'new_relic/agent/sampler'
48
49
  require 'new_relic/agent/database'
49
50
  require 'new_relic/agent/database_adapter'
@@ -283,12 +284,6 @@ module NewRelic
283
284
  def notice_error(exception, options={})
284
285
  record_api_supportability_metric(:notice_error)
285
286
 
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
287
  Transaction.notice_error(exception, options)
293
288
  nil # don't return a noticed error datastructure. it can only hurt.
294
289
  end
@@ -764,13 +759,15 @@ module NewRelic
764
759
  # In previous agents there was a corresponding footer required, but all the
765
760
  # work is now done by this single method.
766
761
  #
762
+ # @param [String] nonce The nonce to use in the javascript tag for browser instrumentation
763
+ #
767
764
  # @api public
768
765
  #
769
- def browser_timing_header
766
+ def browser_timing_header(nonce=nil)
770
767
  record_api_supportability_metric(:browser_timing_header)
771
768
 
772
769
  return "" unless agent
773
- agent.javascript_instrumentor.browser_timing_header
770
+ agent.javascript_instrumentor.browser_timing_header(nonce)
774
771
  end
775
772
 
776
773
  # @!endgroup
@@ -17,6 +17,7 @@ require 'new_relic/agent/new_relic_service'
17
17
  require 'new_relic/agent/pipe_service'
18
18
  require 'new_relic/agent/configuration/manager'
19
19
  require 'new_relic/agent/database'
20
+ require 'new_relic/agent/instrumentation/resque/helper'
20
21
  require 'new_relic/agent/commands/agent_command_router'
21
22
  require 'new_relic/agent/event_listener'
22
23
  require 'new_relic/agent/distributed_tracing'
@@ -470,7 +471,7 @@ module NewRelic
470
471
  # before Resque calls Process.daemon (Jira RUBY-857)
471
472
  def defer_for_resque?
472
473
  NewRelic::Agent.config[:dispatcher] == :resque &&
473
- NewRelic::LanguageSupport.can_fork? &&
474
+ NewRelic::Agent::Instrumentation::Resque::Helper.resque_fork_per_job? &&
474
475
  !PipeChannelManager.listener.started?
475
476
  end
476
477
 
@@ -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
+ %{Please see: [#{new_setting}](docs/agents/ruby-agent/configuration/ruby-agent-configuration##{link_ref}). \n\n#{description}}
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
@@ -295,14 +325,14 @@ module NewRelic
295
325
  :public => true,
296
326
  :type => String,
297
327
  :allowed_from_server => false,
298
- :description => 'Your New Relic <a href="https://docs.newrelic.com/docs/accounts-partnerships/accounts/account-setup/license-key">license key</a>.'
328
+ :description => 'Your New Relic [license key](/docs/accounts-partnerships/accounts/account-setup/license-key).'
299
329
  },
300
330
  :agent_enabled => {
301
331
  :default => DefaultSource.agent_enabled,
302
332
  :public => true,
303
333
  :type => Boolean,
304
334
  :allowed_from_server => false,
305
- :description => 'If <code>true</code>, allows the Ruby agent to run.'
335
+ :description => 'If `true`, allows the Ruby agent to run.'
306
336
  },
307
337
  :enabled => {
308
338
  :default => true,
@@ -318,7 +348,7 @@ module NewRelic
318
348
  :type => String,
319
349
  :allowed_from_server => false,
320
350
  :transform => DefaultSource.method(:convert_to_list_on_semicolon),
321
- :description => 'Specify the <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/installation-configuration/name-your-application">application name</a> used to aggregate data in the New Relic UI. To report data to <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/installation-configuration/using-multiple-names-app">multiple apps at the same time</a>, specify a list of names separated by a semicolon <code>;</code>. For example, <code>MyApp</code> or <code>MyStagingApp;Instance1</code>.'
351
+ :description => 'Specify the [application name](/docs/apm/new-relic-apm/installation-configuration/name-your-application) used to aggregate data in the New Relic UI. To report data to [multiple apps at the same time](/docs/apm/new-relic-apm/installation-configuration/using-multiple-names-app), specify a list of names separated by a semicolon `;`. For example, `MyApp` or `MyStagingApp;Instance1`.'
322
352
  },
323
353
  :entity_guid => {
324
354
  :default => nil,
@@ -326,35 +356,35 @@ module NewRelic
326
356
  :public => true,
327
357
  :type => String,
328
358
  :allowed_from_server => true,
329
- :description => 'The <a href="https://docs.newrelic.com/attribute-dictionary/span/entityguid">Entity GUID</a> for the entity running this agent.'
359
+ :description => 'The [Entity GUID](/attribute-dictionary/span/entityguid) for the entity running this agent.'
330
360
  },
331
361
  :monitor_mode => {
332
362
  :default => value_of(:enabled),
333
363
  :public => true,
334
364
  :type => Boolean,
335
365
  :allowed_from_server => false,
336
- :description => 'When <code>true</code>, the agent transmits data about your app to the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>.'
366
+ :description => 'When `true`, the agent transmits data about your app to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector).'
337
367
  },
338
368
  :test_mode => {
339
369
  :default => false,
340
370
  :public => false,
341
371
  :type => Boolean,
342
372
  :allowed_from_server => false,
343
- :description => 'Used in tests for agent to start up but not connect to collector. Formerly used <code>developer_mode</code> in test config for this purpose.'
373
+ :description => 'Used in tests for agent to start up but not connect to collector. Formerly used `developer_mode` in test config for this purpose.'
344
374
  },
345
375
  :log_level => {
346
376
  :default => 'info',
347
377
  :public => true,
348
378
  :type => String,
349
379
  :allowed_from_server => false,
350
- :description => 'Sets the level of detail of log messages. Possible log levels, in increasing verbosity, are: <code>error</code>, <code>warn</code>, <code>info</code> or <code>debug</code>.'
380
+ :description => 'Sets the level of detail of log messages. Possible log levels, in increasing verbosity, are: `error`, `warn`, `info` or `debug`.'
351
381
  },
352
382
  :high_security => {
353
383
  :default => false,
354
384
  :public => true,
355
385
  :type => Boolean,
356
386
  :allowed_from_server => false,
357
- :description => 'If <code>true</code>, enables <a href="https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security">high security mode</a>. Ensure you understand the implications of high security mode before enabling this setting.'
387
+ :description => 'If `true`, enables [high security mode](/docs/accounts-partnerships/accounts/security/high-security). Ensure you understand the implications of high security mode before enabling this setting.'
358
388
  },
359
389
  :security_policies_token => {
360
390
  :default => '',
@@ -369,7 +399,7 @@ module NewRelic
369
399
  :public => true,
370
400
  :type => String,
371
401
  :allowed_from_server => false,
372
- :description => 'Defines a host for communicating with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> via a proxy server.'
402
+ :description => 'Defines a host for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
373
403
  },
374
404
  :proxy_port => {
375
405
  :default => 8080,
@@ -377,7 +407,7 @@ module NewRelic
377
407
  :public => true,
378
408
  :type => Integer,
379
409
  :allowed_from_server => false,
380
- :description => 'Defines a port for communicating with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> via a proxy server.'
410
+ :description => 'Defines a port for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
381
411
  },
382
412
  :proxy_user => {
383
413
  :default => nil,
@@ -386,7 +416,7 @@ module NewRelic
386
416
  :type => String,
387
417
  :allowed_from_server => false,
388
418
  :exclude_from_reported_settings => true,
389
- :description => 'Defines a user for communicating with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> via a proxy server.'
419
+ :description => 'Defines a user for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
390
420
  },
391
421
  :proxy_pass => {
392
422
  :default => nil,
@@ -395,27 +425,26 @@ module NewRelic
395
425
  :type => String,
396
426
  :allowed_from_server => false,
397
427
  :exclude_from_reported_settings => true,
398
- :description => 'Defines a password for communicating with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> via a proxy server.'
428
+ :description => 'Defines a password for communicating with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) via a proxy server.'
399
429
  },
400
430
  :capture_params => {
401
431
  :default => false,
402
432
  :public => true,
403
433
  :type => Boolean,
404
434
  :allowed_from_server => false,
405
- :description => 'When <code>true</code>, the agent captures HTTP request parameters ' \
435
+ :description => 'When `true`, the agent captures HTTP request parameters ' \
406
436
  'and attaches them to transaction traces, traced errors, and ' \
407
- '<a href="https://docs.newrelic.com/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241">'\
408
- '<code>TransactionError</code> events.' \
437
+ '[`TransactionError` events](/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241)'\
409
438
  "\n" \
410
439
  '<div class="callout-warning">' \
411
440
  "\n" \
412
- '<p>When using the <code>capture_params</code> setting, the Ruby agent will not attempt ' \
441
+ 'When using the `capture_params` setting, the Ruby agent will not attempt ' \
413
442
  'to filter secret information. <b>Recommendation:</b> To filter secret information from ' \
414
- 'request parameters, use the <a href="/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby">' \
415
- '<code>attributes.include</code> setting</a> instead. For more information, see the ' \
443
+ 'request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) ' \
444
+ 'instead. For more information, see the ' \
416
445
  '<a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">' \
417
446
  'Ruby attribute examples</a>.' \
418
- "</p>\n" \
447
+ "\n" \
419
448
  '</div>'
420
449
  },
421
450
  :config_path => {
@@ -446,73 +475,43 @@ module NewRelic
446
475
  :allowed_from_server => false,
447
476
  :description => 'Autodetected application framework used to enable framework-specific functionality.'
448
477
  },
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
478
  :'autostart.denylisted_constants' => {
461
479
  :default => 'Rails::Console',
462
480
  :public => true,
463
481
  :type => String,
464
482
  :allowed_from_server => false,
465
- :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
- },
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.'
483
+ :description => 'Specify a list of constants that should prevent the agent from starting automatically. Separate individual constants with a comma `,`. For example, `Rails::Console,UninstrumentedBackgroundJob`.'
477
484
  },
478
485
  :'autostart.denylisted_executables' => {
479
- :default => value_of(:'autostart.blacklisted_executables'),
480
- :public => true,
481
- :type => String,
482
- :allowed_from_server => false,
483
- :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, <code>rake,my_ruby_script.rb</code>.'
484
- },
485
- :'autostart.blacklisted_rake_tasks' => {
486
- :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
486
+ :default => 'irb,rspec',
487
487
  :public => true,
488
488
  :type => String,
489
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.'
490
+ :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
495
491
  },
496
492
  :'autostart.denylisted_rake_tasks' => {
497
- :default => value_of(:'autostart.blacklisted_rake_tasks'),
493
+ :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
498
494
  :public => true,
499
495
  :type => String,
500
496
  :allowed_from_server => false,
501
- :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, <code>assets:precompile,db:migrate</code>.'
497
+ :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
502
498
  },
499
+
503
500
  :disable_rake => {
504
501
  :default => false,
505
502
  :public => true,
506
503
  :type => Boolean,
507
504
  :allowed_from_server => false,
508
- :description => 'If <code>true</code>, disables Rake instrumentation.'
505
+ :deprecated => true,
506
+ :description => deprecated_description(:'instrumentation.rake', 'If `true`, disables Rake instrumentation.')
509
507
  },
510
508
  :disable_rake_instrumentation => {
511
509
  :default => false,
512
510
  :public => false,
513
511
  :type => Boolean,
514
512
  :allowed_from_server => false,
515
- :description => 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`'
513
+ :deprecated => true,
514
+ :description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
516
515
  },
517
516
  :'rake.tasks' => {
518
517
  :default => [],
@@ -535,27 +534,14 @@ module NewRelic
535
534
  :type => Float,
536
535
  :allowed_from_server => true,
537
536
  :deprecated => true,
538
- :description => 'Deprecated. For agent versions 3.5.0 or higher, <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/changing-your-apdex-settings">set your Apdex T via the New Relic UI</a>.'
537
+ :description => 'Deprecated. For agent versions 3.5.0 or higher, [set your Apdex T via the New Relic UI](/docs/apm/new-relic-apm/apdex/changing-your-apdex-settings).'
539
538
  },
540
539
  :'strip_exception_messages.enabled' => {
541
540
  :default => value_of(:high_security),
542
541
  :public => true,
543
542
  :type => Boolean,
544
543
  :allowed_from_server => false,
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
- },
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.'
544
+ :description => 'If true, the agent strips messages from all exceptions except those in the [allowlist](#strip_exception_messages-allowlist). Enabled automatically in [high security mode](/docs/accounts-partnerships/accounts/security/high-security).'
559
545
  },
560
546
  :'strip_exception_messages.allowed_classes' => {
561
547
  :default => '',
@@ -563,7 +549,7 @@ module NewRelic
563
549
  :type => String,
564
550
  :allowed_from_server => false,
565
551
  :transform => DefaultSource.method(:convert_to_constant_list),
566
- :description => 'Specify a list of exceptions you do not want the agent to strip when <a href="#strip_exception_messages-enabled">strip_exception_messages</a> is <code>true</code>. Separate exceptions with a comma. For example, <code>"ImportantException,PreserveMessageException"</code>.'
552
+ :description => 'Specify a list of exceptions you do not want the agent to strip when [strip_exception_messages](#strip_exception_messages-enabled) is `true`. Separate exceptions with a comma. For example, `"ImportantException,PreserveMessageException"`.'
567
553
  },
568
554
  :host => {
569
555
  :default => DefaultSource.host,
@@ -598,14 +584,14 @@ module NewRelic
598
584
  :public => true,
599
585
  :type => Boolean,
600
586
  :allowed_from_server => false,
601
- :description => 'When set to <code>true</code>, forces a synchronous connection to the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> during application startup. For very short-lived processes, this helps ensure the New Relic agent has time to report.'
587
+ :description => 'When set to `true`, forces a synchronous connection to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) during application startup. For very short-lived processes, this helps ensure the New Relic agent has time to report.'
602
588
  },
603
589
  :send_data_on_exit => {
604
590
  :default => true,
605
591
  :public => true,
606
592
  :type => Boolean,
607
593
  :allowed_from_server => false,
608
- :description => 'If <code>true</code>, enables the exit handler that sends data to the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a> before shutting down.'
594
+ :description => 'If `true`, enables the exit handler that sends data to the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector) before shutting down.'
609
595
  },
610
596
  :max_payload_size_in_bytes => {
611
597
  :default => 1000000,
@@ -709,11 +695,11 @@ module NewRelic
709
695
  :type => Boolean,
710
696
  :allowed_from_server => false,
711
697
  :description => 'Forces the exit handler that sends all cached data to collector ' \
712
- 'before shuttng down to be installed regardless of detecting scenarios where it generally should not be. ' \
698
+ 'before shutting down to be installed regardless of detecting scenarios where it generally should not be. ' \
713
699
  'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
714
- 'and the agent is detecting the Sinatra app and skipping the at_exit handler as a result. Sinatra classically ' \
715
- 'runs the entire application in an at_exit block and would otherwise misbehave if the Agent\'s at_exit handler ' \
716
- 'is also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
700
+ 'and the agent is detecting the Sinatra app and skipping the `at_exit` handler as a result. Sinatra classically ' \
701
+ 'runs the entire application in an `at_exit` block and would otherwise misbehave if the Agent\'s `at_exit` handler ' \
702
+ 'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
717
703
  },
718
704
  :force_reconnect => {
719
705
  :default => false,
@@ -748,7 +734,7 @@ module NewRelic
748
734
  :public => true,
749
735
  :type => Boolean,
750
736
  :allowed_from_server => false,
751
- :description => 'If <code>true</code>, enables an audit log which logs communications with the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>.'
737
+ :description => 'If `true`, enables an audit log which logs communications with the New Relic [collector](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#collector).'
752
738
  },
753
739
  :'audit_log.path' => {
754
740
  :default => DefaultSource.audit_log_path,
@@ -770,49 +756,53 @@ module NewRelic
770
756
  :public => true,
771
757
  :type => Boolean,
772
758
  :allowed_from_server => false,
773
- :description => 'If <code>true</code>, disables the collection of sampler metrics. Sampler metrics are metrics that are not event-based (such as CPU time or memory usage).'
759
+ :description => 'If `true`, disables the collection of sampler metrics. Sampler metrics are metrics that are not event-based (such as CPU time or memory usage).'
774
760
  },
775
761
  :disable_resque => {
776
762
  :default => false,
777
763
  :public => true,
778
764
  :type => Boolean,
765
+ :deprecated => true,
779
766
  :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>.'
767
+ :description => deprecated_description(:'instrumentation.resque', 'If `true`, disables [Resque instrumentation](/docs/agents/ruby-agent/background-jobs/resque-instrumentation).')
781
768
  },
782
769
  :disable_sidekiq => {
783
770
  :default => false,
784
771
  :public => true,
785
772
  :type => Boolean,
786
773
  :allowed_from_server => false,
787
- :description => 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation">Sidekiq instrumentation</a>.'
774
+ :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
788
775
  },
789
776
  :disable_dj => {
790
777
  :default => false,
791
778
  :public => true,
779
+ :deprecated => true,
792
780
  :type => Boolean,
793
781
  :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>.'
782
+ :description => deprecated_description(:'instrumentation.delayed_job', 'If `true`, disables [Delayed::Job instrumentation](/docs/agents/ruby-agent/background-jobs/delayedjob).'
783
+ )
795
784
  },
796
785
  :disable_sinatra => {
797
786
  :default => false,
798
787
  :public => true,
799
788
  :type => Boolean,
789
+ :deprecated => true,
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 `true` , disables [Sinatra instrumentation](/docs/agents/ruby-agent/frameworks/sinatra-support).' )
802
792
  },
803
793
  :disable_sinatra_auto_middleware => {
804
794
  :default => false,
805
795
  :public => true,
806
796
  :type => Boolean,
807
797
  :allowed_from_server => false,
808
- :description => 'If <code>true</code>, disables agent middleware for Sinatra. This middleware is responsible for advanced feature support such as <a href="https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/cross-application-tracing">cross application tracing</a>, <a href="https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/new-relic-browser">page load timing</a>, and <a href="https://docs.newrelic.com/docs/apm/applications-menu/events/view-apm-error-analytics">error collection</a>.'
798
+ :description => 'If `true`, disables agent middleware for Sinatra. This middleware is responsible for advanced feature support such as [cross application tracing](/docs/apm/transactions/cross-application-traces/cross-application-tracing), [page load timing](/docs/browser/new-relic-browser/getting-started/new-relic-browser), and [error collection](/docs/apm/applications-menu/events/view-apm-error-analytics).'
809
799
  },
810
800
  :disable_view_instrumentation => {
811
801
  :default => false,
812
802
  :public => true,
813
803
  :type => Boolean,
814
804
  :allowed_from_server => false,
815
- :description => 'If <code>true</code>, disables view instrumentation.'
805
+ :description => 'If `true`, disables view instrumentation.'
816
806
  },
817
807
  :disable_harvest_thread => {
818
808
  :default => false,
@@ -833,28 +823,187 @@ module NewRelic
833
823
  :public => true,
834
824
  :type => Boolean,
835
825
  :allowed_from_server => false,
836
- :description => 'If <code>true</code>, disables active record instrumentation.'
826
+ :description => 'If `true`, disables active record instrumentation.'
837
827
  },
838
828
  :prepend_active_record_instrumentation => {
839
829
  :default => false,
840
830
  :public => true,
841
831
  :type => Boolean,
842
832
  :allowed_from_server => false,
843
- :description => 'If <code>true</code>, uses Module.prepend rather than alias_method for ActiveRecord instrumentation.'
833
+ :description => 'If `true`, 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 `true`, 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
+ "`to_app` 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
+ "`to_app` 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,
854
1003
  :public => true,
855
1004
  :type => Boolean,
856
1005
  :allowed_from_server => false,
857
- :description => 'If <code>true</code>, disables DataMapper instrumentation.'
1006
+ :description => 'If `true`, disables DataMapper instrumentation.'
858
1007
  },
859
1008
  :disable_activejob => {
860
1009
  :default => false,
@@ -862,7 +1011,7 @@ module NewRelic
862
1011
  :type => Boolean,
863
1012
  :dynamic_name => true,
864
1013
  :allowed_from_server => false,
865
- :description => 'If <code>true</code>, disables ActiveJob instrumentation.'
1014
+ :description => 'If `true`, disables ActiveJob instrumentation.'
866
1015
  },
867
1016
  :disable_action_cable_instrumentation => {
868
1017
  :default => false,
@@ -870,7 +1019,7 @@ module NewRelic
870
1019
  :type => Boolean,
871
1020
  :dynamic_name => true,
872
1021
  :allowed_from_server => false,
873
- :description => 'If <code>true</code>, disables Action Cable instrumentation.'
1022
+ :description => 'If `true`, disables Action Cable instrumentation.'
874
1023
  },
875
1024
  :disable_active_storage => {
876
1025
  :default => false,
@@ -878,49 +1027,54 @@ module NewRelic
878
1027
  :type => Boolean,
879
1028
  :dynamic_name => true,
880
1029
  :allowed_from_server => false,
881
- :description => 'If <code>true</code>, disables ActiveStorage instrumentation.'
1030
+ :description => 'If `true`, disables ActiveStorage instrumentation.'
882
1031
  },
883
1032
  :disable_memcached => {
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 `true`, 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 `true`, 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 `true`, 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 `true`, 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 `true`, disables memcache instrumentation.')
917
1071
  },
918
1072
  :disable_gc_profiler => {
919
1073
  :default => false,
920
1074
  :public => true,
921
1075
  :type => Boolean,
922
1076
  :allowed_from_server => false,
923
- :description => 'If <code>true</code>, disables the use of GC::Profiler to measure time spent in garbage collection'
1077
+ :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
924
1078
  },
925
1079
  :'sidekiq.capture_params' => {
926
1080
  :default => false,
@@ -929,7 +1083,7 @@ module NewRelic
929
1083
  :allowed_from_server => false,
930
1084
  :dynamic_name => true,
931
1085
  :deprecated => true,
932
- :description => 'If <code>true</code>, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1086
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
933
1087
  },
934
1088
  :'resque.capture_params' => {
935
1089
  :default => false,
@@ -938,7 +1092,7 @@ module NewRelic
938
1092
  :allowed_from_server => false,
939
1093
  :dynamic_name => true,
940
1094
  :deprecated => true,
941
- :description => 'If <code>true</code>, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1095
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
942
1096
  },
943
1097
  :'resque.use_ruby_dns' => {
944
1098
  :default => true,
@@ -959,37 +1113,37 @@ module NewRelic
959
1113
  :public => true,
960
1114
  :type => Boolean,
961
1115
  :allowed_from_server => true,
962
- :description => 'If <code>true</code>, enables collection of <a href="https://docs.newrelic.com/docs/apm/traces/transaction-traces/transaction-traces">transaction traces</a>.'
1116
+ :description => 'If `true`, enables collection of [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces).'
963
1117
  },
964
1118
  :'transaction_tracer.transaction_threshold' => {
965
1119
  :default => DefaultSource.transaction_tracer_transaction_threshold,
966
1120
  :public => true,
967
1121
  :type => Float,
968
1122
  :allowed_from_server => true,
969
- :description => 'Specify a threshold in seconds. Transactions with a duration longer than this threshold are eligible for transaction traces. Specify a float value or the string <code><a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_f">apdex_f</a></code>.'
1123
+ :description => 'Specify a threshold in seconds. Transactions with a duration longer than this threshold are eligible for transaction traces. Specify a float value or the string `apdex_f`.'
970
1124
  },
971
1125
  :'transaction_tracer.record_sql' => {
972
1126
  :default => 'obfuscated',
973
1127
  :public => true,
974
1128
  :type => String,
975
1129
  :allowed_from_server => true,
976
- :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.</p>
1130
+ :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.
977
1131
 
978
- <p>By default, this is set to <code>obfuscated</code>, which strips out the numeric and string literals.</p>
1132
+ By default, this is set to `obfuscated`, which strips out the numeric and string literals.
979
1133
 
980
1134
  <ul>
981
- <li>If you do not want the agent to capture query information, set this to <code>none</code>.</li>
982
- <li>If you want the agent to capture all query information in its original form, set this to <code>raw</code>.</li>
983
- <li>When you enable <a href="/docs/agents/manage-apm-agents/configuration/high-security-mode">high security mode</a>, this is automatically set to <code>obfuscated</code>.</li>
1135
+ <li>If you do not want the agent to capture query information, set this to `none`.</li>
1136
+ <li>If you want the agent to capture all query information in its original form, set this to `raw`.</li>
1137
+ <li>When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.</li>
984
1138
  </ul>
985
- <p>' # Doc generator will wrap this in <p>...</p>
1139
+ '
986
1140
  },
987
1141
  :'transaction_tracer.record_redis_arguments' => {
988
1142
  :default => false,
989
1143
  :public => true,
990
1144
  :type => Boolean,
991
1145
  :allowed_from_server => false,
992
- :description => 'If <code>true</code>, the agent records Redis command arguments in transaction traces.'
1146
+ :description => 'If `true`, the agent records Redis command arguments in transaction traces.'
993
1147
  },
994
1148
  :'transaction_tracer.capture_attributes' => {
995
1149
  :default => true,
@@ -997,21 +1151,21 @@ module NewRelic
997
1151
  :type => Boolean,
998
1152
  :deprecated => true,
999
1153
  :allowed_from_server => false,
1000
- :description => 'Deprecated; use <a href="#transaction_tracer-attributes-enabled"><code>transaction_tracer.attributes.enabled</code></a> instead.'
1154
+ :description => 'Deprecated; use [`transaction_tracer.attributes.enabled`](#transaction_tracer-attributes-enabled) instead.'
1001
1155
  },
1002
1156
  :'transaction_tracer.explain_threshold' => {
1003
1157
  :default => 0.5,
1004
1158
  :public => true,
1005
1159
  :type => Float,
1006
1160
  :allowed_from_server => true,
1007
- :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when <code><a href="#transaction_tracer.explain_enabled">explain_enabled</a></code> is true.'
1161
+ :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when [`explain_enabled`](#transaction_tracer.explain_enabled) is true.'
1008
1162
  },
1009
1163
  :'transaction_tracer.explain_enabled' => {
1010
1164
  :default => true,
1011
1165
  :public => true,
1012
1166
  :type => Boolean,
1013
1167
  :allowed_from_server => true,
1014
- :description => 'If <code>true</code>, enables the collection of explain plans in transaction traces. This setting will also apply to explain plans in slow SQL traces if <a href="#slow_sql-explain_enabled"><code>slow_sql.explain_enabled</code></a> is not set separately.'
1168
+ :description => 'If `true`, enables the collection of explain plans in transaction traces. This setting will also apply to explain plans in slow SQL traces if [`slow_sql.explain_enabled`](#slow_sql-explain_enabled) is not set separately.'
1015
1169
  },
1016
1170
  :'transaction_tracer.stack_trace_threshold' => {
1017
1171
  :default => 0.5,
@@ -1032,7 +1186,7 @@ module NewRelic
1032
1186
  :public => true,
1033
1187
  :type => Boolean,
1034
1188
  :allowed_from_server => false,
1035
- :description => 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/sequel-instrumentation">Sequel instrumentation</a>.'
1189
+ :description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
1036
1190
  },
1037
1191
  :disable_database_instrumentation => {
1038
1192
  :default => false,
@@ -1040,7 +1194,7 @@ module NewRelic
1040
1194
  :type => Boolean,
1041
1195
  :allowed_from_server => false,
1042
1196
  :deprecated => true,
1043
- :description => 'Deprecated; use <a href="#disable_sequel_instrumentation"><code>disable_sequel_instrumentation</code></a> instead.'
1197
+ :description => 'Deprecated; use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1044
1198
  },
1045
1199
  :disable_mongo => {
1046
1200
  :default => false,
@@ -1048,56 +1202,59 @@ 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 `true`, the agent won\'t install [instrumentation for the Mongo gem](/docs/agents/ruby-agent/frameworks/mongo-instrumentation).')
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 `true`, the agent won\'t install [instrumentation for Redis](/docs/agents/ruby-agent/frameworks/redis-instrumentation).')
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,
1069
1226
  :public => true,
1070
1227
  :type => Boolean,
1071
1228
  :allowed_from_server => true,
1072
- :description => 'If <code>true</code>, the agent will collect metadata about messages and attach them as segment parameters.'
1229
+ :description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
1073
1230
  },
1074
1231
  :'slow_sql.enabled' => {
1075
1232
  :default => value_of(:'transaction_tracer.enabled'),
1076
1233
  :public => true,
1077
1234
  :type => Boolean,
1078
1235
  :allowed_from_server => true,
1079
- :description => 'If <code>true</code>, the agent collects <a href="https://docs.newrelic.com/docs/apm/applications-menu/monitoring/viewing-slow-query-details">slow SQL queries</a>.'
1236
+ :description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
1080
1237
  },
1081
1238
  :'slow_sql.explain_threshold' => {
1082
1239
  :default => value_of(:'transaction_tracer.explain_threshold'),
1083
1240
  :public => true,
1084
1241
  :type => Float,
1085
1242
  :allowed_from_server => true,
1086
- :description => 'Specify a threshold in seconds. The agent collects <a href="https://docs.newrelic.com/docs/apm/applications-menu/monitoring/viewing-slow-query-details">slow SQL queries</a> and explain plans that exceed this threshold.'
1243
+ :description => 'Specify a threshold in seconds. The agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details) and explain plans that exceed this threshold.'
1087
1244
  },
1088
1245
  :'slow_sql.explain_enabled' => {
1089
1246
  :default => value_of(:'transaction_tracer.explain_enabled'),
1090
1247
  :public => true,
1091
1248
  :type => Boolean,
1092
1249
  :allowed_from_server => true,
1093
- :description => 'If <code>true</code>, the agent collects explain plans in slow SQL queries. If this setting is omitted, the <a href="#transaction_tracer-explain_enabled"><code>transaction_tracer.explain_enabled</code></a> setting will be applied as the default setting for explain plans in slow SQL as well.'
1250
+ :description => 'If `true`, the agent collects explain plans in slow SQL queries. If this setting is omitted, the [`transaction_tracer.explain_enabled`](#transaction_tracer-explain_enabled) setting will be applied as the default setting for explain plans in slow SQL as well.'
1094
1251
  },
1095
1252
  :'slow_sql.record_sql' => {
1096
1253
  :default => value_of(:'transaction_tracer.record_sql'),
1097
1254
  :public => true,
1098
1255
  :type => String,
1099
1256
  :allowed_from_server => true,
1100
- :description => 'Defines an obfuscation level for slow SQL queries. Valid options are <code>obfuscated</code>, <code>raw</code>, or <code>none</code>).'
1257
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1101
1258
  },
1102
1259
  :'slow_sql.use_longer_sql_id' => {
1103
1260
  :default => false,
@@ -1111,21 +1268,21 @@ module NewRelic
1111
1268
  :public => true,
1112
1269
  :type => Boolean,
1113
1270
  :allowed_from_server => true,
1114
- :description => 'If <code>true</code>, the agent captures Mongo queries in transaction traces.'
1271
+ :description => 'If `true`, the agent captures Mongo queries in transaction traces.'
1115
1272
  },
1116
1273
  :'mongo.obfuscate_queries' => {
1117
1274
  :default => true,
1118
1275
  :public => true,
1119
1276
  :type => Boolean,
1120
1277
  :allowed_from_server => true,
1121
- :description => 'If <code>true</code>, the agent obfuscates Mongo queries in transaction traces.'
1278
+ :description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
1122
1279
  },
1123
1280
  :'error_collector.enabled' => {
1124
1281
  :default => true,
1125
1282
  :public => true,
1126
1283
  :type => Boolean,
1127
1284
  :allowed_from_server => true,
1128
- :description => 'If <code>true</code>, the agent captures traced errors and error count metrics.'
1285
+ :description => 'If `true`, the agent captures traced errors and error count metrics.'
1129
1286
  },
1130
1287
  :'error_collector.capture_attributes' => {
1131
1288
  :default => true,
@@ -1133,14 +1290,63 @@ module NewRelic
1133
1290
  :type => Boolean,
1134
1291
  :deprecated => true,
1135
1292
  :allowed_from_server => false,
1136
- :description => 'Deprecated; use <a href="#error_collector-attributes-enabled"><code>error_collector.attributes.enabled</code></a> instead.'
1293
+ :description => 'Deprecated; use [`error_collector.attributes.enabled`](#error_collector-attributes-enabled) instead.'
1137
1294
  },
1138
1295
  :'error_collector.ignore_errors' => {
1139
1296
  :default => 'ActionController::RoutingError,Sinatra::NotFound',
1140
1297
  :public => true,
1141
1298
  :type => String,
1142
1299
  :allowed_from_server => true,
1143
- :description => 'Specify a comma-delimited list of error classes that the agent should ignore.'
1300
+ :dynamic_name => true,
1301
+ :description => 'DEPRECATED; use `error_collector.ignore_classes` instead. Specify a comma-delimited list of error classes that the agent should ignore.'
1302
+ },
1303
+ :'error_collector.ignore_classes' => {
1304
+ :default => [],
1305
+ :public => true,
1306
+ :type => Array,
1307
+ :allowed_from_server => true,
1308
+ :dynamic_name => true,
1309
+ :description => 'A list of error classes that the agent should ignore. *Note: this setting cannot be set via environment variable.*'
1310
+ },
1311
+ :'error_collector.ignore_messages' => {
1312
+ :default => {},
1313
+ :public => true,
1314
+ :type => Hash,
1315
+ :allowed_from_server => true,
1316
+ :dynamic_name => true,
1317
+ :description => 'A map of error classes to a list of messages. When an error of one of the classes specified here occurs, if its error message contains one of the strings corresponding to it here, that error will be ignored. *Note: this setting cannot be set via environment variable.*'
1318
+ },
1319
+ :'error_collector.ignore_status_codes' => {
1320
+ :default => '',
1321
+ :public => true,
1322
+ :type => String,
1323
+ :allowed_from_server => true,
1324
+ :dynamic_name => true,
1325
+ :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be ignored.'
1326
+ },
1327
+ :'error_collector.expected_classes' => {
1328
+ :default => [],
1329
+ :public => true,
1330
+ :type => Array,
1331
+ :allowed_from_server => true,
1332
+ :dynamic_name => true,
1333
+ :description => 'A list of error classes that the agent should treat as expected. *Note: this setting cannot be set via environment variable.*'
1334
+ },
1335
+ :'error_collector.expected_messages' => {
1336
+ :default => {},
1337
+ :public => true,
1338
+ :type => Hash,
1339
+ :allowed_from_server => true,
1340
+ :dynamic_name => true,
1341
+ :description => 'A map of error classes to a list of messages. When an error of one of the classes specified here occurs, if its error message contains one of the strings corresponding to it here, that error will be treated as expected. *Note: this setting cannot be set via environment variable.*'
1342
+ },
1343
+ :'error_collector.expected_status_codes' => {
1344
+ :default => '',
1345
+ :public => true,
1346
+ :type => String,
1347
+ :allowed_from_server => true,
1348
+ :dynamic_name => true,
1349
+ :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
1144
1350
  },
1145
1351
  :'error_collector.max_backtrace_frames' => {
1146
1352
  :default => 50,
@@ -1155,14 +1361,14 @@ module NewRelic
1155
1361
  :type => Boolean,
1156
1362
  :allowed_from_server => true,
1157
1363
  :dynamic_name => true,
1158
- :description => 'If <code>true</code>, the agent collects <a href="https://docs.newrelic.com/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights">TransactionError events</a>.'
1364
+ :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
1159
1365
  },
1160
1366
  :'error_collector.max_event_samples_stored' => {
1161
1367
  :default => 100,
1162
1368
  :public => true,
1163
1369
  :type => Integer,
1164
1370
  :allowed_from_server => true,
1165
- :description => 'Defines the maximum number of <a href="https://docs.newrelic.com/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights">TransactionError events</a> sent to Insights per harvest cycle.'
1371
+ :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) sent to Insights per harvest cycle.'
1166
1372
  },
1167
1373
  :'rum.enabled' => {
1168
1374
  :default => true,
@@ -1211,7 +1417,7 @@ module NewRelic
1211
1417
  :public => true,
1212
1418
  :type => Boolean,
1213
1419
  :allowed_from_server => true,
1214
- :description => 'If <code>true</code>, enables <a href="https://docs.newrelic.com/docs/browser/new-relic-browser/installation-configuration/adding-apps-new-relic-browser#select-apm-app">auto-injection</a> of the JavaScript header for page load timing (sometimes referred to as real user monitoring or RUM).'
1420
+ :description => 'If `true`, enables [auto-injection](/docs/browser/new-relic-browser/installation-configuration/adding-apps-new-relic-browser#select-apm-app) of the JavaScript header for page load timing (sometimes referred to as real user monitoring or RUM).'
1215
1421
  },
1216
1422
  :'browser_monitoring.capture_attributes' => {
1217
1423
  :default => false,
@@ -1219,7 +1425,7 @@ module NewRelic
1219
1425
  :type => Boolean,
1220
1426
  :deprecated => true,
1221
1427
  :allowed_from_server => false,
1222
- :description => 'Deprecated; use <a href="#browser_monitoring-attributes-enabled"><code>browser_monitoring.attributes.enabled</code></a> instead.'
1428
+ :description => 'Deprecated; use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
1223
1429
  },
1224
1430
  :'browser_monitoring.loader' => {
1225
1431
  :default => DefaultSource.browser_monitoring_loader,
@@ -1233,7 +1439,7 @@ module NewRelic
1233
1439
  :public => false,
1234
1440
  :type => String,
1235
1441
  :allowed_from_server => true,
1236
- :description => 'Version of JavaScript agent loader (returned from the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>.)'
1442
+ :description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
1237
1443
  },
1238
1444
  :'browser_monitoring.debug' => {
1239
1445
  :default => false,
@@ -1277,7 +1483,7 @@ module NewRelic
1277
1483
  :public => true,
1278
1484
  :type => Boolean,
1279
1485
  :allowed_from_server => true,
1280
- :description => 'If <code>true</code>, enables <a href="https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/cross-application-tracing">cross-application tracing</a>.'
1486
+ :description => 'If `true`, enables [cross-application tracing](/docs/apm/transactions/cross-application-traces/cross-application-tracing).'
1281
1487
  },
1282
1488
  :cross_application_tracing => {
1283
1489
  :default => nil,
@@ -1307,7 +1513,7 @@ module NewRelic
1307
1513
  :public => true,
1308
1514
  :type => Boolean,
1309
1515
  :allowed_from_server => true,
1310
- :description => 'If <code>true</code>, enables use of the <a href="https://docs.newrelic.com/docs/apm/applications-menu/events/thread-profiler-tool">thread profiler</a>.'
1516
+ :description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
1311
1517
  },
1312
1518
  :'thread_profiler.max_profile_overhead' => {
1313
1519
  :default => 0.05,
@@ -1321,14 +1527,14 @@ module NewRelic
1321
1527
  :public => true,
1322
1528
  :type => String,
1323
1529
  :allowed_from_server => false,
1324
- :description => 'Specifies a marshaller for transmitting data to the New Relic <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>. Currently <code>json</code> is the only valid value for this setting.'
1530
+ :description => 'Specifies a marshaller for transmitting data to the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector). Currently `json` is the only valid value for this setting.'
1325
1531
  },
1326
1532
  :'analytics_events.enabled' => {
1327
1533
  :default => true,
1328
1534
  :public => true,
1329
1535
  :type => Boolean,
1330
1536
  :allowed_from_server => true,
1331
- :description => 'If <code>true</code>, enables analytics event sampling.'
1537
+ :description => 'If `true`, enables analytics event sampling.'
1332
1538
  },
1333
1539
  :'analytics_events.max_samples_stored' => {
1334
1540
  :default => 1200,
@@ -1343,7 +1549,7 @@ module NewRelic
1343
1549
  :type => Boolean,
1344
1550
  :deprecated => true,
1345
1551
  :allowed_from_server => false,
1346
- :description => 'Deprecated; use <a href="#transaction_events-attributes-enabled"><code>transaction_events.attributes.enabled</code></a> instead.'
1552
+ :description => 'Deprecated; use [`transaction_events.attributes.enabled`](#transaction_events-attributes-enabled) instead.'
1347
1553
  },
1348
1554
  :restart_thread_in_children => {
1349
1555
  :default => true,
@@ -1372,7 +1578,7 @@ module NewRelic
1372
1578
  :type => Boolean,
1373
1579
  :dynamic_name => true,
1374
1580
  :allowed_from_server => false,
1375
- :description => 'If <code>true</code>, the agent won\'t <a href="https://docs.newrelic.com/docs/agents/ruby-agent/features/ruby-vm-measurements">sample performance measurements from the Ruby VM</a>.'
1581
+ :description => 'If `true`, the agent won\'t [sample performance measurements from the Ruby VM](/docs/agents/ruby-agent/features/ruby-vm-measurements).'
1376
1582
  },
1377
1583
  :disable_memory_sampler => {
1378
1584
  :default => false,
@@ -1380,7 +1586,7 @@ module NewRelic
1380
1586
  :type => Boolean,
1381
1587
  :dynamic_name => true,
1382
1588
  :allowed_from_server => false,
1383
- :description => 'If <code>true</code>, the agent won\'t sample the memory usage of the host process.'
1589
+ :description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
1384
1590
  },
1385
1591
  :disable_cpu_sampler => {
1386
1592
  :default => false,
@@ -1388,7 +1594,7 @@ module NewRelic
1388
1594
  :type => Boolean,
1389
1595
  :dynamic_name => true,
1390
1596
  :allowed_from_server => false,
1391
- :description => 'If <code>true</code>, the agent won\'t sample the CPU usage of the host process.'
1597
+ :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1392
1598
  },
1393
1599
  :disable_delayed_job_sampler => {
1394
1600
  :default => false,
@@ -1396,33 +1602,7 @@ module NewRelic
1396
1602
  :type => Boolean,
1397
1603
  :dynamic_name => true,
1398
1604
  :allowed_from_server => false,
1399
- :description => 'If <code>true</code>, the agent won\'t measure the depth of Delayed Job queues.'
1400
- },
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.'
1605
+ :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1426
1606
  },
1427
1607
  :disable_active_record_notifications => {
1428
1608
  :default => false,
@@ -1430,39 +1610,51 @@ module NewRelic
1430
1610
  :type => Boolean,
1431
1611
  :dynamic_name => true,
1432
1612
  :allowed_from_server => false,
1433
- :description => 'If <code>true</code>, disables instrumentation for ActiveRecord 4, 5, and 6.'
1613
+ :description => 'If `true`, disables instrumentation for ActiveRecord 4, 5, and 6.'
1434
1614
  },
1435
1615
  :disable_bunny => {
1436
1616
  :default => false,
1437
1617
  :public => true,
1438
1618
  :type => Boolean,
1619
+ :deprecated => true,
1439
1620
  :dynamic_name => true,
1440
1621
  :allowed_from_server => false,
1441
- :description => 'If <code>true</code>, disables instrumentation for the bunny gem.'
1622
+ :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1442
1623
  },
1443
1624
  :disable_curb => {
1444
1625
  :default => false,
1445
1626
  :public => true,
1446
1627
  :type => Boolean,
1628
+ :deprecated => true,
1447
1629
  :dynamic_name => true,
1448
1630
  :allowed_from_server => false,
1449
- :description => 'If <code>true</code>, disables instrumentation for the curb gem.'
1631
+ :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.' )
1450
1632
  },
1451
1633
  :disable_excon => {
1452
1634
  :default => false,
1453
1635
  :public => true,
1454
1636
  :type => Boolean,
1455
1637
  :dynamic_name => true,
1638
+ :deprecated => true,
1456
1639
  :allowed_from_server => false,
1457
- :description => 'If <code>true</code>, disables instrumentation for the excon gem.'
1640
+ :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1641
+ },
1642
+ :'instrumentation.excon' => {
1643
+ :default => instrumentation_value_of(:disable_excon),
1644
+ :public => :true,
1645
+ :type => String,
1646
+ :dynamic_name => true,
1647
+ :allowed_from_server => false,
1648
+ :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1458
1649
  },
1459
1650
  :disable_httpclient => {
1460
1651
  :default => false,
1461
1652
  :public => true,
1462
1653
  :type => Boolean,
1463
1654
  :dynamic_name => true,
1655
+ :deprecated => true,
1464
1656
  :allowed_from_server => false,
1465
- :description => 'If <code>true</code>, disables instrumentation for the httpclient gem.'
1657
+ :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
1466
1658
  },
1467
1659
  :disable_net_http => {
1468
1660
  :default => false,
@@ -1470,7 +1662,10 @@ module NewRelic
1470
1662
  :type => Boolean,
1471
1663
  :dynamic_name => true,
1472
1664
  :allowed_from_server => false,
1473
- :description => 'If <code>true</code>, disables instrumentation for Net::HTTP.'
1665
+ :deprecated => true,
1666
+ :description => deprecated_description(:'instrumentation.net_http',
1667
+ 'If `true`, disables instrumentation for Net::HTTP.'
1668
+ )
1474
1669
  },
1475
1670
  :disable_rack => {
1476
1671
  :default => false,
@@ -1478,7 +1673,8 @@ module NewRelic
1478
1673
  :type => Boolean,
1479
1674
  :dynamic_name => true,
1480
1675
  :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.'
1676
+ :deprecated => true,
1677
+ :description => deprecated_description(:'instrumentation.rack', 'If `true`, prevents the agent from hooking into the `to_app` method in Rack::Builder to find gems to instrument during application startup.')
1482
1678
  },
1483
1679
  :disable_rack_urlmap => {
1484
1680
  :default => false,
@@ -1486,7 +1682,8 @@ module NewRelic
1486
1682
  :type => Boolean,
1487
1683
  :dynamic_name => true,
1488
1684
  :allowed_from_server => false,
1489
- :description => 'If <code>true</code>, prevents the agent from hooking into Rack::URLMap to install middleware tracing.'
1685
+ :deprecated => true,
1686
+ :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1490
1687
  },
1491
1688
  :disable_puma_rack => {
1492
1689
  :default => value_of(:disable_rack),
@@ -1494,7 +1691,8 @@ module NewRelic
1494
1691
  :type => Boolean,
1495
1692
  :dynamic_name => true,
1496
1693
  :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.'
1694
+ :deprecated => true,
1695
+ :description => deprecated_description(:'instrumentation.puma_rack', 'If `true`, prevents the agent from hooking into the `to_app` method in Puma::Rack::Builder to find gems to instrument during application startup.')
1498
1696
  },
1499
1697
  :disable_puma_rack_urlmap => {
1500
1698
  :default => value_of(:disable_rack_urlmap),
@@ -1502,30 +1700,33 @@ module NewRelic
1502
1700
  :type => Boolean,
1503
1701
  :dynamic_name => true,
1504
1702
  :allowed_from_server => false,
1505
- :description => 'If <code>true</code>, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.'
1703
+ :deprecated => true,
1704
+ :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If `true`, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1506
1705
  },
1507
1706
  :disable_typhoeus => {
1508
1707
  :default => false,
1509
1708
  :public => true,
1510
1709
  :type => Boolean,
1511
1710
  :dynamic_name => true,
1711
+ :deprecated => true,
1512
1712
  :allowed_from_server => false,
1513
- :description => 'If <code>true</code>, the agent won\'t install instrumentation for the typhoeus gem.'
1713
+ :description => deprecated_description(:'instrumentation.typhoeus', 'If `true`, the agent won\'t install instrumentation for the typhoeus gem.' )
1514
1714
  },
1515
1715
  :disable_httprb => {
1516
1716
  :default => false,
1517
1717
  :public => true,
1518
1718
  :type => Boolean,
1519
1719
  :dynamic_name => true,
1720
+ :deprecated => true,
1520
1721
  :allowed_from_server => false,
1521
- :description => 'If <code>true</code>, the agent won\'t install instrumentation for the http.rb gem.'
1722
+ :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.' )
1522
1723
  },
1523
1724
  :disable_middleware_instrumentation => {
1524
1725
  :default => false,
1525
1726
  :public => true,
1526
1727
  :type => Boolean,
1527
1728
  :allowed_from_server => false,
1528
- :description => 'If <code>true</code>, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1729
+ :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1529
1730
  },
1530
1731
  :disable_rails_middleware => {
1531
1732
  :default => false,
@@ -1539,7 +1740,7 @@ module NewRelic
1539
1740
  :public => true,
1540
1741
  :type => Boolean,
1541
1742
  :allowed_from_server => false,
1542
- :description => 'If <code>true</code>, the agent uses Heroku dyno names as the hostname.'
1743
+ :description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
1543
1744
  },
1544
1745
  :'heroku.dyno_name_prefixes_to_shorten' => {
1545
1746
  :default => ['scheduler', 'run'],
@@ -1554,14 +1755,14 @@ module NewRelic
1554
1755
  :public => true,
1555
1756
  :type => String,
1556
1757
  :allowed_from_server => false,
1557
- :description => 'Specify a custom host name for <a href="https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/add-rename-remove-hosts#display_name">display in the New Relic UI</a>.'
1758
+ :description => 'Specify a custom host name for [display in the New Relic UI](/docs/apm/new-relic-apm/maintenance/add-rename-remove-hosts#display_name).'
1558
1759
  },
1559
1760
  :labels => {
1560
1761
  :default => '',
1561
1762
  :public => true,
1562
1763
  :type => String,
1563
1764
  :allowed_from_server => false,
1564
- :description => 'A dictionary of <a href="/docs/data-analysis/user-interface-functions/labels-categories-organize-your-apps-servers">label names</a> and values that will be applied to the data sent from this agent. May also be expressed as a semicolon-delimited <code>;</code> string of colon-separated <code>:</code> pairs. For example, <code><var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var></code>.'
1765
+ :description => 'A dictionary of [label names](/docs/data-analysis/user-interface-functions/labels-categories-organize-your-apps-servers) and values that will be applied to the data sent from this agent. May also be expressed as a semicolon-delimited `;` string of colon-separated `:` pairs. For example, `<var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var>`.'
1565
1766
  },
1566
1767
  :aggressive_keepalive => {
1567
1768
  :default => true,
@@ -1612,7 +1813,7 @@ module NewRelic
1612
1813
  :public => true,
1613
1814
  :type => Boolean,
1614
1815
  :allowed_from_server => true,
1615
- :description => 'If <code>true</code>, the agent captures <a href="/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents">New Relic Insights custom events</a>.'
1816
+ :description => 'If `true`, the agent captures [New Relic Insights custom events](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents).'
1616
1817
  },
1617
1818
  :'custom_insights_events.max_samples_stored' => {
1618
1819
  :default => 1000,
@@ -1627,63 +1828,77 @@ module NewRelic
1627
1828
  :public => false,
1628
1829
  :type => Boolean,
1629
1830
  :allowed_from_server => false,
1630
- :description => 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1831
+ :deprecated => true,
1832
+ :description => deprecated_description(:'instrumentation.grape',
1833
+ 'If `true`, the agent won\'t install Grape instrumentation.'
1834
+ )
1631
1835
  },
1632
1836
  :disable_grape => {
1633
1837
  :default => false,
1634
1838
  :public => true,
1635
1839
  :type => Boolean,
1636
1840
  :allowed_from_server => false,
1637
- :description => 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1841
+ :deprecated => true,
1842
+ :description => deprecated_description(:'instrumentation.grape',
1843
+ 'If `true`, the agent won\'t install Grape instrumentation.'
1844
+ )
1845
+ },
1846
+ :'instrumentation.grape' => {
1847
+ :default => instrumentation_value_of(:disable_grape_instrumentation),
1848
+ :public => :true,
1849
+ :type => String,
1850
+ :dynamic_name => true,
1851
+ :allowed_from_server => false,
1852
+ :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1638
1853
  },
1639
1854
  :'attributes.enabled' => {
1640
1855
  :default => true,
1641
1856
  :public => true,
1642
1857
  :type => Boolean,
1643
1858
  :allowed_from_server => false,
1644
- :description => 'If <code>true</code>, enables capture of attributes for all destinations.'
1859
+ :description => 'If `true`, enables capture of attributes for all destinations.'
1645
1860
  },
1646
1861
  :'transaction_tracer.attributes.enabled' => {
1647
1862
  :default => value_of(:'transaction_tracer.capture_attributes'),
1648
1863
  :public => true,
1649
1864
  :type => Boolean,
1650
1865
  :allowed_from_server => false,
1651
- :description => 'If <code>true</code>, the agent captures attributes from transaction traces.'
1866
+ :description => 'If `true`, the agent captures attributes from transaction traces.'
1652
1867
  },
1653
1868
  :'transaction_events.attributes.enabled' => {
1654
1869
  :default => value_of(:'analytics_events.capture_attributes'),
1655
1870
  :public => true,
1656
1871
  :type => Boolean,
1657
1872
  :allowed_from_server => false,
1658
- :description => 'If <code>true</code>, the agent captures attributes from transaction events.'
1873
+ :description => 'If `true`, the agent captures attributes from transaction events.'
1659
1874
  },
1660
1875
  :'error_collector.attributes.enabled' => {
1661
1876
  :default => value_of(:'error_collector.capture_attributes'),
1662
1877
  :public => true,
1663
1878
  :type => Boolean,
1664
1879
  :allowed_from_server => false,
1665
- :description => 'If <code>true</code>, the agent captures attributes from error collection.'
1880
+ :description => 'If `true`, the agent captures attributes from error collection.'
1666
1881
  },
1667
1882
  :'browser_monitoring.attributes.enabled' => {
1668
1883
  :default => value_of(:'browser_monitoring.capture_attributes'),
1669
1884
  :public => true,
1670
1885
  :type => Boolean,
1671
1886
  :allowed_from_server => false,
1672
- :description => 'If <code>true</code>, the agent captures attributes from browser monitoring.'
1887
+ :description => 'If `true`, the agent captures attributes from browser monitoring.'
1673
1888
  },
1674
1889
  :'span_events.attributes.enabled' => {
1675
1890
  :default => true,
1676
1891
  :public => true,
1677
1892
  :type => Boolean,
1678
1893
  :allowed_from_server => false,
1679
- :description => 'If <code>true</code>, the agent captures attributes on span events.'
1894
+ :description => 'If `true`, the agent captures attributes on span events.'
1680
1895
  },
1681
1896
  :'transaction_segments.attributes.enabled' => {
1682
1897
  :default => true,
1683
1898
  :public => true,
1684
1899
  :type => Boolean,
1685
1900
  :allowed_from_server => false,
1686
- :description => 'If <code>true</code>, the agent captures attributes on transaction segments.'
1901
+ :description => 'If `true`, the agent captures attributes on transaction segments.'
1687
1902
  },
1688
1903
  :'attributes.exclude' => {
1689
1904
  :default => [],
@@ -1691,7 +1906,7 @@ module NewRelic
1691
1906
  :type => Array,
1692
1907
  :allowed_from_server => false,
1693
1908
  :transform => DefaultSource.method(:convert_to_list),
1694
- :description => 'Prefix of attributes to exclude from all destinations. Allows <code>*</code> as wildcard at end.'
1909
+ :description => 'Prefix of attributes to exclude from all destinations. Allows `*` as wildcard at end.'
1695
1910
  },
1696
1911
  :'transaction_tracer.attributes.exclude' => {
1697
1912
  :default => [],
@@ -1699,7 +1914,7 @@ module NewRelic
1699
1914
  :type => Array,
1700
1915
  :allowed_from_server => false,
1701
1916
  :transform => DefaultSource.method(:convert_to_list),
1702
- :description => 'Prefix of attributes to exclude from transaction traces. Allows <code>*</code> as wildcard at end.'
1917
+ :description => 'Prefix of attributes to exclude from transaction traces. Allows `*` as wildcard at end.'
1703
1918
  },
1704
1919
  :'transaction_events.attributes.exclude' => {
1705
1920
  :default => [],
@@ -1707,7 +1922,7 @@ module NewRelic
1707
1922
  :type => Array,
1708
1923
  :allowed_from_server => false,
1709
1924
  :transform => DefaultSource.method(:convert_to_list),
1710
- :description => 'Prefix of attributes to exclude from transaction events. Allows <code>*</code> as wildcard at end.'
1925
+ :description => 'Prefix of attributes to exclude from transaction events. Allows `*` as wildcard at end.'
1711
1926
  },
1712
1927
  :'error_collector.attributes.exclude' => {
1713
1928
  :default => [],
@@ -1715,7 +1930,7 @@ module NewRelic
1715
1930
  :type => Array,
1716
1931
  :allowed_from_server => false,
1717
1932
  :transform => DefaultSource.method(:convert_to_list),
1718
- :description => 'Prefix of attributes to exclude from error collection. Allows <code>*</code> as wildcard at end.'
1933
+ :description => 'Prefix of attributes to exclude from error collection. Allows `*` as wildcard at end.'
1719
1934
  },
1720
1935
  :'browser_monitoring.attributes.exclude' => {
1721
1936
  :default => [],
@@ -1723,7 +1938,7 @@ module NewRelic
1723
1938
  :type => Array,
1724
1939
  :allowed_from_server => false,
1725
1940
  :transform => DefaultSource.method(:convert_to_list),
1726
- :description => 'Prefix of attributes to exclude from browser monitoring. Allows <code>*</code> as wildcard at end.'
1941
+ :description => 'Prefix of attributes to exclude from browser monitoring. Allows `*` as wildcard at end.'
1727
1942
  },
1728
1943
  :'span_events.attributes.exclude' => {
1729
1944
  :default => [],
@@ -1731,7 +1946,7 @@ module NewRelic
1731
1946
  :type => Array,
1732
1947
  :allowed_from_server => false,
1733
1948
  :transform => DefaultSource.method(:convert_to_list),
1734
- :description => 'Prefix of attributes to exclude from span events. Allows <code>*</code> as wildcard at end.'
1949
+ :description => 'Prefix of attributes to exclude from span events. Allows `*` as wildcard at end.'
1735
1950
  },
1736
1951
  :'transaction_segments.attributes.exclude' => {
1737
1952
  :default => [],
@@ -1739,7 +1954,7 @@ module NewRelic
1739
1954
  :type => Array,
1740
1955
  :allowed_from_server => false,
1741
1956
  :transform => DefaultSource.method(:convert_to_list),
1742
- :description => 'Prefix of attributes to exclude from transaction segments. Allows <code>*</code> as wildcard at end.'
1957
+ :description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
1743
1958
  },
1744
1959
  :'attributes.include' => {
1745
1960
  :default => [],
@@ -1747,7 +1962,7 @@ module NewRelic
1747
1962
  :type => Array,
1748
1963
  :allowed_from_server => false,
1749
1964
  :transform => DefaultSource.method(:convert_to_list),
1750
- :description => 'Prefix of attributes to include in all destinations. Allows <code>*</code> as wildcard at end.'
1965
+ :description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
1751
1966
  },
1752
1967
  :'transaction_tracer.attributes.include' => {
1753
1968
  :default => [],
@@ -1755,7 +1970,7 @@ module NewRelic
1755
1970
  :type => Array,
1756
1971
  :allowed_from_server => false,
1757
1972
  :transform => DefaultSource.method(:convert_to_list),
1758
- :description => 'Prefix of attributes to include in transaction traces. Allows <code>*</code> as wildcard at end.'
1973
+ :description => 'Prefix of attributes to include in transaction traces. Allows `*` as wildcard at end.'
1759
1974
  },
1760
1975
  :'transaction_events.attributes.include' => {
1761
1976
  :default => [],
@@ -1763,7 +1978,7 @@ module NewRelic
1763
1978
  :type => Array,
1764
1979
  :allowed_from_server => false,
1765
1980
  :transform => DefaultSource.method(:convert_to_list),
1766
- :description => 'Prefix of attributes to include in transaction events. Allows <code>*</code> as wildcard at end.'
1981
+ :description => 'Prefix of attributes to include in transaction events. Allows `*` as wildcard at end.'
1767
1982
  },
1768
1983
  :'error_collector.attributes.include' => {
1769
1984
  :default => [],
@@ -1771,7 +1986,7 @@ module NewRelic
1771
1986
  :type => Array,
1772
1987
  :allowed_from_server => false,
1773
1988
  :transform => DefaultSource.method(:convert_to_list),
1774
- :description => 'Prefix of attributes to include in error collection. Allows <code>*</code> as wildcard at end.'
1989
+ :description => 'Prefix of attributes to include in error collection. Allows `*` as wildcard at end.'
1775
1990
  },
1776
1991
  :'browser_monitoring.attributes.include' => {
1777
1992
  :default => [],
@@ -1779,7 +1994,7 @@ module NewRelic
1779
1994
  :type => Array,
1780
1995
  :allowed_from_server => false,
1781
1996
  :transform => DefaultSource.method(:convert_to_list),
1782
- :description => 'Prefix of attributes to include in browser monitoring. Allows <code>*</code> as wildcard at end.'
1997
+ :description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
1783
1998
  },
1784
1999
  :'span_events.attributes.include' => {
1785
2000
  :default => [],
@@ -1787,7 +2002,7 @@ module NewRelic
1787
2002
  :type => Array,
1788
2003
  :allowed_from_server => false,
1789
2004
  :transform => DefaultSource.method(:convert_to_list),
1790
- :description => 'Prefix of attributes to include on span events. Allows <code>*</code> as wildcard at end.'
2005
+ :description => 'Prefix of attributes to include on span events. Allows `*` as wildcard at end.'
1791
2006
  },
1792
2007
  :'transaction_segments.attributes.include' => {
1793
2008
  :default => [],
@@ -1795,14 +2010,14 @@ module NewRelic
1795
2010
  :type => Array,
1796
2011
  :allowed_from_server => false,
1797
2012
  :transform => DefaultSource.method(:convert_to_list),
1798
- :description => 'Prefix of attributes to include on transaction segments. Allows <code>*</code> as wildcard at end.'
2013
+ :description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
1799
2014
  },
1800
2015
  :'custom_attributes.enabled' => {
1801
2016
  :default => true,
1802
2017
  :public => true,
1803
2018
  :type => Boolean,
1804
2019
  :allowed_from_server => false,
1805
- :description => 'If <code>false</code>, custom attributes will not be sent on Insights events.'
2020
+ :description => 'If `false`, custom attributes will not be sent on Insights events.'
1806
2021
  },
1807
2022
  :'utilization.detect_aws' => {
1808
2023
  :default => true,
@@ -1810,7 +2025,7 @@ module NewRelic
1810
2025
  :type => Boolean,
1811
2026
  :allowed_from_server => false,
1812
2027
  :dynamic_name => true,
1813
- :description => 'If <code>true</code>, the agent automatically detects that it is running in an AWS environment.'
2028
+ :description => 'If `true`, the agent automatically detects that it is running in an AWS environment.'
1814
2029
  },
1815
2030
  :'utilization.detect_azure' => {
1816
2031
  :default => true,
@@ -1818,7 +2033,7 @@ module NewRelic
1818
2033
  :type => Boolean,
1819
2034
  :allowed_from_server => false,
1820
2035
  :dynamic_name => true,
1821
- :description => 'If <code>true</code>, the agent automatically detects that it is running in an Azure environment.'
2036
+ :description => 'If `true`, the agent automatically detects that it is running in an Azure environment.'
1822
2037
  },
1823
2038
  :'utilization.detect_gcp' => {
1824
2039
  :default => true,
@@ -1826,7 +2041,7 @@ module NewRelic
1826
2041
  :type => Boolean,
1827
2042
  :allowed_from_server => false,
1828
2043
  :dynamic_name => true,
1829
- :description => 'If <code>true</code>, the agent automatically detects that it is running in an Google Cloud Platform environment.'
2044
+ :description => 'If `true`, the agent automatically detects that it is running in an Google Cloud Platform environment.'
1830
2045
  },
1831
2046
  :'utilization.detect_pcf' => {
1832
2047
  :default => true,
@@ -1834,21 +2049,21 @@ module NewRelic
1834
2049
  :type => Boolean,
1835
2050
  :allowed_from_server => false,
1836
2051
  :dynamic_name => true,
1837
- :description => 'If <code>true</code>, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
2052
+ :description => 'If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
1838
2053
  },
1839
2054
  :'utilization.detect_docker' => {
1840
2055
  :default => true,
1841
2056
  :public => true,
1842
2057
  :type => Boolean,
1843
2058
  :allowed_from_server => false,
1844
- :description => 'If <code>true</code>, the agent automatically detects that it is running in Docker.'
2059
+ :description => 'If `true`, the agent automatically detects that it is running in Docker.'
1845
2060
  },
1846
2061
  :'utilization.detect_kubernetes' => {
1847
2062
  :default => true,
1848
2063
  :public => true,
1849
2064
  :type => Boolean,
1850
2065
  :allowed_from_server => false,
1851
- :description => 'If <code>true</code>, the agent automatically detects that it is running in Kubernetes.'
2066
+ :description => 'If `true`, the agent automatically detects that it is running in Kubernetes.'
1852
2067
  },
1853
2068
  :'utilization.billing_hostname' => {
1854
2069
  :default => nil,
@@ -1879,21 +2094,21 @@ module NewRelic
1879
2094
  :public => true,
1880
2095
  :type => Boolean,
1881
2096
  :allowed_from_server => false,
1882
- :description => 'If <code>false</code>, the agent will not report datastore instance metrics, nor add <code>host</code> or <code>port_path_or_id</code> parameters to transaction or slow sql traces.'
2097
+ :description => 'If `false`, the agent will not report datastore instance metrics, nor add `host` or `port_path_or_id` parameters to transaction or slow SQL traces.'
1883
2098
  },
1884
2099
  :'datastore_tracer.database_name_reporting.enabled' => {
1885
2100
  :default => true,
1886
2101
  :public => true,
1887
2102
  :type => Boolean,
1888
2103
  :allowed_from_server => false,
1889
- :description => 'If <code>false</code>, the agent will not add <code>database_name</code> parameter to transaction or slow sql traces.'
2104
+ :description => 'If `false`, the agent will not add `database_name` parameter to transaction or slow sql traces.'
1890
2105
  },
1891
2106
  :'clear_transaction_state_after_fork' => {
1892
2107
  :default => false,
1893
2108
  :public => true,
1894
2109
  :type => Boolean,
1895
2110
  :allowed_from_server => false,
1896
- :description => 'If <code>true</code>, the agent will clear <code>Tracer::State</code> in <code>Agent.drop_buffered_data</code>.'
2111
+ :description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
1897
2112
  },
1898
2113
  :account_id => {
1899
2114
  :default => nil,
@@ -1915,8 +2130,8 @@ module NewRelic
1915
2130
  :default => false,
1916
2131
  :public => true,
1917
2132
  :type => Boolean,
1918
- :allowed_from_server => false,
1919
- :description => 'Distributed tracing lets you see the path that a request takes through your distributed system. Enabling distributed tracing changes the behavior of some New Relic features, so carefully consult the <a href="https://docs.newrelic.com/docs/transition-guide-distributed-tracing">transition guide</a> before you enable this feature.'
2133
+ :allowed_from_server => true,
2134
+ :description => 'Distributed tracing lets you see the path that a request takes through your distributed system. Enabling distributed tracing changes the behavior of some New Relic features, so carefully consult the [transition guide](/docs/transition-guide-distributed-tracing) before you enable this feature.'
1920
2135
  },
1921
2136
  :trusted_account_key => {
1922
2137
  :default => nil,
@@ -1945,7 +2160,7 @@ module NewRelic
1945
2160
  :public => true,
1946
2161
  :type => Boolean,
1947
2162
  :allowed_from_server => true,
1948
- :description => 'If <code>true</code>, enables span event sampling.'
2163
+ :description => 'If `true`, enables span event sampling.'
1949
2164
  },
1950
2165
  :'span_events.queue_size' => {
1951
2166
  :default => 10_000,