newrelic_rpm 8.16.0 → 9.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +4 -106
  4. data/.rubocop_todo.yml +13 -14
  5. data/.simplecov +2 -1
  6. data/Brewfile +1 -0
  7. data/CHANGELOG.md +225 -0
  8. data/CONTRIBUTING.md +1 -1
  9. data/Gemfile +1 -1
  10. data/Guardfile +8 -7
  11. data/README.md +3 -2
  12. data/Rakefile +8 -8
  13. data/Thorfile +1 -1
  14. data/bin/newrelic +1 -0
  15. data/bin/newrelic_cmd +1 -0
  16. data/bin/nrdebug +36 -36
  17. data/init.rb +1 -1
  18. data/lib/new_relic/agent/agent.rb +3 -16
  19. data/lib/new_relic/agent/agent_helpers/connect.rb +5 -10
  20. data/lib/new_relic/agent/agent_helpers/harvest.rb +4 -4
  21. data/lib/new_relic/agent/agent_helpers/shutdown.rb +5 -5
  22. data/lib/new_relic/agent/agent_helpers/special_startup.rb +3 -4
  23. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +47 -39
  24. data/lib/new_relic/agent/agent_helpers/startup.rb +13 -13
  25. data/lib/new_relic/agent/agent_helpers/transmit.rb +6 -6
  26. data/lib/new_relic/agent/agent_logger.rb +9 -9
  27. data/lib/new_relic/agent/attribute_filter.rb +2 -4
  28. data/lib/new_relic/agent/attribute_processing.rb +2 -2
  29. data/lib/new_relic/agent/audit_logger.rb +5 -5
  30. data/lib/new_relic/agent/autostart.rb +1 -1
  31. data/lib/new_relic/agent/commands/agent_command.rb +2 -2
  32. data/lib/new_relic/agent/commands/agent_command_router.rb +5 -4
  33. data/lib/new_relic/agent/commands/thread_profiler_session.rb +8 -8
  34. data/lib/new_relic/agent/configuration/default_source.rb +200 -588
  35. data/lib/new_relic/agent/configuration/environment_source.rb +2 -2
  36. data/lib/new_relic/agent/configuration/high_security_source.rb +3 -5
  37. data/lib/new_relic/agent/configuration/manager.rb +15 -2
  38. data/lib/new_relic/agent/configuration/security_policy_source.rb +10 -26
  39. data/lib/new_relic/agent/configuration/server_source.rb +24 -24
  40. data/lib/new_relic/agent/configuration/yaml_source.rb +4 -4
  41. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  42. data/lib/new_relic/agent/connect/response_handler.rb +1 -1
  43. data/lib/new_relic/agent/custom_event_aggregator.rb +4 -4
  44. data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
  45. data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
  46. data/lib/new_relic/agent/database/obfuscator.rb +2 -2
  47. data/lib/new_relic/agent/database.rb +4 -18
  48. data/lib/new_relic/agent/datastores/metric_helper.rb +5 -5
  49. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +11 -11
  50. data/lib/new_relic/agent/datastores/redis.rb +6 -6
  51. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +8 -10
  52. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +10 -10
  53. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +7 -7
  54. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +1 -1
  55. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +6 -6
  56. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +7 -7
  57. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +4 -4
  58. data/lib/new_relic/agent/distributed_tracing.rb +5 -5
  59. data/lib/new_relic/agent/error_collector.rb +36 -8
  60. data/lib/new_relic/agent/error_filter.rb +5 -5
  61. data/lib/new_relic/agent/error_trace_aggregator.rb +5 -4
  62. data/lib/new_relic/agent/event_loop.rb +3 -3
  63. data/lib/new_relic/agent/external.rb +1 -1
  64. data/lib/new_relic/agent/harvester.rb +1 -3
  65. data/lib/new_relic/agent/heap.rb +2 -1
  66. data/lib/new_relic/agent/hostname.rb +1 -1
  67. data/lib/new_relic/agent/http_clients/abstract.rb +9 -21
  68. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +7 -3
  69. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +7 -5
  70. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +4 -0
  71. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +6 -2
  72. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +5 -1
  73. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +8 -5
  74. data/lib/new_relic/agent/http_clients/uri_util.rb +2 -2
  75. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +5 -2
  76. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +3 -2
  77. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +3 -3
  78. data/lib/new_relic/agent/instrumentation/active_job.rb +2 -2
  79. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -3
  80. data/lib/new_relic/agent/instrumentation/active_record.rb +3 -2
  81. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +38 -35
  82. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +3 -3
  83. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  84. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +3 -2
  85. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  86. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +3 -3
  87. data/lib/new_relic/agent/instrumentation/bunny.rb +1 -1
  88. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +6 -4
  89. data/lib/new_relic/agent/instrumentation/curb/chain.rb +1 -1
  90. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +5 -5
  91. data/lib/new_relic/agent/instrumentation/curb.rb +1 -1
  92. data/lib/new_relic/agent/instrumentation/custom_events_subscriber.rb +2 -1
  93. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -0
  94. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +1 -1
  95. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +2 -1
  96. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +2 -2
  97. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +4 -3
  98. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +2 -2
  99. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +2 -1
  100. data/lib/new_relic/agent/instrumentation/excon.rb +3 -3
  101. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +20 -0
  102. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +24 -0
  103. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +18 -0
  104. data/lib/new_relic/agent/instrumentation/fiber.rb +25 -0
  105. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -4
  106. data/lib/new_relic/agent/instrumentation/grape.rb +4 -4
  107. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +1 -1
  108. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +3 -2
  109. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +1 -1
  110. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +1 -1
  111. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +4 -4
  112. data/lib/new_relic/agent/instrumentation/grpc_client.rb +1 -1
  113. data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
  114. data/lib/new_relic/agent/instrumentation/httprb.rb +1 -1
  115. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
  116. data/lib/new_relic/agent/instrumentation/logger.rb +1 -1
  117. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +3 -1
  118. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +2 -2
  119. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +3 -1
  120. data/lib/new_relic/agent/instrumentation/memcache.rb +10 -10
  121. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +3 -3
  122. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +1 -1
  123. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +6 -6
  124. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -2
  125. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +1 -1
  126. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +3 -3
  127. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +2 -2
  128. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +1 -1
  129. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +3 -2
  130. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  131. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +8 -15
  132. data/lib/new_relic/agent/instrumentation/rake.rb +3 -3
  133. data/lib/new_relic/agent/instrumentation/redis/constants.rb +1 -1
  134. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +2 -1
  135. data/lib/new_relic/agent/instrumentation/redis.rb +1 -1
  136. data/lib/new_relic/agent/instrumentation/resque/helper.rb +1 -1
  137. data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
  138. data/lib/new_relic/agent/instrumentation/sequel.rb +8 -9
  139. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +10 -10
  140. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +1 -1
  141. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +1 -1
  142. data/lib/new_relic/agent/instrumentation/sidekiq.rb +1 -0
  143. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  144. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +6 -5
  145. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -1
  146. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +3 -7
  147. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +2 -1
  148. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +5 -5
  149. data/lib/new_relic/agent/javascript_instrumentor.rb +29 -24
  150. data/lib/new_relic/agent/linking_metadata.rb +2 -2
  151. data/lib/new_relic/agent/log_event_aggregator.rb +15 -15
  152. data/lib/new_relic/agent/logging.rb +73 -33
  153. data/lib/new_relic/agent/messaging.rb +7 -5
  154. data/lib/new_relic/agent/method_tracer.rb +7 -7
  155. data/lib/new_relic/agent/method_tracer_helpers.rb +1 -1
  156. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +4 -5
  157. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -1
  158. data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
  159. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  160. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +0 -1
  161. data/lib/new_relic/agent/new_relic_service.rb +15 -16
  162. data/lib/new_relic/agent/obfuscator.rb +1 -1
  163. data/lib/new_relic/agent/parameter_filtering.rb +6 -6
  164. data/lib/new_relic/agent/pipe_channel_manager.rb +7 -6
  165. data/lib/new_relic/agent/pipe_service.rb +5 -3
  166. data/lib/new_relic/agent/priority_sampled_buffer.rb +1 -1
  167. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +0 -1
  168. data/lib/new_relic/agent/sampler.rb +2 -1
  169. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  170. data/lib/new_relic/agent/samplers/cpu_sampler.rb +5 -5
  171. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +9 -9
  172. data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -9
  173. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  174. data/lib/new_relic/agent/span_event_aggregator.rb +4 -4
  175. data/lib/new_relic/agent/span_event_primitive.rb +2 -2
  176. data/lib/new_relic/agent/sql_sampler.rb +2 -2
  177. data/lib/new_relic/agent/stats.rb +1 -1
  178. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
  179. data/lib/new_relic/agent/system_info.rb +10 -10
  180. data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
  181. data/lib/new_relic/agent/threading/backtrace_node.rb +3 -3
  182. data/lib/new_relic/agent/threading/backtrace_service.rb +3 -7
  183. data/lib/new_relic/agent/threading/thread_profile.rb +5 -5
  184. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  185. data/lib/new_relic/agent/tracer.rb +19 -9
  186. data/lib/new_relic/agent/transaction/abstract_segment.rb +54 -48
  187. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  188. data/lib/new_relic/agent/transaction/distributed_tracer.rb +7 -6
  189. data/lib/new_relic/agent/transaction/distributed_tracing.rb +13 -14
  190. data/lib/new_relic/agent/transaction/external_request_segment.rb +11 -11
  191. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -1
  192. data/lib/new_relic/agent/transaction/request_attributes.rb +2 -2
  193. data/lib/new_relic/agent/transaction/segment.rb +1 -1
  194. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  195. data/lib/new_relic/agent/transaction/trace.rb +1 -1
  196. data/lib/new_relic/agent/transaction/trace_context.rb +4 -4
  197. data/lib/new_relic/agent/transaction/trace_node.rb +8 -7
  198. data/lib/new_relic/agent/transaction/tracing.rb +10 -4
  199. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
  200. data/lib/new_relic/agent/transaction.rb +60 -52
  201. data/lib/new_relic/agent/transaction_error_primitive.rb +5 -5
  202. data/lib/new_relic/agent/transaction_event_aggregator.rb +4 -4
  203. data/lib/new_relic/agent/transaction_event_primitive.rb +3 -3
  204. data/lib/new_relic/agent/transaction_sampler.rb +3 -3
  205. data/lib/new_relic/agent/transaction_time_aggregator.rb +7 -3
  206. data/lib/new_relic/agent/utilization/aws.rb +1 -1
  207. data/lib/new_relic/agent/utilization/azure.rb +3 -3
  208. data/lib/new_relic/agent/utilization/gcp.rb +3 -3
  209. data/lib/new_relic/agent/utilization/pcf.rb +1 -1
  210. data/lib/new_relic/agent/utilization/vendor.rb +1 -1
  211. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  212. data/lib/new_relic/agent/vm/mri_vm.rb +9 -8
  213. data/lib/new_relic/agent/worker_loop.rb +1 -1
  214. data/lib/new_relic/agent.rb +79 -35
  215. data/lib/new_relic/cli/command.rb +3 -3
  216. data/lib/new_relic/cli/commands/deployments.rb +26 -25
  217. data/lib/new_relic/cli/commands/install.rb +23 -23
  218. data/lib/new_relic/collection_helper.rb +2 -2
  219. data/lib/new_relic/constants.rb +7 -8
  220. data/lib/new_relic/control/class_methods.rb +3 -3
  221. data/lib/new_relic/control/frameworks/rails.rb +30 -18
  222. data/lib/new_relic/control/instance_methods.rb +6 -6
  223. data/lib/new_relic/control/instrumentation.rb +1 -15
  224. data/lib/new_relic/control/private_instance_methods.rb +1 -1
  225. data/lib/new_relic/dependency_detection.rb +14 -18
  226. data/lib/new_relic/environment_report.rb +4 -4
  227. data/lib/new_relic/helper.rb +2 -1
  228. data/lib/new_relic/language_support.rb +1 -1
  229. data/lib/new_relic/latest_changes.rb +5 -5
  230. data/lib/new_relic/local_environment.rb +0 -10
  231. data/lib/new_relic/noticed_error.rb +20 -18
  232. data/lib/new_relic/rack/browser_monitoring.rb +20 -16
  233. data/lib/new_relic/recipes/capistrano3.rb +1 -1
  234. data/lib/new_relic/recipes/capistrano_legacy.rb +6 -6
  235. data/lib/new_relic/recipes/helpers/send_deployment.rb +5 -5
  236. data/lib/new_relic/supportability_helper.rb +2 -1
  237. data/lib/new_relic/version.rb +3 -3
  238. data/lib/newrelic_rpm.rb +4 -4
  239. data/lib/sequel/extensions/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +5 -5
  240. data/lib/sequel/plugins/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +4 -4
  241. data/lib/tasks/config.rake +12 -12
  242. data/lib/tasks/coverage_report.rake +4 -4
  243. data/lib/tasks/helpers/format.rb +10 -10
  244. data/lib/tasks/helpers/removers.rb +5 -5
  245. data/lib/tasks/install.rake +4 -4
  246. data/lib/tasks/instrumentation_generator/instrumentation.thor +15 -18
  247. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +1 -1
  248. data/lib/tasks/instrumentation_generator/templates/chain.tt +1 -1
  249. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +1 -1
  250. data/lib/tasks/multiverse.rb +13 -6
  251. data/lib/tasks/newrelic.rb +1 -0
  252. data/lib/tasks/tests.rake +6 -6
  253. data/newrelic.yml +10 -13
  254. data/newrelic_rpm.gemspec +29 -26
  255. data/test/agent_helper.rb +25 -24
  256. metadata +84 -16
  257. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -83
  258. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -33
  259. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -215
  260. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -36
  261. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -41
  262. data/lib/new_relic/agent/range_extensions.rb +0 -27
@@ -14,30 +14,6 @@ module NewRelic
14
14
  end
15
15
  end
16
16
 
17
- # Combines potentially two properties into one.
18
- # Given the example:
19
- # :disable_net_http and :prepend_net_instrumentation
20
- # if :disable_net_http is true, then returned value is "disabled"
21
- # if :prepend_net_instrumentation is false, then returned value is "chain"
22
- # otherwise, "auto" is returned.
23
- #
24
- # Intent is:
25
- # - if user sets disable_xxx property, then don't instrument
26
- # - if user set prepend to `false` then we use method_alias chaining
27
- # - auto, when returned means, try to use prepend unless conflicting gems discovered
28
- #
29
- def self.instrumentation_value_of(disable_key, prepend_key = nil)
30
- proc do
31
- if NewRelic::Agent.config[disable_key]
32
- "disabled"
33
- elsif prepend_key && !NewRelic::Agent.config[prepend_key]
34
- "chain"
35
- else
36
- "auto"
37
- end
38
- end
39
- end
40
-
41
17
  def self.instrumentation_value_from_boolean(key)
42
18
  proc do
43
19
  NewRelic::Agent.config[key] ? 'auto' : 'disabled'
@@ -47,7 +23,7 @@ module NewRelic
47
23
  # Marks the config option as deprecated in the documentation once generated.
48
24
  # Does not appear in logs.
49
25
  def self.deprecated_description(new_setting, description)
50
- link_ref = new_setting.to_s.tr(".", "-")
26
+ link_ref = new_setting.to_s.tr('.', '-')
51
27
  %{Please see: [#{new_setting}](docs/agents/ruby-agent/configuration/ruby-agent-configuration##{link_ref}). \n\n#{description}}
52
28
  end
53
29
 
@@ -80,34 +56,35 @@ module NewRelic
80
56
  default_settings[:transform] if default_settings
81
57
  end
82
58
 
83
- def self.config_search_paths
59
+ def self.config_search_paths # rubocop:disable Metrics/AbcSize
84
60
  proc {
85
- paths = [
86
- File.join("config", "newrelic.yml"),
87
- File.join("newrelic.yml"),
88
- File.join("config", "newrelic.yml.erb"),
89
- File.join("newrelic.yml.erb")
90
- ]
61
+ yaml = 'newrelic.yml'
62
+ config_yaml = File.join('config', yaml)
63
+ erb = 'newrelic.yml.erb'
64
+ config_erb = File.join('config', erb)
65
+
66
+ paths = [config_yaml, yaml, config_erb, erb]
91
67
 
92
68
  if NewRelic::Control.instance.root
93
- paths << File.join(NewRelic::Control.instance.root, "config", "newrelic.yml")
94
- paths << File.join(NewRelic::Control.instance.root, "newrelic.yml")
95
- paths << File.join(NewRelic::Control.instance.root, "config", "newrelic.yml.erb")
96
- paths << File.join(NewRelic::Control.instance.root, "newrelic.yml.erb")
69
+ paths << File.join(NewRelic::Control.instance.root, config_yaml)
70
+ paths << File.join(NewRelic::Control.instance.root, yaml)
71
+ paths << File.join(NewRelic::Control.instance.root, config_erb)
72
+ paths << File.join(NewRelic::Control.instance.root, erb)
97
73
  end
98
74
 
99
75
  if ENV['HOME']
100
- paths << File.join(ENV['HOME'], ".newrelic", "newrelic.yml")
101
- paths << File.join(ENV['HOME'], "newrelic.yml")
102
- paths << File.join(ENV['HOME'], ".newrelic", "newrelic.yml.erb")
103
- paths << File.join(ENV['HOME'], "newrelic.yml.erb")
76
+ paths << File.join(ENV['HOME'], '.newrelic', yaml)
77
+ paths << File.join(ENV['HOME'], yaml)
78
+ paths << File.join(ENV['HOME'], '.newrelic', erb)
79
+ paths << File.join(ENV['HOME'], erb)
104
80
  end
105
81
 
106
82
  # If we're packaged for warbler, we can tell from GEM_HOME
107
- if ENV["GEM_HOME"] && ENV["GEM_HOME"].end_with?(".jar!")
108
- app_name = File.basename(ENV["GEM_HOME"], ".jar!")
109
- paths << File.join(ENV["GEM_HOME"], app_name, "config", "newrelic.yml")
110
- paths << File.join(ENV["GEM_HOME"], app_name, "config", "newrelic.yml.erb")
83
+ # the following line needs else branch coverage
84
+ if ENV['GEM_HOME'] && ENV['GEM_HOME'].end_with?('.jar!') # rubocop:disable Style/SafeNavigation
85
+ app_name = File.basename(ENV['GEM_HOME'], '.jar!')
86
+ paths << File.join(ENV['GEM_HOME'], app_name, config_yaml)
87
+ paths << File.join(ENV['GEM_HOME'], app_name, config_erb)
111
88
  end
112
89
 
113
90
  paths
@@ -176,13 +153,6 @@ module NewRelic
176
153
  proc { NewRelic::Agent::Threading::BacktraceService.is_supported? }
177
154
  end
178
155
 
179
- # This check supports the js_errors_beta key we've asked clients to
180
- # set. Once JS errors are GA, browser_monitoring.loader can stop
181
- # being dynamic.
182
- def self.browser_monitoring_loader
183
- proc { NewRelic::Agent.config[:js_errors_beta] ? "full" : "rum" }
184
- end
185
-
186
156
  def self.transaction_tracer_transaction_threshold
187
157
  proc { NewRelic::Agent.config[:apdex_t] * 4 }
188
158
  end
@@ -213,11 +183,11 @@ module NewRelic
213
183
  # only used for deployment task
214
184
  proc do
215
185
  api_version = if NewRelic::Agent.config[:api_key].nil? || NewRelic::Agent.config[:api_key].empty?
216
- "rpm"
186
+ 'rpm'
217
187
  else
218
- "api"
188
+ 'api'
219
189
  end
220
- api_region = "eu." if String(NewRelic::Agent.config[:license_key]).start_with?('eu')
190
+ api_region = 'eu.' if String(NewRelic::Agent.config[:license_key]).start_with?('eu')
221
191
 
222
192
  "#{api_version}.#{api_region}newrelic.com"
223
193
  end
@@ -348,7 +318,7 @@ module NewRelic
348
318
  :public => true,
349
319
  :type => String,
350
320
  :allowed_from_server => false,
351
- :description => 'Your New Relic [license key](/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key).'
321
+ :description => 'Your New Relic <InlinePopover type="licenseKey" />.'
352
322
  },
353
323
  :log_level => {
354
324
  :default => 'info',
@@ -363,19 +333,19 @@ module NewRelic
363
333
  :public => true,
364
334
  :type => Array,
365
335
  :allowed_from_server => false,
366
- :description => <<-DESCRIPTION
367
- An array of ActiveSupport custom event names to subscribe to and instrument. For example,
368
- - one.custom.event
369
- - another.event
370
- - a.third.event
336
+ :description => <<~DESCRIPTION
337
+ An array of ActiveSupport custom event names to subscribe to and instrument. For example,
338
+ - one.custom.event
339
+ - another.event
340
+ - a.third.event
371
341
  DESCRIPTION
372
342
  },
343
+ # this is only set via server side config
373
344
  :apdex_t => {
374
345
  :default => 0.5,
375
- :public => true,
346
+ :public => false,
376
347
  :type => Float,
377
348
  :allowed_from_server => true,
378
- :deprecated => true,
379
349
  :description => '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).'
380
350
  },
381
351
  :api_key => {
@@ -383,7 +353,7 @@ An array of ActiveSupport custom event names to subscribe to and instrument. For
383
353
  :public => true,
384
354
  :type => String,
385
355
  :allowed_from_server => false,
386
- :description => 'Your New Relic [user key](/docs/apis/intro-apis/new-relic-api-keys/#overview-keys). Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
356
+ :description => 'Your New Relic <InlinePopover type="userKey" />. Required when using the New Relic REST API v2 to record deployments using the `newrelic deployments` command.'
387
357
  },
388
358
  :backport_fast_active_record_connection_lookup => {
389
359
  :default => false,
@@ -412,12 +382,12 @@ An array of ActiveSupport custom event names to subscribe to and instrument. For
412
382
  :public => true,
413
383
  :type => Boolean,
414
384
  :allowed_from_server => false,
415
- :description => <<-DESCRIPTION
416
- When `true`, the agent captures HTTP request parameters and attaches them to transaction traces, traced errors, and [`TransactionError` events](/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241).
385
+ :description => <<~DESCRIPTION
386
+ When `true`, the agent captures HTTP request parameters and attaches them to transaction traces, traced errors, and [`TransactionError` events](/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241).
417
387
 
418
- <Callout variant="caution">
419
- When using the `capture_params` setting, the Ruby agent will not attempt to filter secret information. <b>Recommendation:</b> To filter secret information from request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) instead. For more information, see the <a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">Ruby attribute examples</a>.
420
- </Callout>
388
+ <Callout variant="caution">
389
+ When using the `capture_params` setting, the Ruby agent will not attempt to filter secret information. `Recommendation:` To filter secret information from request parameters, use the [`attributes.include` setting](/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby) instead. For more information, see the <a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">Ruby attribute examples</a>.
390
+ </Callout>
421
391
  DESCRIPTION
422
392
  },
423
393
  :'clear_transaction_state_after_fork' => {
@@ -432,14 +402,20 @@ When `true`, the agent captures HTTP request parameters and attaches them to tra
432
402
  :public => true,
433
403
  :type => String,
434
404
  :allowed_from_server => false,
435
- :description => 'Path to <b>newrelic.yml</b>. If undefined, the agent checks the following directories (in order): <b>config/newrelic.yml</b>, <b>newrelic.yml</b>, <b>$HOME/.newrelic/newrelic.yml</b> and <b>$HOME/newrelic.yml</b>.'
405
+ :description => <<~DESC
406
+ Path to `newrelic.yml`. If undefined, the agent checks the following directories (in order):
407
+ * `config/newrelic.yml`
408
+ * `newrelic.yml`
409
+ * `$HOME/.newrelic/newrelic.yml`
410
+ * `$HOME/newrelic.yml`
411
+ DESC
436
412
  },
437
413
  :'exclude_newrelic_header' => {
438
414
  :default => false,
439
415
  :public => true,
440
416
  :type => Boolean,
441
417
  :allowed_from_server => true,
442
- :description => "Allows newrelic distributed tracing headers to be suppressed on outbound requests."
418
+ :description => 'Allows newrelic distributed tracing headers to be suppressed on outbound requests.'
443
419
  },
444
420
  :force_install_exit_handler => {
445
421
  :default => false,
@@ -566,14 +542,6 @@ When `true`, the agent captures HTTP request parameters and attaches them to tra
566
542
  :description => 'Defines the maximum number of seconds the agent should spend attempting to connect to the collector.'
567
543
  },
568
544
  # Transaction tracer
569
- :'transaction_tracer.capture_attributes' => {
570
- :default => true,
571
- :public => true,
572
- :type => Boolean,
573
- :deprecated => true,
574
- :allowed_from_server => false,
575
- :description => 'Use [`transaction_tracer.attributes.enabled`](#transaction_tracer-attributes-enabled) instead.'
576
- },
577
545
  :'transaction_tracer.enabled' => {
578
546
  :default => true,
579
547
  :public => true,
@@ -639,26 +607,18 @@ When `true`, the agent captures HTTP request parameters and attaches them to tra
639
607
  :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`.'
640
608
  },
641
609
  # Error collector
642
- :'error_collector.capture_attributes' => {
643
- :default => true,
644
- :public => true,
645
- :type => Boolean,
646
- :deprecated => true,
647
- :allowed_from_server => false,
648
- :description => 'Use [`error_collector.attributes.enabled`](#error_collector-attributes-enabled) instead.'
649
- },
650
610
  :'error_collector.ignore_classes' => {
651
- :default => [],
611
+ :default => ['ActionController::RoutingError', 'Sinatra::NotFound'],
652
612
  :public => true,
653
613
  :type => Array,
654
614
  :allowed_from_server => true,
655
615
  :dynamic_name => true,
656
- :description => <<-DESCRIPTION
657
- A list of error classes that the agent should ignore.
616
+ :description => <<~DESCRIPTION
617
+ A list of error classes that the agent should ignore.
658
618
 
659
- <Callout variant="caution">
660
- This option can't be set via environment variable.
661
- </Callout>
619
+ <Callout variant="caution">
620
+ This option can't be set via environment variable.
621
+ </Callout>
662
622
  DESCRIPTION
663
623
  },
664
624
  :'error_collector.capture_events' => {
@@ -668,7 +628,7 @@ A list of error classes that the agent should ignore.
668
628
  :type => Boolean,
669
629
  :allowed_from_server => true,
670
630
  :dynamic_name => true,
671
- :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
631
+ :description => 'If `true`, the agent collects [`TransactionError` events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
672
632
  },
673
633
  :'error_collector.enabled' => {
674
634
  :default => true,
@@ -683,12 +643,12 @@ A list of error classes that the agent should ignore.
683
643
  :type => Array,
684
644
  :allowed_from_server => true,
685
645
  :dynamic_name => true,
686
- :description => <<-DESCRIPTION
687
- A list of error classes that the agent should treat as expected.
646
+ :description => <<~DESCRIPTION
647
+ A list of error classes that the agent should treat as expected.
688
648
 
689
- <Callout variant="caution">
690
- This option can't be set via environment variable.
691
- </Callout>
649
+ <Callout variant="caution">
650
+ This option can't be set via environment variable.
651
+ </Callout>
692
652
  DESCRIPTION
693
653
  },
694
654
  :'error_collector.expected_messages' => {
@@ -697,12 +657,12 @@ A list of error classes that the agent should treat as expected.
697
657
  :type => Hash,
698
658
  :allowed_from_server => true,
699
659
  :dynamic_name => true,
700
- :description => <<-DESCRIPTION
701
- 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.
660
+ :description => <<~DESCRIPTION
661
+ 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.
702
662
 
703
- <Callout variant="caution">
704
- This option can't be set via environment variable.
705
- </Callout>
663
+ <Callout variant="caution">
664
+ This option can't be set via environment variable.
665
+ </Callout>
706
666
  DESCRIPTION
707
667
  },
708
668
  :'error_collector.expected_status_codes' => {
@@ -713,33 +673,19 @@ A map of error classes to a list of messages. When an error of one of the classe
713
673
  :dynamic_name => true,
714
674
  :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
715
675
  },
716
- :'error_collector.ignore_errors' => {
717
- :default => 'ActionController::RoutingError,Sinatra::NotFound',
718
- :public => true,
719
- :type => String,
720
- :deprecated => true,
721
- :allowed_from_server => true,
722
- :dynamic_name => true,
723
- :description => <<-DESCRIPTION
724
- Use `error_collector.ignore_classes` instead. Specify a comma-delimited list of error classes that the agent should ignore.
725
676
 
726
- <Callout variant="caution">
727
- Server side configuration takes precedence for this setting over all environment configurations. This differs from all other configuration settings where environment variable take precedence over server side configuration.
728
- </Callout>
729
- DESCRIPTION
730
- },
731
677
  :'error_collector.ignore_messages' => {
732
678
  :default => {},
733
679
  :public => true,
734
680
  :type => Hash,
735
681
  :allowed_from_server => true,
736
682
  :dynamic_name => true,
737
- :description => <<-DESCRIPTION
738
- 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.
683
+ :description => <<~DESCRIPTION
684
+ 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.
739
685
 
740
- <Callout variant="caution">
741
- This option can't be set via environment variable.
742
- </Callout>
686
+ <Callout variant="caution">
687
+ This option can't be set via environment variable.
688
+ </Callout>
743
689
  DESCRIPTION
744
690
  },
745
691
  :'error_collector.ignore_status_codes' => {
@@ -762,7 +708,7 @@ A map of error classes to a list of messages. When an error of one of the classe
762
708
  :public => true,
763
709
  :type => Integer,
764
710
  :allowed_from_server => true,
765
- :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
711
+ :description => 'Defines the maximum number of [`TransactionError` events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
766
712
  },
767
713
  # Browser monitoring
768
714
  :'browser_monitoring.auto_instrument' => {
@@ -773,51 +719,16 @@ A map of error classes to a list of messages. When an error of one of the classe
773
719
  :allowed_from_server => true,
774
720
  :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).'
775
721
  },
776
- :'browser_monitoring.capture_attributes' => {
777
- :default => false,
778
- :public => true,
779
- :type => Boolean,
780
- :deprecated => true,
781
- :allowed_from_server => false,
782
- :description => 'Use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
783
- },
784
- # Analytics events
785
- :'analytics_events.capture_attributes' => {
786
- :default => true,
787
- :public => true,
788
- :type => Boolean,
789
- :deprecated => true,
790
- :allowed_from_server => false,
791
- :description => 'Use [`transaction_events.attributes.enabled`](#transaction_events-attributes-enabled) instead.'
792
- },
793
- :'analytics_events.enabled' => {
794
- :default => true,
795
- :public => true,
796
- :type => Boolean,
797
- :deprecated => true,
798
- :allowed_from_server => true,
799
- :description => deprecated_description(:'transaction_events.enabled', 'If `true`, enables analytics event sampling.')
800
- },
801
- :'analytics_events.max_samples_stored' => {
802
- :default => 1200,
803
- :public => true,
804
- :type => Integer,
805
- :deprecated => true,
806
- :allowed_from_server => true,
807
- :description => deprecated_description(:'transaction_events.max_samples_stored', 'Defines the maximum number of request events reported from a single harvest.')
808
- },
809
722
  # Transaction events
810
723
  :'transaction_events.enabled' => {
811
- :default => value_of(:'analytics_events.enabled'),
812
- :documentation_default => true,
724
+ :default => true,
813
725
  :public => true,
814
726
  :type => Boolean,
815
727
  :allowed_from_server => true,
816
728
  :description => 'If `true`, enables transaction event sampling.'
817
729
  },
818
730
  :'transaction_events.max_samples_stored' => {
819
- :default => value_of(:'analytics_events.max_samples_stored'),
820
- :documentation_default => 1200,
731
+ :default => 1200,
821
732
  :public => true,
822
733
  :type => Integer,
823
734
  :allowed_from_server => true,
@@ -885,8 +796,7 @@ A map of error classes to a list of messages. When an error of one of the classe
885
796
  :description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
886
797
  },
887
798
  :'browser_monitoring.attributes.enabled' => {
888
- :default => value_of(:'browser_monitoring.capture_attributes'),
889
- :documentation_default => false,
799
+ :default => false,
890
800
  :public => true,
891
801
  :type => Boolean,
892
802
  :allowed_from_server => false,
@@ -909,8 +819,7 @@ A map of error classes to a list of messages. When an error of one of the classe
909
819
  :description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
910
820
  },
911
821
  :'error_collector.attributes.enabled' => {
912
- :default => value_of(:'error_collector.capture_attributes'),
913
- :documentation_default => true,
822
+ :default => true,
914
823
  :public => true,
915
824
  :type => Boolean,
916
825
  :allowed_from_server => false,
@@ -956,8 +865,7 @@ A map of error classes to a list of messages. When an error of one of the classe
956
865
  :description => 'Prefix of attributes to include on span events. Allows `*` as wildcard at end.'
957
866
  },
958
867
  :'transaction_events.attributes.enabled' => {
959
- :default => value_of(:'analytics_events.capture_attributes'),
960
- :documentation_default => true,
868
+ :default => true,
961
869
  :public => true,
962
870
  :type => Boolean,
963
871
  :allowed_from_server => false,
@@ -1003,8 +911,7 @@ A map of error classes to a list of messages. When an error of one of the classe
1003
911
  :description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
1004
912
  },
1005
913
  :'transaction_tracer.attributes.enabled' => {
1006
- :default => value_of(:'transaction_tracer.capture_attributes'),
1007
- :documentation_default => true,
914
+ :default => true,
1008
915
  :public => true,
1009
916
  :type => Boolean,
1010
917
  :allowed_from_server => false,
@@ -1035,12 +942,12 @@ A map of error classes to a list of messages. When an error of one of the classe
1035
942
  :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).'
1036
943
  },
1037
944
  :'audit_log.endpoints' => {
1038
- :default => [".*"],
945
+ :default => ['.*'],
1039
946
  :public => true,
1040
947
  :type => Array,
1041
948
  :allowed_from_server => false,
1042
949
  :transform => DefaultSource.method(:convert_to_regexp_list),
1043
- :description => 'List of allowed endpoints to include in audit log'
950
+ :description => 'List of allowed endpoints to include in audit log.'
1044
951
  },
1045
952
  :'audit_log.path' => {
1046
953
  :default => DefaultSource.audit_log_path,
@@ -1056,21 +963,21 @@ A map of error classes to a list of messages. When an error of one of the classe
1056
963
  :public => true,
1057
964
  :type => String,
1058
965
  :allowed_from_server => false,
1059
- :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`.'
966
+ :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"`.'
1060
967
  },
1061
968
  :'autostart.denylisted_executables' => {
1062
969
  :default => 'irb,rspec',
1063
970
  :public => true,
1064
971
  :type => String,
1065
972
  :allowed_from_server => false,
1066
- :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
973
+ :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `"rake,my_ruby_script.rb"`.'
1067
974
  },
1068
975
  :'autostart.denylisted_rake_tasks' => {
1069
976
  :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
1070
977
  :public => true,
1071
978
  :type => String,
1072
979
  :allowed_from_server => false,
1073
- :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
980
+ :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `"assets:precompile,db:migrate"`.'
1074
981
  },
1075
982
  # Code level metrics
1076
983
  :'code_level_metrics.enabled' => {
@@ -1213,15 +1120,6 @@ A map of error classes to a list of messages. When an error of one of the classe
1213
1120
  :allowed_from_server => false,
1214
1121
  :description => 'If `true`, disables instrumentation for Active Record 4+'
1215
1122
  },
1216
- :disable_bunny => {
1217
- :default => false,
1218
- :public => true,
1219
- :type => Boolean,
1220
- :deprecated => true,
1221
- :dynamic_name => true,
1222
- :allowed_from_server => false,
1223
- :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1224
- },
1225
1123
  :disable_cpu_sampler => {
1226
1124
  :default => false,
1227
1125
  :public => true,
@@ -1230,48 +1128,6 @@ A map of error classes to a list of messages. When an error of one of the classe
1230
1128
  :allowed_from_server => false,
1231
1129
  :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1232
1130
  },
1233
- :disable_curb => {
1234
- :default => false,
1235
- :public => true,
1236
- :type => Boolean,
1237
- :deprecated => true,
1238
- :dynamic_name => true,
1239
- :allowed_from_server => false,
1240
- :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.')
1241
- },
1242
- :disable_database_instrumentation => {
1243
- :default => false,
1244
- :public => true,
1245
- :type => Boolean,
1246
- :allowed_from_server => false,
1247
- :deprecated => true,
1248
- :description => 'Use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1249
- },
1250
- :disable_data_mapper => {
1251
- :default => false,
1252
- :public => true,
1253
- :type => Boolean,
1254
- :allowed_from_server => false,
1255
- :description => 'If `true`, disables DataMapper instrumentation.'
1256
- },
1257
- :disable_dalli => {
1258
- :default => value_of(:disable_memcache_instrumentation),
1259
- :documentation_default => false,
1260
- :public => true,
1261
- :type => Boolean,
1262
- :deprecated => true,
1263
- :allowed_from_server => false,
1264
- :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables instrumentation for the dalli gem.')
1265
- },
1266
- :disable_dalli_cas_client => {
1267
- :default => value_of(:disable_memcache_instrumentation),
1268
- :documentation_default => false,
1269
- :public => true,
1270
- :type => Boolean,
1271
- :deprecated => true,
1272
- :allowed_from_server => false,
1273
- :description => deprecated_description(:'instrumentation.memcache', "If `true`, disables instrumentation for the dalli gem's additional CAS client support.")
1274
- },
1275
1131
  :disable_delayed_job_sampler => {
1276
1132
  :default => false,
1277
1133
  :public => true,
@@ -1280,91 +1136,12 @@ A map of error classes to a list of messages. When an error of one of the classe
1280
1136
  :allowed_from_server => false,
1281
1137
  :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1282
1138
  },
1283
- :disable_dj => {
1284
- :default => false,
1285
- :public => true,
1286
- :deprecated => true,
1287
- :type => Boolean,
1288
- :allowed_from_server => false,
1289
- :description => deprecated_description(:'instrumentation.delayed_job', 'If `true`, disables [Delayed::Job instrumentation](/docs/agents/ruby-agent/background-jobs/delayedjob).')
1290
- },
1291
- :disable_excon => {
1292
- :default => false,
1293
- :public => true,
1294
- :type => Boolean,
1295
- :dynamic_name => true,
1296
- :deprecated => true,
1297
- :allowed_from_server => false,
1298
- :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1299
- },
1300
- :disable_memcached => {
1301
- :default => value_of(:disable_memcache_instrumentation),
1302
- :documentation_default => false,
1303
- :public => true,
1304
- :type => Boolean,
1305
- :deprecated => true,
1306
- :allowed_from_server => false,
1307
- :description => deprecated_description(:'instrumentation.memcached', 'If `true`, disables instrumentation for the memcached gem.')
1308
- },
1309
- :disable_memcache_client => {
1310
- :default => value_of(:disable_memcache_instrumentation),
1311
- :documentation_default => false,
1312
- :public => true,
1313
- :type => Boolean,
1314
- :deprecated => true,
1315
- :allowed_from_server => false,
1316
- :description => deprecated_description(:'instrumentation.memcache-client', 'If `true`, disables instrumentation for the memcache-client gem.')
1317
- },
1318
- :disable_memcache_instrumentation => {
1319
- :default => false,
1320
- :public => true,
1321
- :type => Boolean,
1322
- :deprecated => true,
1323
- :allowed_from_server => false,
1324
- :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables memcache instrumentation.')
1325
- },
1326
1139
  :disable_gc_profiler => {
1327
1140
  :default => false,
1328
1141
  :public => true,
1329
1142
  :type => Boolean,
1330
1143
  :allowed_from_server => false,
1331
- :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1332
- },
1333
- :disable_grape => {
1334
- :default => false,
1335
- :public => true,
1336
- :type => Boolean,
1337
- :allowed_from_server => false,
1338
- :deprecated => true,
1339
- :description => deprecated_description(:'instrumentation.grape',
1340
- 'If `true`, the agent won\'t install Grape instrumentation.')
1341
- },
1342
- :disable_httpclient => {
1343
- :default => false,
1344
- :public => true,
1345
- :type => Boolean,
1346
- :dynamic_name => true,
1347
- :deprecated => true,
1348
- :allowed_from_server => false,
1349
- :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
1350
- },
1351
- :disable_httprb => {
1352
- :default => false,
1353
- :public => true,
1354
- :type => Boolean,
1355
- :dynamic_name => true,
1356
- :deprecated => true,
1357
- :allowed_from_server => false,
1358
- :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.')
1359
- },
1360
- :disable_mongo => {
1361
- :default => false,
1362
- :public => true,
1363
- :type => Boolean,
1364
- :allowed_from_server => false,
1365
- :dynamic_name => true,
1366
- :deprecated => true,
1367
- :description => deprecated_description(:'instrumentation.mongo', 'If `true`, the agent won\'t install [instrumentation for the Mongo gem](/docs/agents/ruby-agent/frameworks/mongo-instrumentation).')
1144
+ :description => 'If `true`, disables the use of `GC::Profiler` to measure time spent in garbage collection'
1368
1145
  },
1369
1146
  :disable_memory_sampler => {
1370
1147
  :default => false,
@@ -1379,79 +1156,7 @@ A map of error classes to a list of messages. When an error of one of the classe
1379
1156
  :public => true,
1380
1157
  :type => Boolean,
1381
1158
  :allowed_from_server => false,
1382
- :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1383
- },
1384
- :disable_net_http => {
1385
- :default => false,
1386
- :public => true,
1387
- :type => Boolean,
1388
- :dynamic_name => true,
1389
- :allowed_from_server => false,
1390
- :deprecated => true,
1391
- :description => deprecated_description(:'instrumentation.net_http',
1392
- 'If `true`, disables instrumentation for Net::HTTP.')
1393
- },
1394
- :disable_puma_rack => {
1395
- :default => value_of(:disable_rack),
1396
- :documentation_default => false,
1397
- :public => true,
1398
- :type => Boolean,
1399
- :dynamic_name => true,
1400
- :allowed_from_server => false,
1401
- :deprecated => true,
1402
- :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.')
1403
- },
1404
- :disable_puma_rack_urlmap => {
1405
- :default => value_of(:disable_rack_urlmap),
1406
- :documentation_default => false,
1407
- :public => true,
1408
- :type => Boolean,
1409
- :dynamic_name => true,
1410
- :allowed_from_server => false,
1411
- :deprecated => true,
1412
- :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If `true`, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1413
- },
1414
- :disable_rack => {
1415
- :default => false,
1416
- :public => true,
1417
- :type => Boolean,
1418
- :dynamic_name => true,
1419
- :allowed_from_server => false,
1420
- :deprecated => true,
1421
- :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.')
1422
- },
1423
- :disable_rack_urlmap => {
1424
- :default => false,
1425
- :public => true,
1426
- :type => Boolean,
1427
- :dynamic_name => true,
1428
- :allowed_from_server => false,
1429
- :deprecated => true,
1430
- :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1431
- },
1432
- :disable_rake => {
1433
- :default => false,
1434
- :public => true,
1435
- :type => Boolean,
1436
- :allowed_from_server => false,
1437
- :deprecated => true,
1438
- :description => deprecated_description(:'instrumentation.rake', 'If `true`, disables Rake instrumentation.')
1439
- },
1440
- :disable_redis => {
1441
- :default => false,
1442
- :public => true,
1443
- :type => Boolean,
1444
- :deprecated => true,
1445
- :allowed_from_server => false,
1446
- :description => deprecated_description(:'instrumentation.redis', 'If `true`, the agent won\'t install [instrumentation for Redis](/docs/agents/ruby-agent/frameworks/redis-instrumentation).')
1447
- },
1448
- :disable_resque => {
1449
- :default => false,
1450
- :public => true,
1451
- :type => Boolean,
1452
- :deprecated => true,
1453
- :allowed_from_server => false,
1454
- :description => deprecated_description(:'instrumentation.resque', 'If `true`, disables [Resque instrumentation](/docs/agents/ruby-agent/background-jobs/resque-instrumentation).')
1159
+ :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via `Rack::Builder` or Rails).'
1455
1160
  },
1456
1161
  :disable_samplers => {
1457
1162
  :default => false,
@@ -1474,47 +1179,30 @@ A map of error classes to a list of messages. When an error of one of the classe
1474
1179
  :allowed_from_server => false,
1475
1180
  :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
1476
1181
  },
1477
- :disable_sinatra => {
1478
- :default => false,
1479
- :public => true,
1480
- :type => Boolean,
1481
- :deprecated => true,
1482
- :allowed_from_server => false,
1483
- :description => deprecated_description(:'instrumentation.sinatra', 'If `true` , disables [Sinatra instrumentation](/docs/agents/ruby-agent/frameworks/sinatra-support).')
1484
- },
1485
1182
  :disable_sinatra_auto_middleware => {
1486
1183
  :default => false,
1487
1184
  :public => true,
1488
1185
  :type => Boolean,
1489
1186
  :allowed_from_server => false,
1490
- :description => <<-DESCRIPTION
1491
- 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).
1187
+ :description => <<~DESCRIPTION
1188
+ 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).
1492
1189
 
1493
- <Callout variant="important">
1494
- Cross application tracing is deprecated in favor of [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing). Distributed tracing is on by default for Ruby agent versions 8.0.0 and above. Middlewares are not required to support distributed tracing.
1190
+ <Callout variant="important">
1191
+ Cross application tracing is deprecated in favor of [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing). Distributed tracing is on by default for Ruby agent versions 8.0.0 and above. Middlewares are not required to support distributed tracing.
1495
1192
 
1496
- To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
1193
+ To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
1497
1194
 
1498
- ```
1499
- # newrelic.yml
1195
+ ```yaml
1196
+ # newrelic.yml
1500
1197
 
1501
- cross_application_tracer:
1502
- enabled: true
1503
- distributed_tracing:
1504
- enabled: false
1505
- ```
1506
- </Callout>
1198
+ cross_application_tracer:
1199
+ enabled: true
1200
+ distributed_tracing:
1201
+ enabled: false
1202
+ ```
1203
+ </Callout>
1507
1204
  DESCRIPTION
1508
1205
  },
1509
- :disable_typhoeus => {
1510
- :default => false,
1511
- :public => true,
1512
- :type => Boolean,
1513
- :dynamic_name => true,
1514
- :deprecated => true,
1515
- :allowed_from_server => false,
1516
- :description => deprecated_description(:'instrumentation.typhoeus', 'If `true`, the agent won\'t install instrumentation for the typhoeus gem.')
1517
- },
1518
1206
  :disable_view_instrumentation => {
1519
1207
  :default => false,
1520
1208
  :public => true,
@@ -1567,7 +1255,7 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1567
1255
  :type => Array,
1568
1256
  :allowed_from_server => false,
1569
1257
  :transform => DefaultSource.method(:convert_to_list),
1570
- :description => 'Ordinarily the agent reports dyno names with a trailing dot and process ID (for example, <b>worker.3</b>). You can remove this trailing data by specifying the prefixes you want to report without trailing data (for example, <b>worker</b>).'
1258
+ :description => 'Ordinarily the agent reports dyno names with a trailing dot and process ID (for example, `worker.3`). You can remove this trailing data by specifying the prefixes you want to report without trailing data (for example, `worker`).'
1571
1259
  },
1572
1260
  # Infinite tracing
1573
1261
  :'infinite_tracing.trace_observer.host' => {
@@ -1576,10 +1264,10 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1576
1264
  :type => String,
1577
1265
  :allowed_from_server => false,
1578
1266
  :external => :infinite_tracing,
1579
- :description => "Configures the hostname for the trace observer Host. " \
1580
- "When configured, enables tail-based sampling by sending all recorded spans " \
1581
- "to a trace observer for further sampling decisions, irrespective of any usual " \
1582
- "agent sampling decision."
1267
+ :description => 'Configures the hostname for the trace observer Host. ' \
1268
+ 'When configured, enables tail-based sampling by sending all recorded spans ' \
1269
+ 'to a trace observer for further sampling decisions, irrespective of any usual ' \
1270
+ 'agent sampling decision.'
1583
1271
  },
1584
1272
  :'infinite_tracing.trace_observer.port' => {
1585
1273
  :default => 443,
@@ -1587,7 +1275,7 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1587
1275
  :type => Integer,
1588
1276
  :allowed_from_server => false,
1589
1277
  :external => :infinite_tracing,
1590
- :description => "Configures the TCP/IP port for the trace observer Host"
1278
+ :description => 'Configures the TCP/IP port for the trace observer Host'
1591
1279
  },
1592
1280
  # Instrumentation
1593
1281
  :'instrumentation.active_support_logger' => {
@@ -1597,16 +1285,23 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1597
1285
  :public => true,
1598
1286
  :type => String,
1599
1287
  :allowed_from_server => false,
1600
- :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
1288
+ :description => 'Controls auto-instrumentation of `ActiveSupport::Logger` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1601
1289
  },
1602
1290
  :'instrumentation.bunny' => {
1603
- :default => instrumentation_value_of(:disable_bunny),
1604
- :documentation_default => 'auto',
1291
+ :default => 'auto',
1605
1292
  :public => true,
1606
1293
  :type => String,
1607
1294
  :dynamic_name => true,
1608
1295
  :allowed_from_server => false,
1609
- :description => 'Controls auto-instrumentation of bunny at start up. May be one of [auto|prepend|chain|disabled].'
1296
+ :description => 'Controls auto-instrumentation of bunny at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1297
+ },
1298
+ :'instrumentation.fiber' => {
1299
+ :default => 'auto',
1300
+ :public => true,
1301
+ :type => String,
1302
+ :dynamic_name => true,
1303
+ :allowed_from_server => false,
1304
+ :description => 'Controls auto-instrumentation of the Fiber class at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1610
1305
  },
1611
1306
  :'instrumentation.concurrent_ruby' => {
1612
1307
  :default => 'auto',
@@ -1614,25 +1309,25 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1614
1309
  :type => String,
1615
1310
  :dynamic_name => true,
1616
1311
  :allowed_from_server => false,
1617
- :description => 'Controls auto-instrumentation of the concurrent-ruby library at start up. May be one of [auto|prepend|chain|disabled].'
1312
+ :description => 'Controls auto-instrumentation of the concurrent-ruby library at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1618
1313
  },
1619
1314
  :'instrumentation.curb' => {
1620
- :default => instrumentation_value_of(:disable_curb),
1315
+ :default => 'auto',
1621
1316
  :documentation_default => 'auto',
1622
1317
  :public => true,
1623
1318
  :type => String,
1624
1319
  :dynamic_name => true,
1625
1320
  :allowed_from_server => false,
1626
- :description => 'Controls auto-instrumentation of Curb at start up. May be one of [auto|prepend|chain|disabled].'
1321
+ :description => 'Controls auto-instrumentation of Curb at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1627
1322
  },
1628
1323
  :'instrumentation.delayed_job' => {
1629
- :default => instrumentation_value_of(:disable_dj),
1324
+ :default => 'auto',
1630
1325
  :documentation_default => 'auto',
1631
1326
  :public => true,
1632
1327
  :type => String,
1633
1328
  :dynamic_name => true,
1634
1329
  :allowed_from_server => false,
1635
- :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of [auto|prepend|chain|disabled].'
1330
+ :description => 'Controls auto-instrumentation of Delayed Job at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1636
1331
  },
1637
1332
  :'instrumentation.elasticsearch' => {
1638
1333
  :default => 'auto',
@@ -1640,34 +1335,33 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1640
1335
  :type => String,
1641
1336
  :dynamic_name => true,
1642
1337
  :allowed_from_server => false,
1643
- :description => 'Controls auto-instrumentation of the elasticsearch library at start up. May be one of [auto|prepend|chain|disabled].'
1338
+ :description => 'Controls auto-instrumentation of the elasticsearch library at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1644
1339
  },
1645
1340
  :'instrumentation.excon' => {
1646
- :default => instrumentation_value_of(:disable_excon),
1341
+ :default => 'enabled',
1647
1342
  :documentation_default => 'enabled',
1648
- :public => :true,
1343
+ :public => true,
1649
1344
  :type => String,
1650
1345
  :dynamic_name => true,
1651
1346
  :allowed_from_server => false,
1652
- :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1347
+ :description => 'Controls auto-instrumentation of Excon at start up. May be one of: `enabled`, `disabled`.'
1653
1348
  },
1654
1349
  :'instrumentation.grape' => {
1655
- :default => instrumentation_value_of(:disable_grape_instrumentation),
1656
- :documentation_default => 'auto',
1657
- :public => :true,
1350
+ :default => 'auto',
1351
+ :public => true,
1658
1352
  :type => String,
1659
1353
  :dynamic_name => true,
1660
1354
  :allowed_from_server => false,
1661
- :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1355
+ :description => 'Controls auto-instrumentation of Grape at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1662
1356
  },
1663
1357
  :'instrumentation.grpc_client' => {
1664
- :default => instrumentation_value_of(:disable_grpc_client),
1358
+ :default => 'auto',
1665
1359
  :documentation_default => 'auto',
1666
1360
  :public => true,
1667
1361
  :type => String,
1668
1362
  :dynamic_name => true,
1669
1363
  :allowed_from_server => false,
1670
- :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of [auto|prepend|chain|disabled].'
1364
+ :description => 'Controls auto-instrumentation of gRPC clients at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1671
1365
  },
1672
1366
  :'instrumentation.grpc.host_denylist' => {
1673
1367
  :default => [],
@@ -1675,34 +1369,34 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1675
1369
  :type => Array,
1676
1370
  :allowed_from_server => false,
1677
1371
  :transform => DefaultSource.method(:convert_to_regexp_list),
1678
- :description => %Q(Specifies a list of hostname patterns separated by commas that will match gRPC hostnames that traffic is to be ignored by New Relic for. New Relic's gRPC client instrumentation will ignore traffic streamed to a host matching any of these patterns, and New Relic's gRPC server instrumentation will ignore traffic for a server running on a host whose hostname matches any of these patterns. By default, no traffic is ignored when gRPC instrumentation is itself enabled. For example, "private.com$,exception.*")
1372
+ :description => %Q(Specifies a list of hostname patterns separated by commas that will match gRPC hostnames that traffic is to be ignored by New Relic for. New Relic's gRPC client instrumentation will ignore traffic streamed to a host matching any of these patterns, and New Relic's gRPC server instrumentation will ignore traffic for a server running on a host whose hostname matches any of these patterns. By default, no traffic is ignored when gRPC instrumentation is itself enabled. For example, `"private.com$,exception.*"`)
1679
1373
  },
1680
1374
  :'instrumentation.grpc_server' => {
1681
- :default => instrumentation_value_of(:disable_grpc_server),
1375
+ :default => 'auto',
1682
1376
  :documentation_default => 'auto',
1683
1377
  :public => true,
1684
1378
  :type => String,
1685
1379
  :dynamic_name => true,
1686
1380
  :allowed_from_server => false,
1687
- :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of [auto|prepend|chain|disabled].'
1381
+ :description => 'Controls auto-instrumentation of gRPC servers at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1688
1382
  },
1689
1383
  :'instrumentation.httpclient' => {
1690
- :default => instrumentation_value_of(:disable_httpclient),
1384
+ :default => 'auto',
1691
1385
  :documentation_default => 'auto',
1692
1386
  :public => true,
1693
1387
  :type => String,
1694
1388
  :dynamic_name => true,
1695
1389
  :allowed_from_server => false,
1696
- :description => "Controls auto-instrumentation of HTTPClient at start up. May be one of [auto|prepend|chain|disabled]."
1390
+ :description => 'Controls auto-instrumentation of HTTPClient at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1697
1391
  },
1698
1392
  :'instrumentation.httprb' => {
1699
- :default => instrumentation_value_of(:disable_httprb),
1393
+ :default => 'auto',
1700
1394
  :documentation_default => 'auto',
1701
1395
  :public => true,
1702
1396
  :type => String,
1703
1397
  :dynamic_name => true,
1704
1398
  :allowed_from_server => false,
1705
- :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of [auto|prepend|chain|disabled].'
1399
+ :description => 'Controls auto-instrumentation of http.rb gem at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1706
1400
  },
1707
1401
  :'instrumentation.logger' => {
1708
1402
  :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
@@ -1711,128 +1405,124 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1711
1405
  :type => String,
1712
1406
  :dynamic_name => true,
1713
1407
  :allowed_from_server => false,
1714
- :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
1408
+ :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1715
1409
  },
1716
1410
  :'instrumentation.memcache' => {
1717
- :default => instrumentation_value_of(:disable_dalli),
1718
- :documentation_default => 'auto',
1411
+ :default => 'auto',
1719
1412
  :public => true,
1720
1413
  :type => String,
1721
1414
  :dynamic_name => true,
1722
1415
  :allowed_from_server => false,
1723
- :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1416
+ :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1724
1417
  },
1725
1418
  :'instrumentation.memcached' => {
1726
- :default => instrumentation_value_of(:disable_memcached),
1419
+ :default => 'auto',
1727
1420
  :documentation_default => 'auto',
1728
1421
  :public => true,
1729
1422
  :type => String,
1730
1423
  :dynamic_name => true,
1731
1424
  :allowed_from_server => false,
1732
- :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1425
+ :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1733
1426
  },
1734
1427
  :'instrumentation.memcache_client' => {
1735
- :default => instrumentation_value_of(:disable_memcache_client),
1428
+ :default => 'auto',
1736
1429
  :documentation_default => 'auto',
1737
1430
  :public => true,
1738
1431
  :type => String,
1739
1432
  :dynamic_name => true,
1740
1433
  :allowed_from_server => false,
1741
- :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1434
+ :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1742
1435
  },
1743
1436
  :'instrumentation.mongo' => {
1744
- :default => instrumentation_value_of(:disable_mongo),
1437
+ :default => 'enabled',
1745
1438
  :documentation_default => 'enabled',
1746
- :public => :true,
1439
+ :public => true,
1747
1440
  :type => String,
1748
1441
  :dynamic_name => true,
1749
1442
  :allowed_from_server => false,
1750
- :description => "Controls auto-instrumentation of Mongo at start up. May be one of [enabled|disabled]."
1443
+ :description => 'Controls auto-instrumentation of Mongo at start up. May be one of: `enabled`, `disabled`.'
1751
1444
  },
1752
1445
  :'instrumentation.net_http' => {
1753
- :default => instrumentation_value_of(:disable_net_http, :prepend_net_instrumentation),
1446
+ :default => 'auto',
1754
1447
  :documentation_default => 'auto',
1755
1448
  :public => true,
1756
1449
  :type => String,
1757
1450
  :dynamic_name => true,
1758
1451
  :allowed_from_server => false,
1759
- :description => "Controls auto-instrumentation of Net::HTTP at start up. May be one of [auto|prepend|chain|disabled]."
1452
+ :description => 'Controls auto-instrumentation of `Net::HTTP` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1760
1453
  },
1761
1454
  :'instrumentation.puma_rack' => {
1762
- :default => instrumentation_value_of(:disable_puma_rack), # TODO: MAJOR VERSION - change to value_of(:'instrumentation.rack') when we remove :disable_puma_rack in 8.0)
1455
+ :default => value_of(:'instrumentation.rack'),
1763
1456
  :documentation_default => 'auto',
1764
1457
  :public => true,
1765
1458
  :type => String,
1766
1459
  :dynamic_name => true,
1767
1460
  :allowed_from_server => false,
1768
- :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
1769
- "`to_app` method in Puma::Rack::Builder to find gems to instrument during " \
1770
- "application startup. May be one of [auto|prepend|chain|disabled]."
1461
+ :description => 'Controls auto-instrumentation of `Puma::Rack`. When enabled, the agent hooks into the ' \
1462
+ '`to_app` method in `Puma::Rack::Builder` to find gems to instrument during ' \
1463
+ 'application startup. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1771
1464
  },
1772
1465
  :'instrumentation.puma_rack_urlmap' => {
1773
- :default => instrumentation_value_of(:disable_puma_rack_urlmap), # TODO: MAJOR VERSION - change to value_of(:'instrumentation.rack_urlmap') when we remove :disable_puma_rack_urlmap in 8.0)
1466
+ :default => value_of(:'instrumentation.rack_urlmap'),
1774
1467
  :documentation_default => 'auto',
1775
1468
  :public => true,
1776
1469
  :type => String,
1777
1470
  :dynamic_name => true,
1778
1471
  :allowed_from_server => false,
1779
- :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1472
+ :description => 'Controls auto-instrumentation of `Puma::Rack::URLMap` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1780
1473
  },
1781
1474
  :'instrumentation.rack' => {
1782
- :default => instrumentation_value_of(:disable_rack),
1475
+ :default => 'auto',
1783
1476
  :documentation_default => 'auto',
1784
1477
  :public => true,
1785
1478
  :type => String,
1786
1479
  :dynamic_name => true,
1787
1480
  :allowed_from_server => false,
1788
- :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
1789
- "`to_app` method in Rack::Builder to find gems to instrument during " \
1790
- "application startup. May be one of [auto|prepend|chain|disabled]."
1481
+ :description => 'Controls auto-instrumentation of Rack. When enabled, the agent hooks into the ' \
1482
+ '`to_app` method in `Rack::Builder` to find gems to instrument during ' \
1483
+ 'application startup. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1791
1484
  },
1792
1485
  :'instrumentation.rack_urlmap' => {
1793
- :default => instrumentation_value_of(:disable_rack_urlmap),
1486
+ :default => 'auto',
1794
1487
  :documentation_default => 'auto',
1795
1488
  :public => true,
1796
1489
  :type => String,
1797
1490
  :dynamic_name => true,
1798
1491
  :allowed_from_server => false,
1799
- :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1492
+ :description => 'Controls auto-instrumentation of `Rack::URLMap` at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1800
1493
  },
1801
1494
  :'instrumentation.rake' => {
1802
- :default => instrumentation_value_of(:disable_rake),
1803
- :documentation_default => 'auto',
1804
- :public => :true,
1495
+ :default => 'auto',
1496
+ :public => true,
1805
1497
  :type => String,
1806
1498
  :dynamic_name => true,
1807
1499
  :allowed_from_server => false,
1808
- :description => "Controls auto-instrumentation of rake at start up. May be one of [auto|prepend|chain|disabled]."
1500
+ :description => 'Controls auto-instrumentation of rake at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1809
1501
  },
1810
1502
  :'instrumentation.redis' => {
1811
- :default => instrumentation_value_of(:disable_redis),
1812
- :documentation_default => 'auto',
1503
+ :default => 'auto',
1813
1504
  :public => true,
1814
1505
  :type => String,
1815
1506
  :dynamic_name => true,
1816
1507
  :allowed_from_server => false,
1817
- :description => "Controls auto-instrumentation of Redis at start up. May be one of [auto|prepend|chain|disabled]."
1508
+ :description => 'Controls auto-instrumentation of Redis at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1818
1509
  },
1819
1510
  :'instrumentation.resque' => {
1820
- :default => instrumentation_value_of(:disable_resque),
1511
+ :default => 'auto',
1821
1512
  :documentation_default => 'auto',
1822
1513
  :public => true,
1823
1514
  :type => String,
1824
1515
  :dynamic_name => true,
1825
1516
  :allowed_from_server => false,
1826
- :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
1517
+ :description => 'Controls auto-instrumentation of resque at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1827
1518
  },
1828
1519
  :'instrumentation.sinatra' => {
1829
- :default => instrumentation_value_of(:disable_sinatra),
1830
- :documentation_default => 'auto',
1831
- :public => :true,
1520
+ :default => 'auto',
1521
+ :public => true,
1832
1522
  :type => String,
1833
1523
  :dynamic_name => true,
1834
1524
  :allowed_from_server => false,
1835
- :description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
1525
+ :description => 'Controls auto-instrumentation of Sinatra at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1836
1526
  },
1837
1527
  :'instrumentation.thread' => {
1838
1528
  :default => 'auto',
@@ -1840,38 +1530,38 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1840
1530
  :type => String,
1841
1531
  :dynamic_name => true,
1842
1532
  :allowed_from_server => false,
1843
- :description => "Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction. This does not enable the agent to automatically trace all threads created (see `instrumentation.thread.tracing`). May be one of [auto|prepend|chain|disabled]."
1533
+ :description => 'Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction. This does not enable the agent to automatically trace all threads created (see `instrumentation.thread.tracing`). May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1844
1534
  },
1845
1535
  :'instrumentation.thread.tracing' => {
1846
- :default => false,
1536
+ :default => true,
1847
1537
  :public => true,
1848
1538
  :type => Boolean,
1849
1539
  :allowed_from_server => false,
1850
- :description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
1540
+ :description => 'Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application.'
1851
1541
  },
1852
1542
  :'thread_ids_enabled' => {
1853
1543
  :default => false,
1854
1544
  :public => false,
1855
1545
  :type => Boolean,
1856
1546
  :allowed_from_server => false,
1857
- :description => "If enabled, will append the current Thread and Fiber object ids onto the segment names of segments created in Threads and concurrent-ruby"
1547
+ :description => 'If enabled, will append the current Thread and Fiber object ids onto the segment names of segments created in Threads and concurrent-ruby'
1858
1548
  },
1859
1549
  :'instrumentation.tilt' => {
1860
- :default => "auto",
1550
+ :default => 'auto',
1861
1551
  :public => true,
1862
1552
  :type => String,
1863
1553
  :dynamic_name => true,
1864
1554
  :allowed_from_server => false,
1865
- :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
1555
+ :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1866
1556
  },
1867
1557
  :'instrumentation.typhoeus' => {
1868
- :default => instrumentation_value_of(:disable_typhoeus),
1558
+ :default => 'auto',
1869
1559
  :documentation_default => 'auto',
1870
1560
  :public => true,
1871
1561
  :type => String,
1872
1562
  :dynamic_name => true,
1873
1563
  :allowed_from_server => false,
1874
- :description => "Controls auto-instrumentation of Typhoeus at start up. May be one of [auto|prepend|chain|disabled]."
1564
+ :description => 'Controls auto-instrumentation of Typhoeus at start up. May be one of: `auto`, `prepend`, `chain`, `disabled`.'
1875
1565
  },
1876
1566
  # Message tracer
1877
1567
  :'message_tracer.segment_parameters.enabled' => {
@@ -1907,12 +1597,17 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1907
1597
  # Rails
1908
1598
  :'defer_rails_initialization' => {
1909
1599
  :default => false,
1910
- :public => false,
1600
+ :public => true,
1911
1601
  :type => Boolean,
1602
+ :external => true, # this config is used directly from the ENV variables
1912
1603
  :allowed_from_server => false,
1913
- :description => 'This configuration option is currently unreachable. Please do not use. ' \
1914
- 'If `true`, when the agent is in an application using Ruby on Rails, it will start after ' \
1915
- 'config/initializers have run.'
1604
+ :description => <<-DESCRIPTION
1605
+ If `true`, when the agent is in an application using Ruby on Rails, it will start after `config/initializers` run.
1606
+
1607
+ <Callout variant="caution">
1608
+ This option may only be set by environment variable.
1609
+ </Callout>
1610
+ DESCRIPTION
1916
1611
  },
1917
1612
  # Rake
1918
1613
  :'rake.tasks' => {
@@ -1934,16 +1629,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1934
1629
  :allowed_from_server => false,
1935
1630
  :description => 'Timeout for waiting on connect to complete before a rake task'
1936
1631
  },
1937
- # Resque
1938
- :'resque.capture_params' => {
1939
- :default => false,
1940
- :public => true,
1941
- :type => Boolean,
1942
- :allowed_from_server => false,
1943
- :dynamic_name => true,
1944
- :deprecated => true,
1945
- :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1946
- },
1947
1632
  # Rules
1948
1633
  :'rules.ignore_url_regexes' => {
1949
1634
  :default => [],
@@ -1953,16 +1638,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1953
1638
  :transform => DefaultSource.method(:convert_to_regexp_list),
1954
1639
  :description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore. For more detail, see [the docs on ignoring specific transactions](/docs/agents/ruby-agent/api-guides/ignoring-specific-transactions/#config-ignoring).'
1955
1640
  },
1956
- # Sidekiq
1957
- :'sidekiq.capture_params' => {
1958
- :default => false,
1959
- :public => true,
1960
- :type => Boolean,
1961
- :allowed_from_server => false,
1962
- :dynamic_name => true,
1963
- :deprecated => true,
1964
- :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1965
- },
1966
1641
  # Slow SQL
1967
1642
  :'slow_sql.enabled' => {
1968
1643
  :default => value_of(:'transaction_tracer.enabled'),
@@ -1994,14 +1669,14 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
1994
1669
  :public => true,
1995
1670
  :type => String,
1996
1671
  :allowed_from_server => true,
1997
- :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1672
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`.'
1998
1673
  },
1999
1674
  :'slow_sql.use_longer_sql_id' => {
2000
1675
  :default => false,
2001
1676
  :public => true,
2002
1677
  :type => Boolean,
2003
1678
  :allowed_from_server => true,
2004
- :description => 'Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of similar queries.'
1679
+ :description => 'Generate a longer `sql_id` for slow SQL traces. `sql_id` is used for aggregation of similar queries.'
2005
1680
  },
2006
1681
  # Span events
2007
1682
  :'span_events.enabled' => {
@@ -2017,14 +1692,14 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2017
1692
  :type => Integer,
2018
1693
  :allowed_from_server => false,
2019
1694
  :external => :infinite_tracing,
2020
- :description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
1695
+ :description => 'Sets the maximum number of span events to buffer when streaming to the trace observer.'
2021
1696
  },
2022
1697
  :'span_events.max_samples_stored' => {
2023
1698
  :default => 2000,
2024
1699
  :public => true,
2025
1700
  :type => Integer,
2026
1701
  :allowed_from_server => true,
2027
- :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
1702
+ :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between `1` and `10000` is valid.'
2028
1703
  },
2029
1704
  # Strip exception messages
2030
1705
  :'strip_exception_messages.enabled' => {
@@ -2151,7 +1826,7 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2151
1826
  :description => 'Real user monitoring license key for the browser timing header.'
2152
1827
  },
2153
1828
  :'browser_monitoring.loader' => {
2154
- :default => DefaultSource.browser_monitoring_loader,
1829
+ :default => 'rum',
2155
1830
  :public => false,
2156
1831
  :type => String,
2157
1832
  :allowed_from_server => true,
@@ -2207,15 +1882,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2207
1882
  :allowed_from_server => true,
2208
1883
  :description => 'Number of seconds betwixt connections to the New Relic data collection service.'
2209
1884
  },
2210
- :disable_grape_instrumentation => {
2211
- :default => false,
2212
- :public => false,
2213
- :type => Boolean,
2214
- :allowed_from_server => false,
2215
- :deprecated => true,
2216
- :description => deprecated_description(:'instrumentation.grape',
2217
- 'If `true`, the agent won\'t install Grape instrumentation.')
2218
- },
2219
1885
  :dispatcher => {
2220
1886
  :default => DefaultSource.dispatcher,
2221
1887
  :public => false,
@@ -2237,31 +1903,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2237
1903
  :allowed_from_server => false,
2238
1904
  :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
2239
1905
  },
2240
- :disable_rake_instrumentation => {
2241
- :default => false,
2242
- :public => false,
2243
- :type => Boolean,
2244
- :allowed_from_server => false,
2245
- :deprecated => true,
2246
- :description => deprecated_description(:'instrumentation.rake', 'Enable or disable Rake instrumentation. Preferred key is `disable_rake`')
2247
- },
2248
- :disable_redis_instrumentation => {
2249
- :default => false,
2250
- :public => false,
2251
- :type => Boolean,
2252
- :deprecated => true,
2253
- :allowed_from_server => false,
2254
- :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
2255
- },
2256
- :cross_application_tracing => {
2257
- :default => nil,
2258
- :allow_nil => true,
2259
- :public => false,
2260
- :type => Boolean,
2261
- :allowed_from_server => false,
2262
- :deprecated => true,
2263
- :description => 'Deprecated in favor of distributed_tracing.enabled'
2264
- },
2265
1906
  :enabled => {
2266
1907
  :default => true,
2267
1908
  :public => false,
@@ -2299,17 +1940,8 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2299
1940
  :allowed_from_server => true,
2300
1941
  :description => 'Number of seconds betwixt connections to the New Relic event collection services.'
2301
1942
  },
2302
- :'event_report_period.analytic_event_data' => {
2303
- :default => 60,
2304
- :public => false,
2305
- :type => Integer,
2306
- :dynamic_name => true,
2307
- :deprecated => true,
2308
- :allowed_from_server => true,
2309
- :description => deprecated_description(:'event_report_period.transaction_event_data', 'Number of seconds betwixt connections to the New Relic transaction event collection services.')
2310
- },
2311
1943
  :'event_report_period.transaction_event_data' => {
2312
- :default => value_of(:'event_report_period.analytic_event_data'),
1944
+ :default => 60,
2313
1945
  :public => false,
2314
1946
  :type => Integer,
2315
1947
  :dynamic_name => true,
@@ -2367,7 +1999,7 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2367
1999
  :public => false,
2368
2000
  :type => String,
2369
2001
  :allowed_from_server => false,
2370
- :description => "URI for the New Relic data collection service."
2002
+ :description => 'URI for the New Relic data collection service.'
2371
2003
  },
2372
2004
  :'infinite_tracing.batching' => {
2373
2005
  :default => true,
@@ -2375,8 +2007,8 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2375
2007
  :type => Boolean,
2376
2008
  :allowed_from_server => false,
2377
2009
  :external => :infinite_tracing,
2378
- :description => "If `true` (the default), data sent to the trace observer is batched\ninstead of sending " \
2379
- "each span individually."
2010
+ :description => 'If `true` (the default), data sent to the trace observer is batched instead of ' \
2011
+ 'sending each span individually.'
2380
2012
  },
2381
2013
  :'infinite_tracing.compression_level' => {
2382
2014
  :default => :high,
@@ -2384,8 +2016,13 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2384
2016
  :type => Symbol,
2385
2017
  :allowed_from_server => false,
2386
2018
  :external => :infinite_tracing,
2387
- :description => "Configure the compression level for data sent to the trace observer\nMay be one of " \
2388
- "[none|low|medium|high]\n'high' is the default. Set the level to 'none' to disable compression"
2019
+ :description => <<~DESC
2020
+ Configure the compression level for data sent to the trace observer.
2021
+
2022
+ May be one of: `:none`, `:low`, `:medium`, `:high`.
2023
+
2024
+ Set the level to `:none` to disable compression.
2025
+ DESC
2389
2026
  },
2390
2027
  :js_agent_file => {
2391
2028
  :default => '',
@@ -2401,14 +2038,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2401
2038
  :allowed_from_server => true,
2402
2039
  :description => 'JavaScript agent loader content.'
2403
2040
  },
2404
- :js_errors_beta => {
2405
- :default => false,
2406
- :public => false,
2407
- :type => Boolean,
2408
- :allowed_from_server => false,
2409
- :deprecated => true,
2410
- :description => 'Enable or disable beta JavaScript error reporting.'
2411
- },
2412
2041
  :keep_alive_timeout => {
2413
2042
  :default => 60,
2414
2043
  :public => false,
@@ -2416,14 +2045,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2416
2045
  :allowed_from_server => true,
2417
2046
  :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
2418
2047
  },
2419
- :keep_retrying => {
2420
- :default => true,
2421
- :public => false,
2422
- :type => Boolean,
2423
- :deprecated => true,
2424
- :allowed_from_server => false,
2425
- :description => 'Enable or disable retrying failed connections to the New Relic data collection service.'
2426
- },
2427
2048
  :max_payload_size_in_bytes => {
2428
2049
  :default => 1000000,
2429
2050
  :public => false,
@@ -2445,15 +2066,6 @@ If `true`, disables agent middleware for Sinatra. This middleware is responsible
2445
2066
  :allowed_from_server => false,
2446
2067
  :description => 'Port for the New Relic data collection service.'
2447
2068
  },
2448
- :prepend_net_instrumentation => {
2449
- :default => true,
2450
- :public => false,
2451
- :type => Boolean,
2452
- :allowed_from_server => false,
2453
- :deprecated => true,
2454
- :description => deprecated_description(:'instrumentation.net_http',
2455
- 'If `true`, uses `Module#prepend` rather than alias_method for Net::HTTP instrumentation.')
2456
- },
2457
2069
  :primary_application_id => {
2458
2070
  :default => nil,
2459
2071
  :allow_nil => true,