newrelic_rpm 7.0.0 → 8.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (320) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.rubocop.yml +1941 -0
  4. data/.yardopts +1 -0
  5. data/Brewfile +10 -0
  6. data/CHANGELOG.md +431 -1
  7. data/CONTRIBUTING.md +32 -5
  8. data/DOCKER.md +167 -0
  9. data/Dockerfile +10 -0
  10. data/Guardfile +8 -8
  11. data/LICENSE +0 -6
  12. data/README.md +20 -18
  13. data/Rakefile +39 -29
  14. data/THIRD_PARTY_NOTICES.md +14 -199
  15. data/bin/mongrel_rpm +8 -9
  16. data/bin/newrelic +1 -1
  17. data/bin/nrdebug +14 -14
  18. data/docker-compose.yml +85 -0
  19. data/init.rb +0 -2
  20. data/lefthook.yml +9 -0
  21. data/lib/new_relic/agent/adaptive_sampler.rb +9 -5
  22. data/lib/new_relic/agent/agent.rb +72 -49
  23. data/lib/new_relic/agent/agent_logger.rb +15 -9
  24. data/lib/new_relic/agent/attribute_filter.rb +31 -31
  25. data/lib/new_relic/agent/attributes.rb +2 -2
  26. data/lib/new_relic/agent/audit_logger.rb +4 -0
  27. data/lib/new_relic/agent/autostart.rb +19 -17
  28. data/lib/new_relic/agent/commands/agent_command.rb +2 -2
  29. data/lib/new_relic/agent/commands/agent_command_router.rb +6 -5
  30. data/lib/new_relic/agent/commands/thread_profiler_session.rb +7 -6
  31. data/lib/new_relic/agent/configuration/default_source.rb +731 -476
  32. data/lib/new_relic/agent/configuration/dotted_hash.rb +3 -3
  33. data/lib/new_relic/agent/configuration/environment_source.rb +5 -4
  34. data/lib/new_relic/agent/configuration/event_harvest_config.rb +39 -16
  35. data/lib/new_relic/agent/configuration/high_security_source.rb +7 -7
  36. data/lib/new_relic/agent/configuration/manager.rb +74 -64
  37. data/lib/new_relic/agent/configuration/mask_defaults.rb +1 -1
  38. data/lib/new_relic/agent/configuration/security_policy_source.rb +73 -73
  39. data/lib/new_relic/agent/configuration/server_source.rb +14 -12
  40. data/lib/new_relic/agent/configuration/yaml_source.rb +26 -5
  41. data/lib/new_relic/agent/connect/request_builder.rb +14 -15
  42. data/lib/new_relic/agent/connect/response_handler.rb +0 -3
  43. data/lib/new_relic/agent/custom_event_aggregator.rb +9 -9
  44. data/lib/new_relic/agent/database/explain_plan_helpers.rb +3 -4
  45. data/lib/new_relic/agent/database/obfuscation_helpers.rb +12 -12
  46. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +2 -2
  47. data/lib/new_relic/agent/database.rb +30 -31
  48. data/lib/new_relic/agent/datastores/metric_helper.rb +13 -11
  49. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +2 -3
  50. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +3 -5
  51. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +1 -2
  52. data/lib/new_relic/agent/datastores/mongo.rb +5 -10
  53. data/lib/new_relic/agent/datastores/redis.rb +2 -4
  54. data/lib/new_relic/agent/datastores.rb +7 -9
  55. data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +9 -9
  56. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +21 -16
  57. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +10 -12
  58. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +42 -43
  59. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +3 -3
  60. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +41 -43
  61. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +25 -25
  62. data/lib/new_relic/agent/distributed_tracing.rb +17 -18
  63. data/lib/new_relic/agent/encoding_normalizer.rb +1 -1
  64. data/lib/new_relic/agent/error_collector.rb +65 -50
  65. data/lib/new_relic/agent/error_event_aggregator.rb +1 -1
  66. data/lib/new_relic/agent/error_filter.rb +173 -0
  67. data/lib/new_relic/agent/error_trace_aggregator.rb +1 -1
  68. data/lib/new_relic/agent/event_aggregator.rb +1 -1
  69. data/lib/new_relic/agent/event_buffer.rb +6 -7
  70. data/lib/new_relic/agent/event_listener.rb +0 -1
  71. data/lib/new_relic/agent/event_loop.rb +14 -14
  72. data/lib/new_relic/agent/external.rb +1 -34
  73. data/lib/new_relic/agent/guid_generator.rb +2 -9
  74. data/lib/new_relic/agent/harvester.rb +3 -4
  75. data/lib/new_relic/agent/heap.rb +1 -3
  76. data/lib/new_relic/agent/hostname.rb +16 -10
  77. data/lib/new_relic/agent/http_clients/abstract.rb +7 -9
  78. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +1 -5
  79. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +4 -4
  80. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +3 -3
  81. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +1 -2
  82. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +8 -3
  83. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +2 -3
  84. data/lib/new_relic/agent/http_clients/uri_util.rb +0 -1
  85. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +2 -3
  86. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +28 -26
  87. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +5 -7
  88. data/lib/new_relic/agent/instrumentation/active_job.rb +12 -5
  89. data/lib/new_relic/agent/instrumentation/active_merchant.rb +17 -3
  90. data/lib/new_relic/agent/instrumentation/active_record.rb +20 -18
  91. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +56 -46
  92. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +28 -25
  93. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +3 -3
  94. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +22 -16
  95. data/lib/new_relic/agent/instrumentation/active_storage.rb +1 -1
  96. data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +23 -0
  97. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +20 -0
  98. data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +12 -0
  99. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +24 -0
  100. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +18 -9
  101. data/lib/new_relic/agent/instrumentation/authlogic.rb +10 -0
  102. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  103. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +8 -9
  104. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +52 -46
  105. data/lib/new_relic/agent/instrumentation/curb/chain.rb +20 -21
  106. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +34 -38
  107. data/lib/new_relic/agent/instrumentation/curb/prepend.rb +10 -11
  108. data/lib/new_relic/agent/instrumentation/data_mapper.rb +22 -10
  109. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +5 -7
  110. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +5 -9
  111. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +23 -4
  112. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +2 -2
  113. data/lib/new_relic/agent/instrumentation/excon.rb +3 -23
  114. data/lib/new_relic/agent/instrumentation/grape/chain.rb +1 -2
  115. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +6 -7
  116. data/lib/new_relic/agent/instrumentation/grape.rb +2 -3
  117. data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +2 -3
  118. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +0 -1
  119. data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +0 -2
  120. data/lib/new_relic/agent/instrumentation/httprb/chain.rb +2 -2
  121. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +6 -6
  122. data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +1 -1
  123. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +2 -3
  124. data/lib/new_relic/agent/instrumentation/logger/chain.rb +21 -0
  125. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +58 -0
  126. data/lib/new_relic/agent/instrumentation/logger/prepend.rb +13 -0
  127. data/lib/new_relic/agent/instrumentation/logger.rb +26 -0
  128. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +7 -2
  129. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +5 -1
  130. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +9 -2
  131. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +9 -10
  132. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +5 -6
  133. data/lib/new_relic/agent/instrumentation/mongo.rb +3 -141
  134. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +4 -4
  135. data/lib/new_relic/agent/instrumentation/net_http/chain.rb +3 -4
  136. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +5 -5
  137. data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +4 -4
  138. data/lib/new_relic/agent/instrumentation/net_http.rb +7 -2
  139. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +2 -3
  140. data/lib/new_relic/agent/instrumentation/padrino/chain.rb +23 -19
  141. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +3 -2
  142. data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +2 -2
  143. data/lib/new_relic/agent/instrumentation/padrino.rb +2 -5
  144. data/lib/new_relic/agent/instrumentation/queue_time.rb +8 -8
  145. data/lib/new_relic/agent/instrumentation/rack/chain.rb +8 -7
  146. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +2 -1
  147. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +4 -5
  148. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +2 -2
  149. data/lib/new_relic/agent/instrumentation/rack.rb +1 -1
  150. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +11 -47
  151. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +2 -2
  152. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +0 -1
  153. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +11 -0
  154. data/lib/new_relic/agent/instrumentation/rake/chain.rb +0 -5
  155. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +6 -6
  156. data/lib/new_relic/agent/instrumentation/rake.rb +1 -1
  157. data/lib/new_relic/agent/instrumentation/redis/chain.rb +6 -6
  158. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +2 -2
  159. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +1 -1
  160. data/lib/new_relic/agent/instrumentation/redis.rb +5 -1
  161. data/lib/new_relic/agent/instrumentation/resque/chain.rb +2 -3
  162. data/lib/new_relic/agent/instrumentation/resque/helper.rb +19 -0
  163. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +9 -7
  164. data/lib/new_relic/agent/instrumentation/resque/prepend.rb +1 -2
  165. data/lib/new_relic/agent/instrumentation/resque.rb +17 -8
  166. data/lib/new_relic/agent/instrumentation/sequel.rb +7 -9
  167. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +1 -1
  168. data/lib/new_relic/agent/instrumentation/sidekiq.rb +22 -1
  169. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +0 -1
  170. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +12 -5
  171. data/lib/new_relic/agent/instrumentation/sinatra.rb +21 -11
  172. data/lib/new_relic/agent/instrumentation/sunspot.rb +11 -1
  173. data/lib/new_relic/agent/instrumentation/thread/chain.rb +24 -0
  174. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +27 -0
  175. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +22 -0
  176. data/lib/new_relic/agent/instrumentation/thread.rb +20 -0
  177. data/lib/new_relic/agent/instrumentation/tilt/chain.rb +24 -0
  178. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +40 -0
  179. data/lib/new_relic/agent/instrumentation/tilt/prepend.rb +13 -0
  180. data/lib/new_relic/agent/instrumentation/tilt.rb +25 -0
  181. data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +4 -4
  182. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +3 -5
  183. data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +1 -1
  184. data/lib/new_relic/agent/internal_agent_error.rb +1 -1
  185. data/lib/new_relic/agent/javascript_instrumentor.rb +38 -33
  186. data/lib/new_relic/agent/linking_metadata.rb +45 -0
  187. data/lib/new_relic/agent/local_log_decorator.rb +37 -0
  188. data/lib/new_relic/agent/log_event_aggregator.rb +234 -0
  189. data/lib/new_relic/agent/log_priority.rb +20 -0
  190. data/lib/new_relic/agent/logging.rb +11 -8
  191. data/lib/new_relic/agent/memory_logger.rb +1 -1
  192. data/lib/new_relic/agent/messaging.rb +46 -62
  193. data/lib/new_relic/agent/method_tracer.rb +145 -144
  194. data/lib/new_relic/agent/method_tracer_helpers.rb +82 -2
  195. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +21 -13
  196. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +2 -2
  197. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +0 -1
  198. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +4 -7
  199. data/lib/new_relic/agent/monitors.rb +1 -2
  200. data/lib/new_relic/agent/new_relic_service/encoders.rb +4 -4
  201. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +1 -1
  202. data/lib/new_relic/agent/new_relic_service/marshaller.rb +1 -1
  203. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +4 -3
  204. data/lib/new_relic/agent/new_relic_service.rb +61 -53
  205. data/lib/new_relic/agent/noticible_error.rb +0 -2
  206. data/lib/new_relic/agent/null_logger.rb +6 -2
  207. data/lib/new_relic/agent/obfuscator.rb +6 -8
  208. data/lib/new_relic/agent/parameter_filtering.rb +16 -8
  209. data/lib/new_relic/agent/payload_metric_mapping.rb +8 -9
  210. data/lib/new_relic/agent/pipe_channel_manager.rb +15 -12
  211. data/lib/new_relic/agent/pipe_service.rb +6 -3
  212. data/lib/new_relic/agent/priority_sampled_buffer.rb +4 -7
  213. data/lib/new_relic/agent/rules_engine/replacement_rule.rb +9 -9
  214. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +12 -12
  215. data/lib/new_relic/agent/rules_engine.rb +2 -2
  216. data/lib/new_relic/agent/sampler.rb +2 -3
  217. data/lib/new_relic/agent/sampler_collection.rb +2 -3
  218. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  219. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +10 -7
  220. data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -3
  221. data/lib/new_relic/agent/samplers/vm_sampler.rb +18 -18
  222. data/lib/new_relic/agent/span_event_aggregator.rb +10 -10
  223. data/lib/new_relic/agent/span_event_primitive.rb +48 -45
  224. data/lib/new_relic/agent/sql_sampler.rb +9 -9
  225. data/lib/new_relic/agent/stats.rb +62 -37
  226. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +7 -9
  227. data/lib/new_relic/agent/stats_engine/stats_hash.rb +8 -9
  228. data/lib/new_relic/agent/stats_engine.rb +7 -7
  229. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -2
  230. data/lib/new_relic/agent/system_info.rb +22 -20
  231. data/lib/new_relic/agent/threading/agent_thread.rb +4 -5
  232. data/lib/new_relic/agent/threading/backtrace_node.rb +6 -9
  233. data/lib/new_relic/agent/threading/backtrace_service.rb +12 -13
  234. data/lib/new_relic/agent/threading/thread_profile.rb +16 -19
  235. data/lib/new_relic/agent/tracer.rb +57 -72
  236. data/lib/new_relic/agent/transaction/abstract_segment.rb +38 -10
  237. data/lib/new_relic/agent/transaction/datastore_segment.rb +7 -6
  238. data/lib/new_relic/agent/transaction/distributed_tracer.rb +8 -9
  239. data/lib/new_relic/agent/transaction/distributed_tracing.rb +21 -22
  240. data/lib/new_relic/agent/transaction/external_request_segment.rb +6 -5
  241. data/lib/new_relic/agent/transaction/message_broker_segment.rb +24 -30
  242. data/lib/new_relic/agent/transaction/request_attributes.rb +7 -7
  243. data/lib/new_relic/agent/transaction/segment.rb +6 -3
  244. data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +0 -2
  245. data/lib/new_relic/agent/transaction/trace.rb +8 -8
  246. data/lib/new_relic/agent/transaction/trace_context.rb +14 -16
  247. data/lib/new_relic/agent/transaction/trace_node.rb +16 -16
  248. data/lib/new_relic/agent/transaction/tracing.rb +9 -6
  249. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -2
  250. data/lib/new_relic/agent/transaction.rb +132 -119
  251. data/lib/new_relic/agent/transaction_error_primitive.rb +18 -16
  252. data/lib/new_relic/agent/transaction_event_aggregator.rb +7 -8
  253. data/lib/new_relic/agent/transaction_event_primitive.rb +29 -29
  254. data/lib/new_relic/agent/transaction_event_recorder.rb +1 -1
  255. data/lib/new_relic/agent/transaction_metrics.rb +8 -7
  256. data/lib/new_relic/agent/transaction_sampler.rb +0 -1
  257. data/lib/new_relic/agent/transaction_time_aggregator.rb +11 -11
  258. data/lib/new_relic/agent/utilization/aws.rb +32 -2
  259. data/lib/new_relic/agent/utilization/azure.rb +1 -1
  260. data/lib/new_relic/agent/utilization/vendor.rb +15 -2
  261. data/lib/new_relic/agent/utilization_data.rb +3 -4
  262. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  263. data/lib/new_relic/agent/vm/mri_vm.rb +13 -1
  264. data/lib/new_relic/agent/vm/snapshot.rb +4 -4
  265. data/lib/new_relic/agent/worker_loop.rb +8 -10
  266. data/lib/new_relic/agent.rb +36 -41
  267. data/lib/new_relic/cli/command.rb +15 -17
  268. data/lib/new_relic/cli/commands/deployments.rb +21 -23
  269. data/lib/new_relic/cli/commands/install.rb +6 -10
  270. data/lib/new_relic/coerce.rb +5 -8
  271. data/lib/new_relic/collection_helper.rb +48 -47
  272. data/lib/new_relic/constants.rb +0 -4
  273. data/lib/new_relic/control/class_methods.rb +2 -2
  274. data/lib/new_relic/control/frameworks/external.rb +1 -1
  275. data/lib/new_relic/control/frameworks/rails.rb +5 -6
  276. data/lib/new_relic/control/frameworks/rails3.rb +2 -3
  277. data/lib/new_relic/control/frameworks/ruby.rb +2 -2
  278. data/lib/new_relic/control/frameworks/sinatra.rb +6 -0
  279. data/lib/new_relic/control/instance_methods.rb +4 -5
  280. data/lib/new_relic/control/instrumentation.rb +35 -5
  281. data/lib/new_relic/control/server_methods.rb +2 -3
  282. data/lib/new_relic/control.rb +0 -1
  283. data/lib/new_relic/dependency_detection.rb +7 -9
  284. data/lib/new_relic/environment_report.rb +16 -18
  285. data/lib/new_relic/helper.rb +45 -5
  286. data/lib/new_relic/language_support.rb +20 -2
  287. data/lib/new_relic/latest_changes.rb +2 -2
  288. data/lib/new_relic/local_environment.rb +9 -7
  289. data/lib/new_relic/metric_data.rb +6 -7
  290. data/lib/new_relic/metric_spec.rb +3 -3
  291. data/lib/new_relic/noticed_error.rb +18 -19
  292. data/lib/new_relic/rack/agent_middleware.rb +2 -2
  293. data/lib/new_relic/rack/browser_monitoring.rb +9 -9
  294. data/lib/new_relic/recipes/capistrano3.rb +11 -13
  295. data/lib/new_relic/recipes/capistrano_legacy.rb +11 -14
  296. data/lib/new_relic/supportability_helper.rb +2 -2
  297. data/lib/new_relic/traced_thread.rb +35 -0
  298. data/lib/new_relic/version.rb +5 -16
  299. data/lib/newrelic_rpm.rb +10 -34
  300. data/lib/sequel/extensions/newrelic_instrumentation.rb +4 -7
  301. data/lib/sequel/plugins/newrelic_instrumentation.rb +3 -9
  302. data/lib/tasks/all.rb +2 -2
  303. data/lib/tasks/config.html.erb +14 -25
  304. data/lib/tasks/config.rake +36 -27
  305. data/lib/tasks/multiverse.rb +4 -6
  306. data/lib/tasks/tests.rake +3 -7
  307. data/newrelic.yml +610 -3
  308. data/newrelic_rpm.gemspec +14 -14
  309. data/recipes/newrelic.rb +1 -1
  310. data/test/agent_helper.rb +98 -59
  311. metadata +69 -20
  312. data/ROADMAP.md +0 -24
  313. data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +0 -53
  314. data/lib/new_relic/agent/instrumentation/excon/connection.rb +0 -49
  315. data/lib/new_relic/agent/instrumentation/merb/controller.rb +0 -44
  316. data/lib/new_relic/agent/instrumentation/merb/errors.rb +0 -33
  317. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +0 -125
  318. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +0 -46
  319. data/lib/new_relic/agent/supported_versions.rb +0 -275
  320. data/lib/new_relic/control/frameworks/merb.rb +0 -29
@@ -7,7 +7,6 @@ require 'forwardable'
7
7
  module NewRelic
8
8
  module Agent
9
9
  module Configuration
10
-
11
10
  # Helper since default Procs are evaluated in the context of this module
12
11
  def self.value_of(key)
13
12
  Proc.new do
@@ -27,7 +26,7 @@ module NewRelic
27
26
  # - if user set prepend to `false` then we use method_alias chaining
28
27
  # - auto, when returned means, try to use prepend unless conflicting gems discovered
29
28
  #
30
- def self.instrumentation_value_of(disable_key, prepend_key=nil)
29
+ def self.instrumentation_value_of(disable_key, prepend_key = nil)
31
30
  Proc.new do
32
31
  if NewRelic::Agent.config[disable_key]
33
32
  "disabled"
@@ -39,9 +38,17 @@ module NewRelic
39
38
  end
40
39
  end
41
40
 
41
+ def self.instrumentation_value_from_boolean(key)
42
+ Proc.new do
43
+ NewRelic::Agent.config[key] ? 'auto' : 'disabled'
44
+ end
45
+ end
46
+
47
+ # Marks the config option as deprecated in the documentation once generated.
48
+ # Does not appear in logs.
42
49
  def self.deprecated_description new_setting, description
43
50
  link_ref = new_setting.to_s.gsub(".", "-")
44
- %{<a href="##{link_ref}"><code>#{new_setting}</code>}
51
+ %{Please see: [#{new_setting}](docs/agents/ruby-agent/configuration/ruby-agent-configuration##{link_ref}). \n\n#{description}}
45
52
  end
46
53
 
47
54
  class Boolean
@@ -76,9 +83,9 @@ module NewRelic
76
83
  def self.config_search_paths
77
84
  Proc.new {
78
85
  paths = [
79
- File.join("config","newrelic.yml"),
86
+ File.join("config", "newrelic.yml"),
80
87
  File.join("newrelic.yml"),
81
- File.join("config","newrelic.yml.erb"),
88
+ File.join("config", "newrelic.yml.erb"),
82
89
  File.join("newrelic.yml.erb")
83
90
  ]
84
91
 
@@ -120,14 +127,11 @@ module NewRelic
120
127
  Proc.new {
121
128
  case
122
129
  when defined?(::NewRelic::TEST) then :test
123
- when defined?(::Merb) && defined?(::Merb::Plugins) then :merb
124
130
  when defined?(::Rails::VERSION)
125
131
  case Rails::VERSION::MAJOR
126
- when 0..2
127
- :rails
128
132
  when 3
129
133
  :rails3
130
- when 4..6
134
+ when 4..7
131
135
  :rails_notifications
132
136
  else
133
137
  ::NewRelic::Agent.logger.warn "Detected untested Rails version #{Rails::VERSION::STRING}"
@@ -143,8 +147,8 @@ module NewRelic
143
147
  def self.agent_enabled
144
148
  Proc.new {
145
149
  NewRelic::Agent.config[:enabled] &&
146
- (NewRelic::Agent.config[:test_mode] || NewRelic::Agent.config[:monitor_mode]) &&
147
- NewRelic::Agent::Autostart.agent_should_start?
150
+ (NewRelic::Agent.config[:test_mode] || NewRelic::Agent.config[:monitor_mode]) &&
151
+ NewRelic::Agent::Autostart.agent_should_start?
148
152
  }
149
153
  end
150
154
 
@@ -153,7 +157,7 @@ module NewRelic
153
157
  def self.audit_log_path
154
158
  Proc.new {
155
159
  log_file_path = NewRelic::Agent.config[:log_file_path]
156
- wants_stdout = (log_file_path.upcase == 'STDOUT')
160
+ wants_stdout = (log_file_path.upcase == 'STDOUT')
157
161
  audit_log_dir = wants_stdout ? DEFAULT_LOG_DIR : log_file_path
158
162
 
159
163
  File.join(audit_log_dir, 'newrelic_audit.log')
@@ -176,7 +180,7 @@ module NewRelic
176
180
  # set. Once JS errors are GA, browser_monitoring.loader can stop
177
181
  # being dynamic.
178
182
  def self.browser_monitoring_loader
179
- Proc.new { NewRelic::Agent.config[:js_errors_beta] ? "full" : "rum"}
183
+ Proc.new { NewRelic::Agent.config[:js_errors_beta] ? "full" : "rum" }
180
184
  end
181
185
 
182
186
  def self.transaction_tracer_transaction_threshold
@@ -243,17 +247,15 @@ module NewRelic
243
247
  end
244
248
 
245
249
  def self.convert_to_constant_list(raw_value)
246
- const_names = convert_to_list(raw_value)
247
- const_names.map! do |class_name|
248
- const = ::NewRelic::LanguageSupport.constantize(class_name)
249
-
250
- unless const
251
- NewRelic::Agent.logger.warn("Ignoring unrecognized constant '#{class_name}' in #{raw_value}")
252
- end
250
+ return NewRelic::EMPTY_ARRAY if raw_value.nil? || raw_value.empty?
253
251
 
252
+ constants = convert_to_list(raw_value).map! do |class_name|
253
+ const = ::NewRelic::LanguageSupport.constantize(class_name)
254
+ NewRelic::Agent.logger.warn("Ignoring invalid constant '#{class_name}' in #{raw_value}") unless const
254
255
  const
255
256
  end
256
- const_names.compact
257
+ constants.compact!
258
+ constants
257
259
  end
258
260
 
259
261
  def self.enforce_fallback(allowed_values: nil, fallback: nil)
@@ -325,14 +327,15 @@ module NewRelic
325
327
  :public => true,
326
328
  :type => String,
327
329
  :allowed_from_server => false,
328
- :description => 'Your New Relic <a href="https://docs.newrelic.com/docs/accounts-partnerships/accounts/account-setup/license-key">license key</a>.'
330
+ :description => 'Your New Relic [license key](/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key).'
329
331
  },
330
332
  :agent_enabled => {
331
333
  :default => DefaultSource.agent_enabled,
334
+ :documentation_default => true,
332
335
  :public => true,
333
336
  :type => Boolean,
334
337
  :allowed_from_server => false,
335
- :description => 'If <code>true</code>, allows the Ruby agent to run.'
338
+ :description => 'If `true`, allows the Ruby agent to run.'
336
339
  },
337
340
  :enabled => {
338
341
  :default => true,
@@ -348,43 +351,44 @@ module NewRelic
348
351
  :type => String,
349
352
  :allowed_from_server => false,
350
353
  :transform => DefaultSource.method(:convert_to_list_on_semicolon),
351
- :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>.'
354
+ :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`.'
352
355
  },
353
356
  :entity_guid => {
354
357
  :default => nil,
355
358
  :allow_nil => true,
356
- :public => true,
359
+ :public => false,
357
360
  :type => String,
358
361
  :allowed_from_server => true,
359
- :description => 'The <a href="https://docs.newrelic.com/attribute-dictionary/span/entityguid">Entity GUID</a> for the entity running this agent.'
362
+ :description => 'The [Entity GUID](/attribute-dictionary/span/entityguid) for the entity running your agent.'
360
363
  },
361
364
  :monitor_mode => {
362
365
  :default => value_of(:enabled),
366
+ :documentation_default => true,
363
367
  :public => true,
364
368
  :type => Boolean,
365
369
  :allowed_from_server => false,
366
- :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>.'
370
+ :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).'
367
371
  },
368
372
  :test_mode => {
369
373
  :default => false,
370
374
  :public => false,
371
375
  :type => Boolean,
372
376
  :allowed_from_server => false,
373
- :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.'
377
+ :description => 'Used in tests for the agent to start up, but not connect to the collector. Formerly used `developer_mode` in test config for this purpose.'
374
378
  },
375
379
  :log_level => {
376
380
  :default => 'info',
377
381
  :public => true,
378
382
  :type => String,
379
383
  :allowed_from_server => false,
380
- :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>.'
384
+ :description => 'Sets the level of detail of log messages. Possible log levels, in increasing verbosity, are: `error`, `warn`, `info` or `debug`.'
381
385
  },
382
386
  :high_security => {
383
387
  :default => false,
384
388
  :public => true,
385
389
  :type => Boolean,
386
390
  :allowed_from_server => false,
387
- :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.'
391
+ :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.'
388
392
  },
389
393
  :security_policies_token => {
390
394
  :default => '',
@@ -399,7 +403,7 @@ module NewRelic
399
403
  :public => true,
400
404
  :type => String,
401
405
  :allowed_from_server => false,
402
- :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.'
406
+ :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.'
403
407
  },
404
408
  :proxy_port => {
405
409
  :default => 8080,
@@ -407,7 +411,7 @@ module NewRelic
407
411
  :public => true,
408
412
  :type => Integer,
409
413
  :allowed_from_server => false,
410
- :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.'
414
+ :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.'
411
415
  },
412
416
  :proxy_user => {
413
417
  :default => nil,
@@ -416,7 +420,7 @@ module NewRelic
416
420
  :type => String,
417
421
  :allowed_from_server => false,
418
422
  :exclude_from_reported_settings => true,
419
- :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.'
423
+ :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.'
420
424
  },
421
425
  :proxy_pass => {
422
426
  :default => nil,
@@ -425,28 +429,20 @@ module NewRelic
425
429
  :type => String,
426
430
  :allowed_from_server => false,
427
431
  :exclude_from_reported_settings => true,
428
- :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.'
432
+ :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.'
429
433
  },
430
434
  :capture_params => {
431
435
  :default => false,
432
436
  :public => true,
433
437
  :type => Boolean,
434
438
  :allowed_from_server => false,
435
- :description => 'When <code>true</code>, the agent captures HTTP request parameters ' \
436
- 'and attaches them to transaction traces, traced errors, and ' \
437
- '<a href="https://docs.newrelic.com/attribute-dictionary?attribute_name=&events_tids%5B%5D=8241">'\
438
- '<code>TransactionError</code> events.' \
439
- "\n" \
440
- '<div class="callout-warning">' \
441
- "\n" \
442
- '<p>When using the <code>capture_params</code> setting, the Ruby agent will not attempt ' \
443
- 'to filter secret information. <b>Recommendation:</b> To filter secret information from ' \
444
- 'request parameters, use the <a href="/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby">' \
445
- '<code>attributes.include</code> setting</a> instead. For more information, see the ' \
446
- '<a href="/docs/agents/ruby-agent/attributes/ruby-attribute-examples#ex_req_params">' \
447
- 'Ruby attribute examples</a>.' \
448
- "</p>\n" \
449
- '</div>'
439
+ :description => <<-DESCRIPTION
440
+ 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).
441
+
442
+ <Callout variant="caution">
443
+ 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>.
444
+ </Callout>
445
+ DESCRIPTION
450
446
  },
451
447
  :config_path => {
452
448
  :default => DefaultSource.config_path,
@@ -481,21 +477,21 @@ module NewRelic
481
477
  :public => true,
482
478
  :type => String,
483
479
  :allowed_from_server => false,
484
- :description => 'Specify a list of constants that should prevent the agent from starting automatically. Separate individual constants with a comma <code>,</code>. For example, <code>Rails::Console,UninstrumentedBackgroundJob</code>.'
480
+ :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`.'
485
481
  },
486
482
  :'autostart.denylisted_executables' => {
487
483
  :default => 'irb,rspec',
488
484
  :public => true,
489
485
  :type => String,
490
486
  :allowed_from_server => false,
491
- :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, <code>rake,my_ruby_script.rb</code>.'
487
+ :description => 'Defines a comma-delimited list of executables that the agent should not instrument. For example, `rake,my_ruby_script.rb`.'
492
488
  },
493
489
  :'autostart.denylisted_rake_tasks' => {
494
490
  :default => AUTOSTART_DENYLISTED_RAKE_TASKS,
495
491
  :public => true,
496
492
  :type => String,
497
493
  :allowed_from_server => false,
498
- :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, <code>assets:precompile,db:migrate</code>.'
494
+ :description => 'Defines a comma-delimited list of Rake tasks that the agent should not instrument. For example, `assets:precompile,db:migrate`.'
499
495
  },
500
496
 
501
497
  :disable_rake => {
@@ -504,7 +500,7 @@ module NewRelic
504
500
  :type => Boolean,
505
501
  :allowed_from_server => false,
506
502
  :deprecated => true,
507
- :description => deprecated_description(:'instrumentation.rake', 'If <code>true</code>, disables Rake instrumentation.')
503
+ :description => deprecated_description(:'instrumentation.rake', 'If `true`, disables Rake instrumentation.')
508
504
  },
509
505
  :disable_rake_instrumentation => {
510
506
  :default => false,
@@ -520,7 +516,11 @@ module NewRelic
520
516
  :type => Array,
521
517
  :allowed_from_server => false,
522
518
  :transform => DefaultSource.method(:convert_to_regexp_list),
523
- :description => 'Specify an array of Rake tasks to automatically instrument.'
519
+ :description => 'Specify an Array of Rake tasks to automatically instrument. ' \
520
+ 'This configuration option converts the Array to a RegEx list. If you\'d like '\
521
+ 'to allow all tasks by default, use `rake.tasks: [.+]`. No rake tasks will be '\
522
+ 'instrumented unless they\'re added to this list. For more information, '\
523
+ 'visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].'
524
524
  },
525
525
  :'rake.connect_timeout' => {
526
526
  :default => 10,
@@ -535,14 +535,15 @@ module NewRelic
535
535
  :type => Float,
536
536
  :allowed_from_server => true,
537
537
  :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>.'
538
+ :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).'
539
539
  },
540
540
  :'strip_exception_messages.enabled' => {
541
541
  :default => value_of(:high_security),
542
+ :documentation_default => false,
542
543
  :public => true,
543
544
  :type => Boolean,
544
545
  :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
+ :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).'
546
547
  },
547
548
  :'strip_exception_messages.allowed_classes' => {
548
549
  :default => '',
@@ -550,7 +551,7 @@ module NewRelic
550
551
  :type => String,
551
552
  :allowed_from_server => false,
552
553
  :transform => DefaultSource.method(:convert_to_constant_list),
553
- :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>.'
554
+ :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"`.'
554
555
  },
555
556
  :host => {
556
557
  :default => DefaultSource.host,
@@ -585,14 +586,14 @@ module NewRelic
585
586
  :public => true,
586
587
  :type => Boolean,
587
588
  :allowed_from_server => false,
588
- :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.'
589
+ :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.'
589
590
  },
590
591
  :send_data_on_exit => {
591
592
  :default => true,
592
593
  :public => true,
593
594
  :type => Boolean,
594
595
  :allowed_from_server => false,
595
- :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.'
596
+ :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.'
596
597
  },
597
598
  :max_payload_size_in_bytes => {
598
599
  :default => 1000000,
@@ -655,8 +656,17 @@ module NewRelic
655
656
  :public => false,
656
657
  :type => Integer,
657
658
  :dynamic_name => true,
659
+ :deprecated => true,
660
+ :allowed_from_server => true,
661
+ :description => deprecated_description(:'event_report_period.transaction_event_data', 'Number of seconds betwixt connections to the New Relic transaction event collection services.')
662
+ },
663
+ :'event_report_period.transaction_event_data' => {
664
+ :default => value_of(:'event_report_period.analytic_event_data'),
665
+ :public => false,
666
+ :type => Integer,
667
+ :dynamic_name => true,
658
668
  :allowed_from_server => true,
659
- :description => 'Number of seconds betwixt connections to the New Relic analytic event collection services.'
669
+ :description => 'Number of seconds betwixt connections to the New Relic transaction event collection services.'
660
670
  },
661
671
  :'event_report_period.custom_event_data' => {
662
672
  :default => 60,
@@ -674,6 +684,14 @@ module NewRelic
674
684
  :allowed_from_server => true,
675
685
  :description => 'Number of seconds betwixt connections to the New Relic error event collection services.'
676
686
  },
687
+ :'event_report_period.log_event_data' => {
688
+ :default => 60,
689
+ :public => false,
690
+ :type => Integer,
691
+ :dynamic_name => true,
692
+ :allowed_from_server => true,
693
+ :description => 'Number of seconds betwixt connections to the New Relic log event collection services.'
694
+ },
677
695
  :'event_report_period.span_event_data' => {
678
696
  :default => 60,
679
697
  :public => false,
@@ -696,11 +714,11 @@ module NewRelic
696
714
  :type => Boolean,
697
715
  :allowed_from_server => false,
698
716
  :description => 'Forces the exit handler that sends all cached data to collector ' \
699
- 'before shuttng down to be installed regardless of detecting scenarios where it generally should not be. ' \
717
+ 'before shutting down to be installed regardless of detecting scenarios where it generally should not be. ' \
700
718
  'Known use-case for this option is where Sinatra is running as an embedded service within another framework ' \
701
- 'and the agent is detecting the Sinatra app and skipping the at_exit handler as a result. Sinatra classically ' \
702
- 'runs the entire application in an at_exit block and would otherwise misbehave if the Agent\'s at_exit handler ' \
703
- 'is also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
719
+ 'and the agent is detecting the Sinatra app and skipping the `at_exit` handler as a result. Sinatra classically ' \
720
+ 'runs the entire application in an `at_exit` block and would otherwise misbehave if the Agent\'s `at_exit` handler ' \
721
+ 'was also installed in those circumstances. Note: `send_data_on_exit` should also be set to `true` in tandem with this setting.'
704
722
  },
705
723
  :force_reconnect => {
706
724
  :default => false,
@@ -735,10 +753,11 @@ module NewRelic
735
753
  :public => true,
736
754
  :type => Boolean,
737
755
  :allowed_from_server => false,
738
- :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>.'
756
+ :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).'
739
757
  },
740
758
  :'audit_log.path' => {
741
759
  :default => DefaultSource.audit_log_path,
760
+ :documentation_default => 'config/newrelic_audit.log',
742
761
  :public => true,
743
762
  :type => String,
744
763
  :allowed_from_server => false,
@@ -757,7 +776,7 @@ module NewRelic
757
776
  :public => true,
758
777
  :type => Boolean,
759
778
  :allowed_from_server => false,
760
- :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).'
779
+ :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).'
761
780
  },
762
781
  :disable_resque => {
763
782
  :default => false,
@@ -765,14 +784,14 @@ module NewRelic
765
784
  :type => Boolean,
766
785
  :deprecated => true,
767
786
  :allowed_from_server => false,
768
- :description => deprecated_description(:'instrumentation.resque', 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/resque-instrumentation">Resque instrumentation</a>.')
787
+ :description => deprecated_description(:'instrumentation.resque', 'If `true`, disables [Resque instrumentation](/docs/agents/ruby-agent/background-jobs/resque-instrumentation).')
769
788
  },
770
789
  :disable_sidekiq => {
771
790
  :default => false,
772
791
  :public => true,
773
792
  :type => Boolean,
774
793
  :allowed_from_server => false,
775
- :description => 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation">Sidekiq instrumentation</a>.'
794
+ :description => 'If `true`, disables [Sidekiq instrumentation](/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation).'
776
795
  },
777
796
  :disable_dj => {
778
797
  :default => false,
@@ -780,29 +799,46 @@ module NewRelic
780
799
  :deprecated => true,
781
800
  :type => Boolean,
782
801
  :allowed_from_server => false,
783
- :description => deprecated_description(:'instrumentation.delayed_job', 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/delayedjob">Delayed::Job instrumentation</a>.'
784
- )
802
+ :description => deprecated_description(:'instrumentation.delayed_job', 'If `true`, disables [Delayed::Job instrumentation](/docs/agents/ruby-agent/background-jobs/delayedjob).')
785
803
  },
786
804
  :disable_sinatra => {
787
805
  :default => false,
788
806
  :public => true,
789
807
  :type => Boolean,
808
+ :deprecated => true,
790
809
  :allowed_from_server => false,
791
- :description => deprecated_description(:'instrumentation.sinatra', 'If <code>true</code> , disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/sinatra-support">Sinatra instrumentation</a>.' )
810
+ :description => deprecated_description(:'instrumentation.sinatra', 'If `true` , disables [Sinatra instrumentation](/docs/agents/ruby-agent/frameworks/sinatra-support).')
792
811
  },
793
812
  :disable_sinatra_auto_middleware => {
794
813
  :default => false,
795
814
  :public => true,
796
815
  :type => Boolean,
797
816
  :allowed_from_server => false,
798
- :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>.'
817
+ :description => <<-DESCRIPTION
818
+ 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).
819
+
820
+ <Callout variant="important">
821
+ Cross application tracing is deprecated in favor of [distributed tracing](https://docs.newrelic.com/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.
822
+
823
+ To continue using cross application tracing, update the following options in your `newrelic.yml` configuration file:
824
+
825
+ ```
826
+ # newrelic.yml
827
+
828
+ cross_application_tracer:
829
+ enabled: true
830
+ distributed_tracing:
831
+ enabled: false
832
+ ```
833
+ </Callout>
834
+ DESCRIPTION
799
835
  },
800
836
  :disable_view_instrumentation => {
801
837
  :default => false,
802
838
  :public => true,
803
839
  :type => Boolean,
804
840
  :allowed_from_server => false,
805
- :description => 'If <code>true</code>, disables view instrumentation.'
841
+ :description => 'If `true`, disables view instrumentation.'
806
842
  },
807
843
  :disable_harvest_thread => {
808
844
  :default => false,
@@ -820,17 +856,18 @@ module NewRelic
820
856
  },
821
857
  :disable_activerecord_instrumentation => {
822
858
  :default => value_of(:skip_ar_instrumentation),
859
+ :documentation_default => false,
823
860
  :public => true,
824
861
  :type => Boolean,
825
862
  :allowed_from_server => false,
826
- :description => 'If <code>true</code>, disables active record instrumentation.'
863
+ :description => 'If `true`, disables active record instrumentation.'
827
864
  },
828
865
  :prepend_active_record_instrumentation => {
829
866
  :default => false,
830
867
  :public => true,
831
868
  :type => Boolean,
832
869
  :allowed_from_server => false,
833
- :description => 'If <code>true</code>, uses Module.prepend rather than alias_method for ActiveRecord instrumentation.'
870
+ :description => 'If `true`, uses `Module#prepend` rather than `alias_method` for ActiveRecord instrumentation.'
834
871
  },
835
872
  :prepend_net_instrumentation => {
836
873
  :default => true,
@@ -839,11 +876,11 @@ module NewRelic
839
876
  :allowed_from_server => false,
840
877
  :deprecated => true,
841
878
  :description => deprecated_description(:'instrumentation.net_http',
842
- 'If <code>true</code>, uses Module.prepend rather than alias_method for Net::HTTP instrumentation.'
843
- )
879
+ 'If `true`, uses `Module#prepend` rather than alias_method for Net::HTTP instrumentation.')
844
880
  },
845
881
  :'instrumentation.net_http' => {
846
882
  :default => instrumentation_value_of(:disable_net_http, :prepend_net_instrumentation),
883
+ :documentation_default => 'auto',
847
884
  :public => true,
848
885
  :type => String,
849
886
  :dynamic_name => true,
@@ -852,6 +889,7 @@ module NewRelic
852
889
  },
853
890
  :'instrumentation.typhoeus' => {
854
891
  :default => instrumentation_value_of(:disable_typhoeus),
892
+ :documentation_default => 'auto',
855
893
  :public => true,
856
894
  :type => String,
857
895
  :dynamic_name => true,
@@ -860,6 +898,7 @@ module NewRelic
860
898
  },
861
899
  :'instrumentation.bunny' => {
862
900
  :default => instrumentation_value_of(:disable_bunny),
901
+ :documentation_default => 'auto',
863
902
  :public => true,
864
903
  :type => String,
865
904
  :dynamic_name => true,
@@ -868,6 +907,7 @@ module NewRelic
868
907
  },
869
908
  :'instrumentation.httprb' => {
870
909
  :default => instrumentation_value_of(:disable_httprb),
910
+ :documentation_default => 'auto',
871
911
  :public => true,
872
912
  :type => String,
873
913
  :dynamic_name => true,
@@ -876,14 +916,31 @@ module NewRelic
876
916
  },
877
917
  :'instrumentation.resque' => {
878
918
  :default => instrumentation_value_of(:disable_resque),
919
+ :documentation_default => 'auto',
879
920
  :public => true,
880
921
  :type => String,
881
922
  :dynamic_name => true,
882
923
  :allowed_from_server => false,
883
924
  :description => "Controls auto-instrumentation of resque at start up. May be one of [auto|prepend|chain|disabled]."
884
925
  },
926
+ :'instrumentation.thread' => {
927
+ :default => 'auto',
928
+ :public => true,
929
+ :type => String,
930
+ :dynamic_name => true,
931
+ :allowed_from_server => false,
932
+ :description => "Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asyncronous 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]."
933
+ },
934
+ :'instrumentation.thread.tracing' => {
935
+ :default => false,
936
+ :public => true,
937
+ :type => Boolean,
938
+ :allowed_from_server => false,
939
+ :description => "Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application."
940
+ },
885
941
  :'instrumentation.redis' => {
886
942
  :default => instrumentation_value_of(:disable_redis),
943
+ :documentation_default => 'auto',
887
944
  :public => true,
888
945
  :type => String,
889
946
  :dynamic_name => true,
@@ -892,6 +949,7 @@ module NewRelic
892
949
  },
893
950
  :'instrumentation.rake' => {
894
951
  :default => instrumentation_value_of(:disable_rake),
952
+ :documentation_default => 'auto',
895
953
  :public => :true,
896
954
  :type => String,
897
955
  :dynamic_name => true,
@@ -900,6 +958,7 @@ module NewRelic
900
958
  },
901
959
  :'instrumentation.mongo' => {
902
960
  :default => instrumentation_value_of(:disable_mongo),
961
+ :documentation_default => 'enabled',
903
962
  :public => :true,
904
963
  :type => String,
905
964
  :dynamic_name => true,
@@ -908,6 +967,7 @@ module NewRelic
908
967
  },
909
968
  :'instrumentation.delayed_job' => {
910
969
  :default => instrumentation_value_of(:disable_dj),
970
+ :documentation_default => 'auto',
911
971
  :public => true,
912
972
  :type => String,
913
973
  :dynamic_name => true,
@@ -916,6 +976,7 @@ module NewRelic
916
976
  },
917
977
  :'instrumentation.httpclient' => {
918
978
  :default => instrumentation_value_of(:disable_httpclient),
979
+ :documentation_default => 'auto',
919
980
  :public => true,
920
981
  :type => String,
921
982
  :dynamic_name => true,
@@ -924,6 +985,7 @@ module NewRelic
924
985
  },
925
986
  :'instrumentation.curb' => {
926
987
  :default => instrumentation_value_of(:disable_curb),
988
+ :documentation_default => 'auto',
927
989
  :public => true,
928
990
  :type => String,
929
991
  :dynamic_name => true,
@@ -932,6 +994,7 @@ module NewRelic
932
994
  },
933
995
  :'instrumentation.sinatra' => {
934
996
  :default => instrumentation_value_of(:disable_sinatra),
997
+ :documentation_default => 'auto',
935
998
  :public => :true,
936
999
  :type => String,
937
1000
  :dynamic_name => true,
@@ -939,71 +1002,95 @@ module NewRelic
939
1002
  :description => "Controls auto-instrumentation of Sinatra at start up. May be one of [auto|prepend|chain|disabled]."
940
1003
  },
941
1004
  :'instrumentation.rack' => {
942
- :default => instrumentation_value_of(:disable_rack),
943
- :public => true,
944
- :type => String,
1005
+ :default => instrumentation_value_of(:disable_rack),
1006
+ :documentation_default => 'auto',
1007
+ :public => true,
1008
+ :type => String,
945
1009
  :dynamic_name => true,
946
1010
  :allowed_from_server => false,
947
- :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
948
- "<code>to_app</code> method in Rack::Builder to find gems to instrument during " \
1011
+ :description => "Controls auto-instrumentation of Rack. When enabled, the agent hooks into the " \
1012
+ "`to_app` method in Rack::Builder to find gems to instrument during " \
949
1013
  "application startup. May be one of [auto|prepend|chain|disabled]."
950
1014
  },
951
1015
  :'instrumentation.rack_urlmap' => {
952
- :default => instrumentation_value_of(:disable_rack_urlmap),
953
- :public => true,
954
- :type => String,
1016
+ :default => instrumentation_value_of(:disable_rack_urlmap),
1017
+ :documentation_default => 'auto',
1018
+ :public => true,
1019
+ :type => String,
955
1020
  :dynamic_name => true,
956
1021
  :allowed_from_server => false,
957
- :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1022
+ :description => 'Controls auto-instrumentation of Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
958
1023
  },
959
1024
  :'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,
1025
+ :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)
1026
+ :documentation_default => 'auto',
1027
+ :public => true,
1028
+ :type => String,
963
1029
  :dynamic_name => true,
964
1030
  :allowed_from_server => false,
965
- :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
966
- "<code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during " \
1031
+ :description => "Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into the " \
1032
+ "`to_app` method in Puma::Rack::Builder to find gems to instrument during " \
967
1033
  "application startup. May be one of [auto|prepend|chain|disabled]."
968
1034
  },
969
1035
  :'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,
1036
+ :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)
1037
+ :documentation_default => 'auto',
1038
+ :public => true,
1039
+ :type => String,
973
1040
  :dynamic_name => true,
974
1041
  :allowed_from_server => false,
975
- :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
1042
+ :description => 'Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of [auto|prepend|chain|disabled].'
976
1043
  },
977
1044
  :'instrumentation.memcached' => {
978
1045
  :default => instrumentation_value_of(:disable_memcached),
1046
+ :documentation_default => 'auto',
979
1047
  :public => true,
980
1048
  :type => String,
981
1049
  :dynamic_name => true,
982
1050
  :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].'
1051
+ :description => 'Controls auto-instrumentation of memcached gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
984
1052
  },
985
1053
  :'instrumentation.memcache_client' => {
986
1054
  :default => instrumentation_value_of(:disable_memcache_client),
1055
+ :documentation_default => 'auto',
987
1056
  :public => true,
988
1057
  :type => String,
989
1058
  :dynamic_name => true,
990
1059
  :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].'
1060
+ :description => 'Controls auto-instrumentation of memcache-client gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
992
1061
  },
993
1062
  :'instrumentation.memcache' => {
994
1063
  :default => instrumentation_value_of(:disable_dalli),
1064
+ :documentation_default => 'auto',
1065
+ :public => true,
1066
+ :type => String,
1067
+ :dynamic_name => true,
1068
+ :allowed_from_server => false,
1069
+ :description => 'Controls auto-instrumentation of dalli gem for Memcache at start up. May be one of [auto|prepend|chain|disabled].'
1070
+ },
1071
+ :'instrumentation.logger' => {
1072
+ :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
1073
+ :documentation_default => 'auto',
1074
+ :public => true,
1075
+ :type => String,
1076
+ :dynamic_name => true,
1077
+ :allowed_from_server => false,
1078
+ :description => 'Controls auto-instrumentation of Ruby standard library Logger at start up. May be one of [auto|prepend|chain|disabled].'
1079
+ },
1080
+ :'instrumentation.tilt' => {
1081
+ :default => "auto",
995
1082
  :public => true,
996
1083
  :type => String,
997
1084
  :dynamic_name => true,
998
1085
  :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].'
1086
+ :description => 'Controls auto-instrumentation of the Tilt template rendering library at start up. May be one of [auto|prepend|chain|disabled].'
1000
1087
  },
1001
1088
  :disable_data_mapper => {
1002
1089
  :default => false,
1003
1090
  :public => true,
1004
1091
  :type => Boolean,
1005
1092
  :allowed_from_server => false,
1006
- :description => 'If <code>true</code>, disables DataMapper instrumentation.'
1093
+ :description => 'If `true`, disables DataMapper instrumentation.'
1007
1094
  },
1008
1095
  :disable_activejob => {
1009
1096
  :default => false,
@@ -1011,7 +1098,7 @@ module NewRelic
1011
1098
  :type => Boolean,
1012
1099
  :dynamic_name => true,
1013
1100
  :allowed_from_server => false,
1014
- :description => 'If <code>true</code>, disables ActiveJob instrumentation.'
1101
+ :description => 'If `true`, disables ActiveJob instrumentation.'
1015
1102
  },
1016
1103
  :disable_action_cable_instrumentation => {
1017
1104
  :default => false,
@@ -1019,7 +1106,7 @@ module NewRelic
1019
1106
  :type => Boolean,
1020
1107
  :dynamic_name => true,
1021
1108
  :allowed_from_server => false,
1022
- :description => 'If <code>true</code>, disables Action Cable instrumentation.'
1109
+ :description => 'If `true`, disables Action Cable instrumentation.'
1023
1110
  },
1024
1111
  :disable_active_storage => {
1025
1112
  :default => false,
@@ -1027,39 +1114,43 @@ module NewRelic
1027
1114
  :type => Boolean,
1028
1115
  :dynamic_name => true,
1029
1116
  :allowed_from_server => false,
1030
- :description => 'If <code>true</code>, disables ActiveStorage instrumentation.'
1117
+ :description => 'If `true`, disables ActiveStorage instrumentation.'
1031
1118
  },
1032
1119
  :disable_memcached => {
1033
1120
  :default => value_of(:disable_memcache_instrumentation),
1121
+ :documentation_default => false,
1034
1122
  :public => true,
1035
1123
  :type => Boolean,
1036
1124
  :deprecated => true,
1037
1125
  :allowed_from_server => false,
1038
- :description => deprecated_description(:'instrumentation.memcached', 'If <code>true</code>, disables instrumentation for the memcached gem.')
1126
+ :description => deprecated_description(:'instrumentation.memcached', 'If `true`, disables instrumentation for the memcached gem.')
1039
1127
  },
1040
1128
  :disable_memcache_client => {
1041
1129
  :default => value_of(:disable_memcache_instrumentation),
1130
+ :documentation_default => false,
1042
1131
  :public => true,
1043
1132
  :type => Boolean,
1044
1133
  :deprecated => true,
1045
1134
  :allowed_from_server => false,
1046
- :description => deprecated_description(:'instrumentation.memcache-client', 'If <code>true</code>, disables instrumentation for the memcache-client gem.')
1135
+ :description => deprecated_description(:'instrumentation.memcache-client', 'If `true`, disables instrumentation for the memcache-client gem.')
1047
1136
  },
1048
1137
  :disable_dalli => {
1049
1138
  :default => value_of(:disable_memcache_instrumentation),
1139
+ :documentation_default => false,
1050
1140
  :public => true,
1051
1141
  :type => Boolean,
1052
1142
  :deprecated => true,
1053
1143
  :allowed_from_server => false,
1054
- :description => deprecated_description(:'instrumentation.memcache', 'If <code>true</code>, disables instrumentation for the dalli gem.')
1144
+ :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables instrumentation for the dalli gem.')
1055
1145
  },
1056
1146
  :disable_dalli_cas_client => {
1057
1147
  :default => value_of(:disable_memcache_instrumentation),
1148
+ :documentation_default => false,
1058
1149
  :public => true,
1059
1150
  :type => Boolean,
1060
1151
  :deprecated => true,
1061
1152
  :allowed_from_server => false,
1062
- :description => deprecated_description(:'instrumentation.memcache', "If <code>true</code>, disables instrumentation for the dalli gem\'s additional CAS client support.")
1153
+ :description => deprecated_description(:'instrumentation.memcache', "If `true`, disables instrumentation for the dalli gem\'s additional CAS client support.")
1063
1154
  },
1064
1155
  :disable_memcache_instrumentation => {
1065
1156
  :default => false,
@@ -1067,14 +1158,14 @@ module NewRelic
1067
1158
  :type => Boolean,
1068
1159
  :deprecated => true,
1069
1160
  :allowed_from_server => false,
1070
- :description => deprecated_description(:'instrumentation.memcache', 'If <code>true</code>, disables memcache instrumentation.')
1161
+ :description => deprecated_description(:'instrumentation.memcache', 'If `true`, disables memcache instrumentation.')
1071
1162
  },
1072
1163
  :disable_gc_profiler => {
1073
1164
  :default => false,
1074
1165
  :public => true,
1075
1166
  :type => Boolean,
1076
1167
  :allowed_from_server => false,
1077
- :description => 'If <code>true</code>, disables the use of GC::Profiler to measure time spent in garbage collection'
1168
+ :description => 'If `true`, disables the use of GC::Profiler to measure time spent in garbage collection'
1078
1169
  },
1079
1170
  :'sidekiq.capture_params' => {
1080
1171
  :default => false,
@@ -1083,7 +1174,7 @@ module NewRelic
1083
1174
  :allowed_from_server => false,
1084
1175
  :dynamic_name => true,
1085
1176
  :deprecated => true,
1086
- :description => 'If <code>true</code>, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1177
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Sidekiq.'
1087
1178
  },
1088
1179
  :'resque.capture_params' => {
1089
1180
  :default => false,
@@ -1092,7 +1183,7 @@ module NewRelic
1092
1183
  :allowed_from_server => false,
1093
1184
  :dynamic_name => true,
1094
1185
  :deprecated => true,
1095
- :description => 'If <code>true</code>, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1186
+ :description => 'If `true`, enables the capture of job arguments for transaction traces and traced errors in Resque.'
1096
1187
  },
1097
1188
  :'resque.use_ruby_dns' => {
1098
1189
  :default => true,
@@ -1113,37 +1204,35 @@ module NewRelic
1113
1204
  :public => true,
1114
1205
  :type => Boolean,
1115
1206
  :allowed_from_server => true,
1116
- :description => 'If <code>true</code>, enables collection of <a href="https://docs.newrelic.com/docs/apm/traces/transaction-traces/transaction-traces">transaction traces</a>.'
1207
+ :description => 'If `true`, enables collection of [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces).'
1117
1208
  },
1118
1209
  :'transaction_tracer.transaction_threshold' => {
1119
1210
  :default => DefaultSource.transaction_tracer_transaction_threshold,
1120
1211
  :public => true,
1121
1212
  :type => Float,
1122
1213
  :allowed_from_server => true,
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 <code><a href="https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_f">apdex_f</a></code>.'
1214
+ :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`.'
1124
1215
  },
1125
1216
  :'transaction_tracer.record_sql' => {
1126
1217
  :default => 'obfuscated',
1127
1218
  :public => true,
1128
1219
  :type => String,
1129
1220
  :allowed_from_server => true,
1130
- :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.</p>
1221
+ :description => 'Obfuscation level for SQL queries reported in transaction trace nodes.
1131
1222
 
1132
- <p>By default, this is set to <code>obfuscated</code>, which strips out the numeric and string literals.</p>
1223
+ By default, this is set to `obfuscated`, which strips out the numeric and string literals.
1133
1224
 
1134
- <ul>
1135
- <li>If you do not want the agent to capture query information, set this to <code>none</code>.</li>
1136
- <li>If you want the agent to capture all query information in its original form, set this to <code>raw</code>.</li>
1137
- <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>
1138
- </ul>
1139
- <p>' # Doc generator will wrap this in <p>...</p>
1225
+ - If you do not want the agent to capture query information, set this to `none`.
1226
+ - If you want the agent to capture all query information in its original form, set this to `raw`.
1227
+ - When you enable [high security mode](/docs/agents/manage-apm-agents/configuration/high-security-mode), this is automatically set to `obfuscated`.
1228
+ '
1140
1229
  },
1141
1230
  :'transaction_tracer.record_redis_arguments' => {
1142
1231
  :default => false,
1143
1232
  :public => true,
1144
1233
  :type => Boolean,
1145
1234
  :allowed_from_server => false,
1146
- :description => 'If <code>true</code>, the agent records Redis command arguments in transaction traces.'
1235
+ :description => 'If `true`, the agent records Redis command arguments in transaction traces.'
1147
1236
  },
1148
1237
  :'transaction_tracer.capture_attributes' => {
1149
1238
  :default => true,
@@ -1151,21 +1240,21 @@ module NewRelic
1151
1240
  :type => Boolean,
1152
1241
  :deprecated => true,
1153
1242
  :allowed_from_server => false,
1154
- :description => 'Deprecated; use <a href="#transaction_tracer-attributes-enabled"><code>transaction_tracer.attributes.enabled</code></a> instead.'
1243
+ :description => 'Use [`transaction_tracer.attributes.enabled`](#transaction_tracer-attributes-enabled) instead.'
1155
1244
  },
1156
1245
  :'transaction_tracer.explain_threshold' => {
1157
1246
  :default => 0.5,
1158
1247
  :public => true,
1159
1248
  :type => Float,
1160
1249
  :allowed_from_server => true,
1161
- :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.'
1250
+ :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when [`explain_enabled`](#transaction_tracer.explain_enabled) is true.'
1162
1251
  },
1163
1252
  :'transaction_tracer.explain_enabled' => {
1164
1253
  :default => true,
1165
1254
  :public => true,
1166
1255
  :type => Boolean,
1167
1256
  :allowed_from_server => true,
1168
- :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.'
1257
+ :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.'
1169
1258
  },
1170
1259
  :'transaction_tracer.stack_trace_threshold' => {
1171
1260
  :default => 0.5,
@@ -1186,7 +1275,7 @@ module NewRelic
1186
1275
  :public => true,
1187
1276
  :type => Boolean,
1188
1277
  :allowed_from_server => false,
1189
- :description => 'If <code>true</code>, disables <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/sequel-instrumentation">Sequel instrumentation</a>.'
1278
+ :description => 'If `true`, disables [Sequel instrumentation](/docs/agents/ruby-agent/frameworks/sequel-instrumentation).'
1190
1279
  },
1191
1280
  :disable_database_instrumentation => {
1192
1281
  :default => false,
@@ -1194,67 +1283,71 @@ module NewRelic
1194
1283
  :type => Boolean,
1195
1284
  :allowed_from_server => false,
1196
1285
  :deprecated => true,
1197
- :description => 'Deprecated; use <a href="#disable_sequel_instrumentation"><code>disable_sequel_instrumentation</code></a> instead.'
1286
+ :description => 'Use [`disable_sequel_instrumentation`](#disable_sequel_instrumentation) instead.'
1198
1287
  },
1199
1288
  :disable_mongo => {
1200
- :default => false,
1201
- :public => true,
1202
- :type => Boolean,
1289
+ :default => false,
1290
+ :public => true,
1291
+ :type => Boolean,
1203
1292
  :allowed_from_server => false,
1204
1293
  :dynamic_name => true,
1205
- :deprecated => true,
1206
- :description => deprecated_description(:'instrumentation.mongo', 'If <code>true</code>, the agent won\'t install <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/mongo-instrumentation">instrumentation for the Mongo gem</a>.')
1294
+ :deprecated => true,
1295
+ :description => deprecated_description(:'instrumentation.mongo', 'If `true`, the agent won\'t install [instrumentation for the Mongo gem](/docs/agents/ruby-agent/frameworks/mongo-instrumentation).')
1207
1296
  },
1208
1297
  :disable_redis => {
1209
- :default => false,
1210
- :public => true,
1211
- :type => Boolean,
1212
- :deprecated => true,
1298
+ :default => false,
1299
+ :public => true,
1300
+ :type => Boolean,
1301
+ :deprecated => true,
1213
1302
  :allowed_from_server => false,
1214
- :description => deprecated_description(:'instrumentation.redis', 'If <code>true</code>, the agent won\'t install <a href="https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/redis-instrumentation">instrumentation for Redis</a>.')
1303
+ :description => deprecated_description(:'instrumentation.redis', 'If `true`, the agent won\'t install [instrumentation for Redis](/docs/agents/ruby-agent/frameworks/redis-instrumentation).')
1215
1304
  },
1216
1305
  :disable_redis_instrumentation => {
1217
- :default => false,
1218
- :public => false,
1219
- :type => Boolean,
1220
- :deprecated => true,
1306
+ :default => false,
1307
+ :public => false,
1308
+ :type => Boolean,
1309
+ :deprecated => true,
1221
1310
  :allowed_from_server => false,
1222
- :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
1311
+ :description => deprecated_description(:'instrumentation.redis', 'Disables installation of Redis instrumentation. Standard key to use is disable_redis.')
1223
1312
  },
1224
1313
  :'message_tracer.segment_parameters.enabled' => {
1225
- :default => true,
1226
- :public => true,
1227
- :type => Boolean,
1314
+ :default => true,
1315
+ :public => true,
1316
+ :type => Boolean,
1228
1317
  :allowed_from_server => true,
1229
- :description => 'If <code>true</code>, the agent will collect metadata about messages and attach them as segment parameters.'
1318
+ :description => 'If `true`, the agent will collect metadata about messages and attach them as segment parameters.'
1230
1319
  },
1231
1320
  :'slow_sql.enabled' => {
1232
1321
  :default => value_of(:'transaction_tracer.enabled'),
1322
+ :documentation_default => true,
1233
1323
  :public => true,
1234
1324
  :type => Boolean,
1235
1325
  :allowed_from_server => true,
1236
- :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>.'
1326
+ :description => 'If `true`, the agent collects [slow SQL queries](/docs/apm/applications-menu/monitoring/viewing-slow-query-details).'
1237
1327
  },
1238
1328
  :'slow_sql.explain_threshold' => {
1239
1329
  :default => value_of(:'transaction_tracer.explain_threshold'),
1330
+ :documentation_default => 0.5,
1240
1331
  :public => true,
1241
1332
  :type => Float,
1242
1333
  :allowed_from_server => true,
1243
- :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.'
1334
+ :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.'
1244
1335
  },
1245
1336
  :'slow_sql.explain_enabled' => {
1246
1337
  :default => value_of(:'transaction_tracer.explain_enabled'),
1338
+ :documentation_default => true,
1247
1339
  :public => true,
1248
1340
  :type => Boolean,
1249
1341
  :allowed_from_server => true,
1250
- :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.'
1342
+ :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.'
1251
1343
  },
1252
1344
  :'slow_sql.record_sql' => {
1253
1345
  :default => value_of(:'transaction_tracer.record_sql'),
1346
+ :documentation_default => 'obfuscated',
1254
1347
  :public => true,
1255
1348
  :type => String,
1256
1349
  :allowed_from_server => true,
1257
- :description => 'Defines an obfuscation level for slow SQL queries. Valid options are <code>obfuscated</code>, <code>raw</code>, or <code>none</code>).'
1350
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are `obfuscated`, `raw`, or `none`).'
1258
1351
  },
1259
1352
  :'slow_sql.use_longer_sql_id' => {
1260
1353
  :default => false,
@@ -1268,21 +1361,21 @@ module NewRelic
1268
1361
  :public => true,
1269
1362
  :type => Boolean,
1270
1363
  :allowed_from_server => true,
1271
- :description => 'If <code>true</code>, the agent captures Mongo queries in transaction traces.'
1364
+ :description => 'If `true`, the agent captures Mongo queries in transaction traces.'
1272
1365
  },
1273
1366
  :'mongo.obfuscate_queries' => {
1274
1367
  :default => true,
1275
1368
  :public => true,
1276
1369
  :type => Boolean,
1277
1370
  :allowed_from_server => true,
1278
- :description => 'If <code>true</code>, the agent obfuscates Mongo queries in transaction traces.'
1371
+ :description => 'If `true`, the agent obfuscates Mongo queries in transaction traces.'
1279
1372
  },
1280
1373
  :'error_collector.enabled' => {
1281
1374
  :default => true,
1282
1375
  :public => true,
1283
1376
  :type => Boolean,
1284
1377
  :allowed_from_server => true,
1285
- :description => 'If <code>true</code>, the agent captures traced errors and error count metrics.'
1378
+ :description => 'If `true`, the agent captures traced errors and error count metrics.'
1286
1379
  },
1287
1380
  :'error_collector.capture_attributes' => {
1288
1381
  :default => true,
@@ -1290,14 +1383,94 @@ module NewRelic
1290
1383
  :type => Boolean,
1291
1384
  :deprecated => true,
1292
1385
  :allowed_from_server => false,
1293
- :description => 'Deprecated; use <a href="#error_collector-attributes-enabled"><code>error_collector.attributes.enabled</code></a> instead.'
1386
+ :description => 'Use [`error_collector.attributes.enabled`](#error_collector-attributes-enabled) instead.'
1294
1387
  },
1295
1388
  :'error_collector.ignore_errors' => {
1296
1389
  :default => 'ActionController::RoutingError,Sinatra::NotFound',
1297
1390
  :public => true,
1298
1391
  :type => String,
1392
+ :deprecated => true,
1393
+ :allowed_from_server => true,
1394
+ :dynamic_name => true,
1395
+ :description => <<-DESCRIPTION
1396
+ Use `error_collector.ignore_classes` instead. Specify a comma-delimited list of error classes that the agent should ignore.
1397
+
1398
+ <Callout variant="caution">
1399
+ 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.
1400
+ </Callout>
1401
+ DESCRIPTION
1402
+ },
1403
+ :'error_collector.ignore_classes' => {
1404
+ :default => [],
1405
+ :public => true,
1406
+ :type => Array,
1407
+ :allowed_from_server => true,
1408
+ :dynamic_name => true,
1409
+ :description => <<-DESCRIPTION
1410
+ A list of error classes that the agent should ignore.
1411
+
1412
+ <Callout variant="caution">
1413
+ This option can't be set via environment variable.
1414
+ </Callout>
1415
+ DESCRIPTION
1416
+ },
1417
+ :'error_collector.ignore_messages' => {
1418
+ :default => {},
1419
+ :public => true,
1420
+ :type => Hash,
1421
+ :allowed_from_server => true,
1422
+ :dynamic_name => true,
1423
+ :description => <<-DESCRIPTION
1424
+ 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.
1425
+
1426
+ <Callout variant="caution">
1427
+ This option can't be set via environment variable.
1428
+ </Callout>
1429
+ DESCRIPTION
1430
+ },
1431
+ :'error_collector.ignore_status_codes' => {
1432
+ :default => '',
1433
+ :public => true,
1434
+ :type => String,
1299
1435
  :allowed_from_server => true,
1300
- :description => 'Specify a comma-delimited list of error classes that the agent should ignore.'
1436
+ :dynamic_name => true,
1437
+ :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be ignored.'
1438
+ },
1439
+ :'error_collector.expected_classes' => {
1440
+ :default => [],
1441
+ :public => true,
1442
+ :type => Array,
1443
+ :allowed_from_server => true,
1444
+ :dynamic_name => true,
1445
+ :description => <<-DESCRIPTION
1446
+ A list of error classes that the agent should treat as expected.
1447
+
1448
+ <Callout variant="caution">
1449
+ This option can't be set via environment variable.
1450
+ </Callout>
1451
+ DESCRIPTION
1452
+ },
1453
+ :'error_collector.expected_messages' => {
1454
+ :default => {},
1455
+ :public => true,
1456
+ :type => Hash,
1457
+ :allowed_from_server => true,
1458
+ :dynamic_name => true,
1459
+ :description => <<-DESCRIPTION
1460
+ 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.
1461
+
1462
+ <Callout variant="caution">
1463
+ This option can't be set via environment variable.
1464
+ </Callout>
1465
+ DESCRIPTION
1466
+ },
1467
+ :'error_collector.expected_status_codes' => {
1468
+ :default => '',
1469
+ :public => true,
1470
+ :type => String,
1471
+ :allowed_from_server => true,
1472
+ :dynamic_name => true,
1473
+ :description => 'A comma separated list of status codes, possibly including ranges. Errors associated with these status codes, where applicable, will be treated as expected.'
1301
1474
  },
1302
1475
  :'error_collector.max_backtrace_frames' => {
1303
1476
  :default => 50,
@@ -1308,18 +1481,19 @@ module NewRelic
1308
1481
  },
1309
1482
  :'error_collector.capture_events' => {
1310
1483
  :default => value_of(:'error_collector.enabled'),
1484
+ :documentation_default => true,
1311
1485
  :public => true,
1312
1486
  :type => Boolean,
1313
1487
  :allowed_from_server => true,
1314
1488
  :dynamic_name => true,
1315
- :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>.'
1489
+ :description => 'If `true`, the agent collects [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights).'
1316
1490
  },
1317
1491
  :'error_collector.max_event_samples_stored' => {
1318
1492
  :default => 100,
1319
1493
  :public => true,
1320
1494
  :type => Integer,
1321
1495
  :allowed_from_server => true,
1322
- :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.'
1496
+ :description => 'Defines the maximum number of [TransactionError events](/docs/insights/new-relic-insights/decorating-events/error-event-default-attributes-insights) reported per harvest cycle.'
1323
1497
  },
1324
1498
  :'rum.enabled' => {
1325
1499
  :default => true,
@@ -1365,10 +1539,11 @@ module NewRelic
1365
1539
  },
1366
1540
  :'browser_monitoring.auto_instrument' => {
1367
1541
  :default => value_of(:'rum.enabled'),
1542
+ :documentation_default => true,
1368
1543
  :public => true,
1369
1544
  :type => Boolean,
1370
1545
  :allowed_from_server => true,
1371
- :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).'
1546
+ :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).'
1372
1547
  },
1373
1548
  :'browser_monitoring.capture_attributes' => {
1374
1549
  :default => false,
@@ -1376,7 +1551,7 @@ module NewRelic
1376
1551
  :type => Boolean,
1377
1552
  :deprecated => true,
1378
1553
  :allowed_from_server => false,
1379
- :description => 'Deprecated; use <a href="#browser_monitoring-attributes-enabled"><code>browser_monitoring.attributes.enabled</code></a> instead.'
1554
+ :description => 'Use [`browser_monitoring.attributes.enabled`](#browser_monitoring-attributes-enabled) instead.'
1380
1555
  },
1381
1556
  :'browser_monitoring.loader' => {
1382
1557
  :default => DefaultSource.browser_monitoring_loader,
@@ -1390,7 +1565,7 @@ module NewRelic
1390
1565
  :public => false,
1391
1566
  :type => String,
1392
1567
  :allowed_from_server => true,
1393
- :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>.)'
1568
+ :description => 'Version of JavaScript agent loader (returned from the New Relic [collector](/docs/apm/new-relic-apm/getting-started/glossary#collector).)'
1394
1569
  },
1395
1570
  :'browser_monitoring.debug' => {
1396
1571
  :default => false,
@@ -1430,11 +1605,15 @@ module NewRelic
1430
1605
  :description => 'List of trusted New Relic account IDs for the purposes of cross-application tracing. Inbound requests from applications including cross-application headers that do not come from an account in this list will be ignored.'
1431
1606
  },
1432
1607
  :"cross_application_tracer.enabled" => {
1433
- :default => Proc.new { !NewRelic::Agent.config[:'distributed_tracing.enabled'] },
1608
+ :default => false,
1434
1609
  :public => true,
1435
1610
  :type => Boolean,
1436
1611
  :allowed_from_server => true,
1437
- :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>.'
1612
+ :deprecated => true,
1613
+ :description => deprecated_description(
1614
+ :'distributed_tracing-enabled',
1615
+ 'If `true`, enables [cross-application tracing](/docs/agents/ruby-agent/features/cross-application-tracing-ruby/) when `distributed_tracing.enabled` is set to `false`.'
1616
+ )
1438
1617
  },
1439
1618
  :cross_application_tracing => {
1440
1619
  :default => nil,
@@ -1443,7 +1622,7 @@ module NewRelic
1443
1622
  :type => Boolean,
1444
1623
  :allowed_from_server => false,
1445
1624
  :deprecated => true,
1446
- :description => 'Deprecated in favor of cross_application_tracer.enabled'
1625
+ :description => 'Deprecated in favor of distributed_tracing.enabled'
1447
1626
  },
1448
1627
  :encoding_key => {
1449
1628
  :default => '',
@@ -1461,10 +1640,11 @@ module NewRelic
1461
1640
  },
1462
1641
  :'thread_profiler.enabled' => {
1463
1642
  :default => DefaultSource.thread_profiler_enabled,
1643
+ :documentation_default => false,
1464
1644
  :public => true,
1465
1645
  :type => Boolean,
1466
1646
  :allowed_from_server => true,
1467
- :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>.'
1647
+ :description => 'If `true`, enables use of the [thread profiler](/docs/apm/applications-menu/events/thread-profiler-tool).'
1468
1648
  },
1469
1649
  :'thread_profiler.max_profile_overhead' => {
1470
1650
  :default => 0.05,
@@ -1478,21 +1658,39 @@ module NewRelic
1478
1658
  :public => true,
1479
1659
  :type => String,
1480
1660
  :allowed_from_server => false,
1481
- :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.'
1661
+ :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.'
1482
1662
  },
1483
1663
  :'analytics_events.enabled' => {
1484
1664
  :default => true,
1485
1665
  :public => true,
1486
1666
  :type => Boolean,
1667
+ :deprecated => true,
1487
1668
  :allowed_from_server => true,
1488
- :description => 'If <code>true</code>, enables analytics event sampling.'
1669
+ :description => deprecated_description(:'transaction_events.enabled', 'If `true`, enables analytics event sampling.')
1489
1670
  },
1490
1671
  :'analytics_events.max_samples_stored' => {
1491
1672
  :default => 1200,
1492
1673
  :public => true,
1493
1674
  :type => Integer,
1675
+ :deprecated => true,
1494
1676
  :allowed_from_server => true,
1495
- :description => 'Defines the maximum number of request events reported from a single harvest.'
1677
+ :description => deprecated_description(:'transaction_events.max_samples_stored', 'Defines the maximum number of request events reported from a single harvest.')
1678
+ },
1679
+ :'transaction_events.enabled' => {
1680
+ :default => value_of(:'analytics_events.enabled'),
1681
+ :documentation_default => true,
1682
+ :public => true,
1683
+ :type => Boolean,
1684
+ :allowed_from_server => true,
1685
+ :description => 'If `true`, enables transaction event sampling.'
1686
+ },
1687
+ :'transaction_events.max_samples_stored' => {
1688
+ :default => value_of(:'analytics_events.max_samples_stored'),
1689
+ :documentation_default => 1200,
1690
+ :public => true,
1691
+ :type => Integer,
1692
+ :allowed_from_server => true,
1693
+ :description => 'Defines the maximum number of transaction events reported from a single harvest.'
1496
1694
  },
1497
1695
  :'analytics_events.capture_attributes' => {
1498
1696
  :default => true,
@@ -1500,7 +1698,7 @@ module NewRelic
1500
1698
  :type => Boolean,
1501
1699
  :deprecated => true,
1502
1700
  :allowed_from_server => false,
1503
- :description => 'Deprecated; use <a href="#transaction_events-attributes-enabled"><code>transaction_events.attributes.enabled</code></a> instead.'
1701
+ :description => 'Use [`transaction_events.attributes.enabled`](#transaction_events-attributes-enabled) instead.'
1504
1702
  },
1505
1703
  :restart_thread_in_children => {
1506
1704
  :default => true,
@@ -1524,74 +1722,75 @@ module NewRelic
1524
1722
  :description => 'Backports the faster ActiveRecord connection lookup introduced in Rails 6, which improves agent performance when instrumenting ActiveRecord. Note that this setting may not be compatible with other gems that patch ActiveRecord.'
1525
1723
  },
1526
1724
  :disable_vm_sampler => {
1527
- :default => false,
1528
- :public => true,
1529
- :type => Boolean,
1725
+ :default => false,
1726
+ :public => true,
1727
+ :type => Boolean,
1530
1728
  :dynamic_name => true,
1531
1729
  :allowed_from_server => false,
1532
- :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>.'
1730
+ :description => 'If `true`, the agent won\'t [sample performance measurements from the Ruby VM](/docs/agents/ruby-agent/features/ruby-vm-measurements).'
1533
1731
  },
1534
1732
  :disable_memory_sampler => {
1535
- :default => false,
1536
- :public => true,
1537
- :type => Boolean,
1733
+ :default => false,
1734
+ :public => true,
1735
+ :type => Boolean,
1538
1736
  :dynamic_name => true,
1539
1737
  :allowed_from_server => false,
1540
- :description => 'If <code>true</code>, the agent won\'t sample the memory usage of the host process.'
1738
+ :description => 'If `true`, the agent won\'t sample the memory usage of the host process.'
1541
1739
  },
1542
1740
  :disable_cpu_sampler => {
1543
- :default => false,
1544
- :public => true,
1545
- :type => Boolean,
1741
+ :default => false,
1742
+ :public => true,
1743
+ :type => Boolean,
1546
1744
  :dynamic_name => true,
1547
1745
  :allowed_from_server => false,
1548
- :description => 'If <code>true</code>, the agent won\'t sample the CPU usage of the host process.'
1746
+ :description => 'If `true`, the agent won\'t sample the CPU usage of the host process.'
1549
1747
  },
1550
1748
  :disable_delayed_job_sampler => {
1551
- :default => false,
1552
- :public => true,
1553
- :type => Boolean,
1749
+ :default => false,
1750
+ :public => true,
1751
+ :type => Boolean,
1554
1752
  :dynamic_name => true,
1555
1753
  :allowed_from_server => false,
1556
- :description => 'If <code>true</code>, the agent won\'t measure the depth of Delayed Job queues.'
1754
+ :description => 'If `true`, the agent won\'t measure the depth of Delayed Job queues.'
1557
1755
  },
1558
1756
  :disable_active_record_notifications => {
1559
- :default => false,
1560
- :public => true,
1561
- :type => Boolean,
1757
+ :default => false,
1758
+ :public => true,
1759
+ :type => Boolean,
1562
1760
  :dynamic_name => true,
1563
1761
  :allowed_from_server => false,
1564
- :description => 'If <code>true</code>, disables instrumentation for ActiveRecord 4, 5, and 6.'
1762
+ :description => 'If `true`, disables instrumentation for ActiveRecord 4, 5, and 6.'
1565
1763
  },
1566
1764
  :disable_bunny => {
1567
- :default => false,
1568
- :public => true,
1569
- :type => Boolean,
1570
- :deprecated => true,
1765
+ :default => false,
1766
+ :public => true,
1767
+ :type => Boolean,
1768
+ :deprecated => true,
1571
1769
  :dynamic_name => true,
1572
1770
  :allowed_from_server => false,
1573
- :description => deprecated_description(:'instrumentation.bunny', 'If <code>true</code>, disables instrumentation for the bunny gem.')
1771
+ :description => deprecated_description(:'instrumentation.bunny', 'If `true`, disables instrumentation for the bunny gem.')
1574
1772
  },
1575
1773
  :disable_curb => {
1576
- :default => false,
1577
- :public => true,
1578
- :type => Boolean,
1774
+ :default => false,
1775
+ :public => true,
1776
+ :type => Boolean,
1579
1777
  :deprecated => true,
1580
1778
  :dynamic_name => true,
1581
1779
  :allowed_from_server => false,
1582
- :description => deprecated_description(:'instrumentation.curb', 'If <code>true</code>, disables instrumentation for the curb gem.' )
1780
+ :description => deprecated_description(:'instrumentation.curb', 'If `true`, disables instrumentation for the curb gem.')
1583
1781
  },
1584
1782
  :disable_excon => {
1585
- :default => false,
1586
- :public => true,
1587
- :type => Boolean,
1783
+ :default => false,
1784
+ :public => true,
1785
+ :type => Boolean,
1588
1786
  :dynamic_name => true,
1589
- :deprecated => true,
1787
+ :deprecated => true,
1590
1788
  :allowed_from_server => false,
1591
- :description => deprecated_description(:'instrumentation.excon', 'If <code>true</code>, disables instrumentation for the excon gem.')
1789
+ :description => deprecated_description(:'instrumentation.excon', 'If `true`, disables instrumentation for the excon gem.')
1592
1790
  },
1593
1791
  :'instrumentation.excon' => {
1594
1792
  :default => instrumentation_value_of(:disable_excon),
1793
+ :documentation_default => 'enabled',
1595
1794
  :public => :true,
1596
1795
  :type => String,
1597
1796
  :dynamic_name => true,
@@ -1599,203 +1798,255 @@ module NewRelic
1599
1798
  :description => "Controls auto-instrumentation of Excon at start up. May be one of [enabled|disabled]."
1600
1799
  },
1601
1800
  :disable_httpclient => {
1602
- :default => false,
1603
- :public => true,
1604
- :type => Boolean,
1801
+ :default => false,
1802
+ :public => true,
1803
+ :type => Boolean,
1605
1804
  :dynamic_name => true,
1606
- :deprecated => true,
1805
+ :deprecated => true,
1607
1806
  :allowed_from_server => false,
1608
- :description => deprecated_description(:'instrumentation.httpclient', 'If <code>true</code>, disables instrumentation for the httpclient gem.')
1807
+ :description => deprecated_description(:'instrumentation.httpclient', 'If `true`, disables instrumentation for the httpclient gem.')
1609
1808
  },
1610
1809
  :disable_net_http => {
1611
- :default => false,
1612
- :public => true,
1613
- :type => Boolean,
1810
+ :default => false,
1811
+ :public => true,
1812
+ :type => Boolean,
1614
1813
  :dynamic_name => true,
1615
1814
  :allowed_from_server => false,
1616
- :deprecated => true,
1617
- :description => deprecated_description(:'instrumentation.net_http',
1618
- 'If <code>true</code>, disables instrumentation for Net::HTTP.'
1619
- )
1815
+ :deprecated => true,
1816
+ :description => deprecated_description(:'instrumentation.net_http',
1817
+ 'If `true`, disables instrumentation for Net::HTTP.')
1620
1818
  },
1621
1819
  :disable_rack => {
1622
- :default => false,
1623
- :public => true,
1624
- :type => Boolean,
1820
+ :default => false,
1821
+ :public => true,
1822
+ :type => Boolean,
1625
1823
  :dynamic_name => true,
1626
1824
  :allowed_from_server => false,
1627
- :deprecated => true,
1628
- :description => deprecated_description(:'instrumentation.rack', 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Rack::Builder to find gems to instrument during application startup.')
1825
+ :deprecated => true,
1826
+ :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.')
1629
1827
  },
1630
1828
  :disable_rack_urlmap => {
1631
- :default => false,
1632
- :public => true,
1633
- :type => Boolean,
1829
+ :default => false,
1830
+ :public => true,
1831
+ :type => Boolean,
1634
1832
  :dynamic_name => true,
1635
1833
  :allowed_from_server => false,
1636
- :deprecated => true,
1637
- :description => deprecated_description(:'instrumentation.rack_urlmap', 'If <code>true</code>, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1834
+ :deprecated => true,
1835
+ :description => deprecated_description(:'instrumentation.rack_urlmap', 'If `true`, prevents the agent from hooking into Rack::URLMap to install middleware tracing.')
1638
1836
  },
1639
1837
  :disable_puma_rack => {
1640
- :default => value_of(:disable_rack),
1641
- :public => true,
1642
- :type => Boolean,
1838
+ :default => value_of(:disable_rack),
1839
+ :documentation_default => false,
1840
+ :public => true,
1841
+ :type => Boolean,
1643
1842
  :dynamic_name => true,
1644
1843
  :allowed_from_server => false,
1645
- :deprecated => true,
1646
- :description => deprecated_description(:'instrumentation.puma_rack', 'If <code>true</code>, prevents the agent from hooking into the <code>to_app</code> method in Puma::Rack::Builder to find gems to instrument during application startup.')
1844
+ :deprecated => true,
1845
+ :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.')
1647
1846
  },
1648
1847
  :disable_puma_rack_urlmap => {
1649
- :default => value_of(:disable_rack_urlmap),
1650
- :public => true,
1651
- :type => Boolean,
1848
+ :default => value_of(:disable_rack_urlmap),
1849
+ :documentation_default => false,
1850
+ :public => true,
1851
+ :type => Boolean,
1652
1852
  :dynamic_name => true,
1653
1853
  :allowed_from_server => false,
1654
- :deprecated => true,
1655
- :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If <code>true</code>, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1854
+ :deprecated => true,
1855
+ :description => deprecated_description(:'instrumentation.puma_rack_urlmap', 'If `true`, prevents the agent from hooking into Puma::Rack::URLMap to install middleware tracing.')
1656
1856
  },
1657
1857
  :disable_typhoeus => {
1658
- :default => false,
1659
- :public => true,
1660
- :type => Boolean,
1858
+ :default => false,
1859
+ :public => true,
1860
+ :type => Boolean,
1661
1861
  :dynamic_name => true,
1662
- :deprecated => true,
1862
+ :deprecated => true,
1663
1863
  :allowed_from_server => false,
1664
- :description => deprecated_description(:'instrumentation.typhoeus', 'If <code>true</code>, the agent won\'t install instrumentation for the typhoeus gem.' )
1864
+ :description => deprecated_description(:'instrumentation.typhoeus', 'If `true`, the agent won\'t install instrumentation for the typhoeus gem.')
1665
1865
  },
1666
1866
  :disable_httprb => {
1667
- :default => false,
1668
- :public => true,
1669
- :type => Boolean,
1867
+ :default => false,
1868
+ :public => true,
1869
+ :type => Boolean,
1670
1870
  :dynamic_name => true,
1671
- :deprecated => true,
1871
+ :deprecated => true,
1672
1872
  :allowed_from_server => false,
1673
- :description => deprecated_description(:'instrumentation.httprb', 'If <code>true</code>, the agent won\'t install instrumentation for the http.rb gem.' )
1873
+ :description => deprecated_description(:'instrumentation.httprb', 'If `true`, the agent won\'t install instrumentation for the http.rb gem.')
1674
1874
  },
1675
1875
  :disable_middleware_instrumentation => {
1676
- :default => false,
1677
- :public => true,
1678
- :type => Boolean,
1876
+ :default => false,
1877
+ :public => true,
1878
+ :type => Boolean,
1679
1879
  :allowed_from_server => false,
1680
- :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).'
1880
+ :description => 'If `true`, the agent won\'t wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1681
1881
  },
1682
1882
  :disable_rails_middleware => {
1683
- :default => false,
1684
- :public => false,
1685
- :type => Boolean,
1883
+ :default => false,
1884
+ :public => false,
1885
+ :type => Boolean,
1686
1886
  :allowed_from_server => false,
1687
- :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
1887
+ :description => 'Internal name for controlling Rails 3+ middleware instrumentation'
1688
1888
  },
1689
1889
  :'heroku.use_dyno_names' => {
1690
- :default => true,
1691
- :public => true,
1692
- :type => Boolean,
1890
+ :default => true,
1891
+ :public => true,
1892
+ :type => Boolean,
1693
1893
  :allowed_from_server => false,
1694
- :description => 'If <code>true</code>, the agent uses Heroku dyno names as the hostname.'
1894
+ :description => 'If `true`, the agent uses Heroku dyno names as the hostname.'
1695
1895
  },
1696
1896
  :'heroku.dyno_name_prefixes_to_shorten' => {
1697
- :default => ['scheduler', 'run'],
1698
- :public => true,
1699
- :type => Array,
1897
+ :default => ['scheduler', 'run'],
1898
+ :public => true,
1899
+ :type => Array,
1700
1900
  :allowed_from_server => false,
1701
- :transform => DefaultSource.method(:convert_to_list),
1702
- :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>).'
1901
+ :transform => DefaultSource.method(:convert_to_list),
1902
+ :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>).'
1703
1903
  },
1704
1904
  :'process_host.display_name' => {
1705
- :default => Proc.new{ NewRelic::Agent::Hostname.get },
1706
- :public => true,
1707
- :type => String,
1905
+ :default => Proc.new { NewRelic::Agent::Hostname.get },
1906
+ :public => true,
1907
+ :type => String,
1708
1908
  :allowed_from_server => false,
1709
- :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>.'
1909
+ :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).'
1710
1910
  },
1711
1911
  :labels => {
1712
- :default => '',
1713
- :public => true,
1714
- :type => String,
1912
+ :default => '',
1913
+ :public => true,
1914
+ :type => String,
1715
1915
  :allowed_from_server => false,
1716
- :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>.'
1916
+ :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>`.'
1717
1917
  },
1718
1918
  :aggressive_keepalive => {
1719
- :default => true,
1720
- :public => false,
1721
- :type => Boolean,
1919
+ :default => true,
1920
+ :public => false,
1921
+ :type => Boolean,
1722
1922
  :allowed_from_server => true,
1723
- :description => 'If true, attempt to keep the TCP connection to the collector alive between harvests.'
1923
+ :description => 'If true, attempt to keep the TCP connection to the collector alive between harvests.'
1724
1924
  },
1725
1925
  :keep_alive_timeout => {
1726
- :default => 60,
1727
- :public => false,
1728
- :type => Integer,
1926
+ :default => 60,
1927
+ :public => false,
1928
+ :type => Integer,
1729
1929
  :allowed_from_server => true,
1730
- :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
1930
+ :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
1731
1931
  },
1732
1932
  :ca_bundle_path => {
1733
- :default => nil,
1734
- :allow_nil => true,
1735
- :public => true,
1736
- :type => String,
1933
+ :default => nil,
1934
+ :allow_nil => true,
1935
+ :public => true,
1936
+ :type => String,
1737
1937
  :allowed_from_server => false,
1738
- :description => "Manual override for the path to your local CA bundle. This CA bundle will be used to validate the SSL certificate presented by New Relic\'s data collection service."
1938
+ :description => "Manual override for the path to your local CA bundle. This CA bundle will be used to validate the SSL certificate presented by New Relic\'s data collection service."
1739
1939
  },
1740
1940
  :'rules.ignore_url_regexes' => {
1741
- :default => [],
1742
- :public => true,
1743
- :type => Array,
1941
+ :default => [],
1942
+ :public => true,
1943
+ :type => Array,
1744
1944
  :allowed_from_server => true,
1745
- :transform => DefaultSource.method(:convert_to_regexp_list),
1746
- :description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore.'
1945
+ :transform => DefaultSource.method(:convert_to_regexp_list),
1946
+ :description => 'Define transactions you want the agent to ignore, by specifying a list of patterns matching the URI you want to ignore. See documentation on (ignoring specific transactions)[https://docs.newrelic.com/docs/agents/ruby-agent/api-guides/ignoring-specific-transactions/#config-ignoring] for more details.'
1747
1947
  },
1748
1948
  :'synthetics.traces_limit' => {
1749
- :default => 20,
1750
- :public => false,
1751
- :type => Integer,
1949
+ :default => 20,
1950
+ :public => false,
1951
+ :type => Integer,
1752
1952
  :allowed_from_server => true,
1753
- :description => 'Maximum number of synthetics transaction traces to hold for a given harvest'
1953
+ :description => 'Maximum number of synthetics transaction traces to hold for a given harvest'
1754
1954
  },
1755
1955
  :'synthetics.events_limit' => {
1756
- :default => 200,
1757
- :public => false,
1758
- :type => Integer,
1956
+ :default => 200,
1957
+ :public => false,
1958
+ :type => Integer,
1759
1959
  :allowed_from_server => true,
1760
- :description => 'Maximum number of synthetics transaction events to hold for a given harvest'
1960
+ :description => 'Maximum number of synthetics transaction events to hold for a given harvest'
1761
1961
  },
1762
1962
  :'custom_insights_events.enabled' => {
1763
- :default => true,
1764
- :public => true,
1765
- :type => Boolean,
1963
+ :default => true,
1964
+ :public => true,
1965
+ :type => Boolean,
1766
1966
  :allowed_from_server => true,
1767
- :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>.'
1967
+ :description => 'If `true`, the agent captures [custom events](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents).'
1768
1968
  },
1769
1969
  :'custom_insights_events.max_samples_stored' => {
1770
- :default => 1000,
1771
- :public => true,
1772
- :type => Integer,
1970
+ :default => 1000,
1971
+ :public => true,
1972
+ :type => Integer,
1973
+ :allowed_from_server => true,
1974
+ :description => 'Specify a maximum number of custom events to buffer in memory at a time.',
1975
+ :dynamic_name => true
1976
+ },
1977
+ :'application_logging.enabled' => {
1978
+ :default => true,
1979
+ :public => true,
1980
+ :type => Boolean,
1981
+ :allowed_from_server => false,
1982
+ :description => 'If `true`, enables log decoration and the collection of log events and metrics.'
1983
+ },
1984
+ :'application_logging.forwarding.enabled' => {
1985
+ :default => true,
1986
+ :public => true,
1987
+ :type => Boolean,
1988
+ :allowed_from_server => false,
1989
+ :description => 'If `true`, the agent captures log records emitted by your application.'
1990
+ },
1991
+ :'application_logging.forwarding.max_samples_stored' => {
1992
+ :default => 10000,
1993
+ :public => true,
1994
+ :type => Integer,
1773
1995
  :allowed_from_server => true,
1774
- :description => 'Specify a maximum number of custom Insights events to buffer in memory at a time.',
1996
+ :description => 'Defines the maximum number of log records to buffer in memory at a time.',
1775
1997
  :dynamic_name => true
1776
1998
  },
1999
+ :'application_logging.metrics.enabled' => {
2000
+ :default => true,
2001
+ :public => true,
2002
+ :type => Boolean,
2003
+ :allowed_from_server => true,
2004
+ :description => 'If `true`, the agent captures metrics related to logging for your application.'
2005
+ },
2006
+ :'application_logging.local_decorating.enabled' => {
2007
+ :default => false,
2008
+ :public => true,
2009
+ :type => Boolean,
2010
+ :allowed_from_server => false,
2011
+ :description => 'If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.'
2012
+ },
2013
+ :'code_level_metrics.enabled' => {
2014
+ :default => false,
2015
+ :public => true,
2016
+ :type => Boolean,
2017
+ :allowed_from_server => true,
2018
+ :description => 'If `true`, the agent will report source code level metrics for traced methods.'
2019
+ },
2020
+ :'instrumentation.active_support_logger' => {
2021
+ :default => instrumentation_value_from_boolean(:'application_logging.enabled'),
2022
+ :documentation_default => 'auto',
2023
+ :dynamic_name => true,
2024
+ :public => true,
2025
+ :type => String,
2026
+ :allowed_from_server => false,
2027
+ :description => 'Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one of [auto|prepend|chain|disabled].'
2028
+ },
1777
2029
  :disable_grape_instrumentation => {
1778
- :default => false,
1779
- :public => false,
1780
- :type => Boolean,
2030
+ :default => false,
2031
+ :public => false,
2032
+ :type => Boolean,
1781
2033
  :allowed_from_server => false,
1782
- :deprecated => true,
1783
- :description => deprecated_description(:'instrumentation.grape',
1784
- 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1785
- )
2034
+ :deprecated => true,
2035
+ :description => deprecated_description(:'instrumentation.grape',
2036
+ 'If `true`, the agent won\'t install Grape instrumentation.')
1786
2037
  },
1787
2038
  :disable_grape => {
1788
- :default => false,
1789
- :public => true,
1790
- :type => Boolean,
2039
+ :default => false,
2040
+ :public => true,
2041
+ :type => Boolean,
1791
2042
  :allowed_from_server => false,
1792
- :deprecated => true,
1793
- :description => deprecated_description(:'instrumentation.grape',
1794
- 'If <code>true</code>, the agent won\'t install Grape instrumentation.'
1795
- )
2043
+ :deprecated => true,
2044
+ :description => deprecated_description(:'instrumentation.grape',
2045
+ 'If `true`, the agent won\'t install Grape instrumentation.')
1796
2046
  },
1797
2047
  :'instrumentation.grape' => {
1798
2048
  :default => instrumentation_value_of(:disable_grape_instrumentation),
2049
+ :documentation_default => 'auto',
1799
2050
  :public => :true,
1800
2051
  :type => String,
1801
2052
  :dynamic_name => true,
@@ -1803,263 +2054,267 @@ module NewRelic
1803
2054
  :description => "Controls auto-instrumentation of Grape at start up. May be one of [auto|prepend|chain|disabled]."
1804
2055
  },
1805
2056
  :'attributes.enabled' => {
1806
- :default => true,
1807
- :public => true,
1808
- :type => Boolean,
2057
+ :default => true,
2058
+ :public => true,
2059
+ :type => Boolean,
1809
2060
  :allowed_from_server => false,
1810
- :description => 'If <code>true</code>, enables capture of attributes for all destinations.'
2061
+ :description => 'If `true`, enables capture of attributes for all destinations.'
1811
2062
  },
1812
2063
  :'transaction_tracer.attributes.enabled' => {
1813
- :default => value_of(:'transaction_tracer.capture_attributes'),
1814
- :public => true,
1815
- :type => Boolean,
2064
+ :default => value_of(:'transaction_tracer.capture_attributes'),
2065
+ :documentation_default => true,
2066
+ :public => true,
2067
+ :type => Boolean,
1816
2068
  :allowed_from_server => false,
1817
- :description => 'If <code>true</code>, the agent captures attributes from transaction traces.'
2069
+ :description => 'If `true`, the agent captures attributes from transaction traces.'
1818
2070
  },
1819
2071
  :'transaction_events.attributes.enabled' => {
1820
- :default => value_of(:'analytics_events.capture_attributes'),
1821
- :public => true,
1822
- :type => Boolean,
2072
+ :default => value_of(:'analytics_events.capture_attributes'),
2073
+ :documentation_default => true,
2074
+ :public => true,
2075
+ :type => Boolean,
1823
2076
  :allowed_from_server => false,
1824
- :description => 'If <code>true</code>, the agent captures attributes from transaction events.'
2077
+ :description => 'If `true`, the agent captures attributes from transaction events.'
1825
2078
  },
1826
2079
  :'error_collector.attributes.enabled' => {
1827
- :default => value_of(:'error_collector.capture_attributes'),
1828
- :public => true,
1829
- :type => Boolean,
2080
+ :default => value_of(:'error_collector.capture_attributes'),
2081
+ :documentation_default => true,
2082
+ :public => true,
2083
+ :type => Boolean,
1830
2084
  :allowed_from_server => false,
1831
- :description => 'If <code>true</code>, the agent captures attributes from error collection.'
2085
+ :description => 'If `true`, the agent captures attributes from error collection.'
1832
2086
  },
1833
2087
  :'browser_monitoring.attributes.enabled' => {
1834
- :default => value_of(:'browser_monitoring.capture_attributes'),
1835
- :public => true,
1836
- :type => Boolean,
2088
+ :default => value_of(:'browser_monitoring.capture_attributes'),
2089
+ :documentation_default => false,
2090
+ :public => true,
2091
+ :type => Boolean,
1837
2092
  :allowed_from_server => false,
1838
- :description => 'If <code>true</code>, the agent captures attributes from browser monitoring.'
2093
+ :description => 'If `true`, the agent captures attributes from browser monitoring.'
1839
2094
  },
1840
2095
  :'span_events.attributes.enabled' => {
1841
- :default => true,
1842
- :public => true,
1843
- :type => Boolean,
2096
+ :default => true,
2097
+ :public => true,
2098
+ :type => Boolean,
1844
2099
  :allowed_from_server => false,
1845
- :description => 'If <code>true</code>, the agent captures attributes on span events.'
2100
+ :description => 'If `true`, the agent captures attributes on span events.'
1846
2101
  },
1847
2102
  :'transaction_segments.attributes.enabled' => {
1848
- :default => true,
1849
- :public => true,
1850
- :type => Boolean,
2103
+ :default => true,
2104
+ :public => true,
2105
+ :type => Boolean,
1851
2106
  :allowed_from_server => false,
1852
- :description => 'If <code>true</code>, the agent captures attributes on transaction segments.'
2107
+ :description => 'If `true`, the agent captures attributes on transaction segments.'
1853
2108
  },
1854
2109
  :'attributes.exclude' => {
1855
- :default => [],
1856
- :public => true,
1857
- :type => Array,
2110
+ :default => [],
2111
+ :public => true,
2112
+ :type => Array,
1858
2113
  :allowed_from_server => false,
1859
- :transform => DefaultSource.method(:convert_to_list),
1860
- :description => 'Prefix of attributes to exclude from all destinations. Allows <code>*</code> as wildcard at end.'
2114
+ :transform => DefaultSource.method(:convert_to_list),
2115
+ :description => 'Prefix of attributes to exclude from all destinations. Allows `*` as wildcard at end.'
1861
2116
  },
1862
2117
  :'transaction_tracer.attributes.exclude' => {
1863
- :default => [],
1864
- :public => true,
1865
- :type => Array,
2118
+ :default => [],
2119
+ :public => true,
2120
+ :type => Array,
1866
2121
  :allowed_from_server => false,
1867
- :transform => DefaultSource.method(:convert_to_list),
1868
- :description => 'Prefix of attributes to exclude from transaction traces. Allows <code>*</code> as wildcard at end.'
2122
+ :transform => DefaultSource.method(:convert_to_list),
2123
+ :description => 'Prefix of attributes to exclude from transaction traces. Allows `*` as wildcard at end.'
1869
2124
  },
1870
2125
  :'transaction_events.attributes.exclude' => {
1871
- :default => [],
1872
- :public => true,
1873
- :type => Array,
2126
+ :default => [],
2127
+ :public => true,
2128
+ :type => Array,
1874
2129
  :allowed_from_server => false,
1875
- :transform => DefaultSource.method(:convert_to_list),
1876
- :description => 'Prefix of attributes to exclude from transaction events. Allows <code>*</code> as wildcard at end.'
2130
+ :transform => DefaultSource.method(:convert_to_list),
2131
+ :description => 'Prefix of attributes to exclude from transaction events. Allows `*` as wildcard at end.'
1877
2132
  },
1878
2133
  :'error_collector.attributes.exclude' => {
1879
- :default => [],
1880
- :public => true,
1881
- :type => Array,
2134
+ :default => [],
2135
+ :public => true,
2136
+ :type => Array,
1882
2137
  :allowed_from_server => false,
1883
- :transform => DefaultSource.method(:convert_to_list),
1884
- :description => 'Prefix of attributes to exclude from error collection. Allows <code>*</code> as wildcard at end.'
2138
+ :transform => DefaultSource.method(:convert_to_list),
2139
+ :description => 'Prefix of attributes to exclude from error collection. Allows `*` as wildcard at end.'
1885
2140
  },
1886
2141
  :'browser_monitoring.attributes.exclude' => {
1887
- :default => [],
1888
- :public => true,
1889
- :type => Array,
2142
+ :default => [],
2143
+ :public => true,
2144
+ :type => Array,
1890
2145
  :allowed_from_server => false,
1891
- :transform => DefaultSource.method(:convert_to_list),
1892
- :description => 'Prefix of attributes to exclude from browser monitoring. Allows <code>*</code> as wildcard at end.'
2146
+ :transform => DefaultSource.method(:convert_to_list),
2147
+ :description => 'Prefix of attributes to exclude from browser monitoring. Allows `*` as wildcard at end.'
1893
2148
  },
1894
2149
  :'span_events.attributes.exclude' => {
1895
- :default => [],
1896
- :public => true,
1897
- :type => Array,
2150
+ :default => [],
2151
+ :public => true,
2152
+ :type => Array,
1898
2153
  :allowed_from_server => false,
1899
- :transform => DefaultSource.method(:convert_to_list),
1900
- :description => 'Prefix of attributes to exclude from span events. Allows <code>*</code> as wildcard at end.'
2154
+ :transform => DefaultSource.method(:convert_to_list),
2155
+ :description => 'Prefix of attributes to exclude from span events. Allows `*` as wildcard at end.'
1901
2156
  },
1902
2157
  :'transaction_segments.attributes.exclude' => {
1903
- :default => [],
1904
- :public => true,
1905
- :type => Array,
2158
+ :default => [],
2159
+ :public => true,
2160
+ :type => Array,
1906
2161
  :allowed_from_server => false,
1907
- :transform => DefaultSource.method(:convert_to_list),
1908
- :description => 'Prefix of attributes to exclude from transaction segments. Allows <code>*</code> as wildcard at end.'
2162
+ :transform => DefaultSource.method(:convert_to_list),
2163
+ :description => 'Prefix of attributes to exclude from transaction segments. Allows `*` as wildcard at end.'
1909
2164
  },
1910
2165
  :'attributes.include' => {
1911
- :default => [],
1912
- :public => true,
1913
- :type => Array,
2166
+ :default => [],
2167
+ :public => true,
2168
+ :type => Array,
1914
2169
  :allowed_from_server => false,
1915
- :transform => DefaultSource.method(:convert_to_list),
1916
- :description => 'Prefix of attributes to include in all destinations. Allows <code>*</code> as wildcard at end.'
2170
+ :transform => DefaultSource.method(:convert_to_list),
2171
+ :description => 'Prefix of attributes to include in all destinations. Allows `*` as wildcard at end.'
1917
2172
  },
1918
2173
  :'transaction_tracer.attributes.include' => {
1919
- :default => [],
1920
- :public => true,
1921
- :type => Array,
2174
+ :default => [],
2175
+ :public => true,
2176
+ :type => Array,
1922
2177
  :allowed_from_server => false,
1923
- :transform => DefaultSource.method(:convert_to_list),
1924
- :description => 'Prefix of attributes to include in transaction traces. Allows <code>*</code> as wildcard at end.'
2178
+ :transform => DefaultSource.method(:convert_to_list),
2179
+ :description => 'Prefix of attributes to include in transaction traces. Allows `*` as wildcard at end.'
1925
2180
  },
1926
2181
  :'transaction_events.attributes.include' => {
1927
- :default => [],
1928
- :public => true,
1929
- :type => Array,
2182
+ :default => [],
2183
+ :public => true,
2184
+ :type => Array,
1930
2185
  :allowed_from_server => false,
1931
- :transform => DefaultSource.method(:convert_to_list),
1932
- :description => 'Prefix of attributes to include in transaction events. Allows <code>*</code> as wildcard at end.'
2186
+ :transform => DefaultSource.method(:convert_to_list),
2187
+ :description => 'Prefix of attributes to include in transaction events. Allows `*` as wildcard at end.'
1933
2188
  },
1934
2189
  :'error_collector.attributes.include' => {
1935
- :default => [],
1936
- :public => true,
1937
- :type => Array,
2190
+ :default => [],
2191
+ :public => true,
2192
+ :type => Array,
1938
2193
  :allowed_from_server => false,
1939
- :transform => DefaultSource.method(:convert_to_list),
1940
- :description => 'Prefix of attributes to include in error collection. Allows <code>*</code> as wildcard at end.'
2194
+ :transform => DefaultSource.method(:convert_to_list),
2195
+ :description => 'Prefix of attributes to include in error collection. Allows `*` as wildcard at end.'
1941
2196
  },
1942
2197
  :'browser_monitoring.attributes.include' => {
1943
- :default => [],
1944
- :public => true,
1945
- :type => Array,
2198
+ :default => [],
2199
+ :public => true,
2200
+ :type => Array,
1946
2201
  :allowed_from_server => false,
1947
- :transform => DefaultSource.method(:convert_to_list),
1948
- :description => 'Prefix of attributes to include in browser monitoring. Allows <code>*</code> as wildcard at end.'
2202
+ :transform => DefaultSource.method(:convert_to_list),
2203
+ :description => 'Prefix of attributes to include in browser monitoring. Allows `*` as wildcard at end.'
1949
2204
  },
1950
2205
  :'span_events.attributes.include' => {
1951
- :default => [],
1952
- :public => true,
1953
- :type => Array,
2206
+ :default => [],
2207
+ :public => true,
2208
+ :type => Array,
1954
2209
  :allowed_from_server => false,
1955
- :transform => DefaultSource.method(:convert_to_list),
1956
- :description => 'Prefix of attributes to include on span events. Allows <code>*</code> as wildcard at end.'
2210
+ :transform => DefaultSource.method(:convert_to_list),
2211
+ :description => 'Prefix of attributes to include on span events. Allows `*` as wildcard at end.'
1957
2212
  },
1958
2213
  :'transaction_segments.attributes.include' => {
1959
- :default => [],
1960
- :public => true,
1961
- :type => Array,
2214
+ :default => [],
2215
+ :public => true,
2216
+ :type => Array,
1962
2217
  :allowed_from_server => false,
1963
- :transform => DefaultSource.method(:convert_to_list),
1964
- :description => 'Prefix of attributes to include on transaction segments. Allows <code>*</code> as wildcard at end.'
2218
+ :transform => DefaultSource.method(:convert_to_list),
2219
+ :description => 'Prefix of attributes to include on transaction segments. Allows `*` as wildcard at end.'
1965
2220
  },
1966
2221
  :'custom_attributes.enabled' => {
1967
- :default => true,
1968
- :public => true,
1969
- :type => Boolean,
2222
+ :default => true,
2223
+ :public => true,
2224
+ :type => Boolean,
1970
2225
  :allowed_from_server => false,
1971
- :description => 'If <code>false</code>, custom attributes will not be sent on Insights events.'
2226
+ :description => 'If `false`, custom attributes will not be sent on events.'
1972
2227
  },
1973
2228
  :'utilization.detect_aws' => {
1974
- :default => true,
1975
- :public => true,
1976
- :type => Boolean,
2229
+ :default => true,
2230
+ :public => true,
2231
+ :type => Boolean,
1977
2232
  :allowed_from_server => false,
1978
2233
  :dynamic_name => true,
1979
- :description => 'If <code>true</code>, the agent automatically detects that it is running in an AWS environment.'
2234
+ :description => 'If `true`, the agent automatically detects that it is running in an AWS environment.'
1980
2235
  },
1981
2236
  :'utilization.detect_azure' => {
1982
- :default => true,
1983
- :public => true,
1984
- :type => Boolean,
2237
+ :default => true,
2238
+ :public => true,
2239
+ :type => Boolean,
1985
2240
  :allowed_from_server => false,
1986
2241
  :dynamic_name => true,
1987
- :description => 'If <code>true</code>, the agent automatically detects that it is running in an Azure environment.'
2242
+ :description => 'If `true`, the agent automatically detects that it is running in an Azure environment.'
1988
2243
  },
1989
2244
  :'utilization.detect_gcp' => {
1990
- :default => true,
1991
- :public => true,
1992
- :type => Boolean,
2245
+ :default => true,
2246
+ :public => true,
2247
+ :type => Boolean,
1993
2248
  :allowed_from_server => false,
1994
2249
  :dynamic_name => true,
1995
- :description => 'If <code>true</code>, the agent automatically detects that it is running in an Google Cloud Platform environment.'
2250
+ :description => 'If `true`, the agent automatically detects that it is running in an Google Cloud Platform environment.'
1996
2251
  },
1997
2252
  :'utilization.detect_pcf' => {
1998
- :default => true,
1999
- :public => true,
2000
- :type => Boolean,
2253
+ :default => true,
2254
+ :public => true,
2255
+ :type => Boolean,
2001
2256
  :allowed_from_server => false,
2002
2257
  :dynamic_name => true,
2003
- :description => 'If <code>true</code>, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
2258
+ :description => 'If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.'
2004
2259
  },
2005
2260
  :'utilization.detect_docker' => {
2006
- :default => true,
2007
- :public => true,
2008
- :type => Boolean,
2261
+ :default => true,
2262
+ :public => true,
2263
+ :type => Boolean,
2009
2264
  :allowed_from_server => false,
2010
- :description => 'If <code>true</code>, the agent automatically detects that it is running in Docker.'
2265
+ :description => 'If `true`, the agent automatically detects that it is running in Docker.'
2011
2266
  },
2012
2267
  :'utilization.detect_kubernetes' => {
2013
- :default => true,
2014
- :public => true,
2015
- :type => Boolean,
2268
+ :default => true,
2269
+ :public => true,
2270
+ :type => Boolean,
2016
2271
  :allowed_from_server => false,
2017
- :description => 'If <code>true</code>, the agent automatically detects that it is running in Kubernetes.'
2272
+ :description => 'If `true`, the agent automatically detects that it is running in Kubernetes.'
2018
2273
  },
2019
2274
  :'utilization.billing_hostname' => {
2020
- :default => nil,
2021
- :allow_nil => true,
2022
- :public => false,
2023
- :type => String,
2275
+ :default => nil,
2276
+ :allow_nil => true,
2277
+ :public => false,
2278
+ :type => String,
2024
2279
  :allowed_from_server => false,
2025
2280
  :description => 'The configured server name by a customer.'
2026
2281
  },
2027
2282
  :'utilization.logical_processors' => {
2028
- :default => nil,
2029
- :allow_nil => true,
2030
- :public => false,
2031
- :type => Integer,
2283
+ :default => nil,
2284
+ :allow_nil => true,
2285
+ :public => false,
2286
+ :type => Integer,
2032
2287
  :allowed_from_server => false,
2033
2288
  :description => 'The total number of hyper-threaded execution contexts available.'
2034
2289
  },
2035
2290
  :'utilization.total_ram_mib' => {
2036
- :default => nil,
2037
- :allow_nil => true,
2038
- :public => false,
2039
- :type => Integer,
2291
+ :default => nil,
2292
+ :allow_nil => true,
2293
+ :public => false,
2294
+ :type => Integer,
2040
2295
  :allowed_from_server => false,
2041
2296
  :description => 'This value represents the total amount of memory available to the host (not the process), in mebibytes (1024 squared or 1,048,576 bytes).'
2042
2297
  },
2043
2298
  :'datastore_tracer.instance_reporting.enabled' => {
2044
- :default => true,
2045
- :public => true,
2046
- :type => Boolean,
2299
+ :default => true,
2300
+ :public => true,
2301
+ :type => Boolean,
2047
2302
  :allowed_from_server => false,
2048
- :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.'
2303
+ :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.'
2049
2304
  },
2050
2305
  :'datastore_tracer.database_name_reporting.enabled' => {
2051
- :default => true,
2052
- :public => true,
2053
- :type => Boolean,
2306
+ :default => true,
2307
+ :public => true,
2308
+ :type => Boolean,
2054
2309
  :allowed_from_server => false,
2055
- :description => 'If <code>false</code>, the agent will not add <code>database_name</code> parameter to transaction or slow sql traces.'
2310
+ :description => 'If `false`, the agent will not add `database_name` parameter to transaction or slow sql traces.'
2056
2311
  },
2057
2312
  :'clear_transaction_state_after_fork' => {
2058
- :default => false,
2059
- :public => true,
2060
- :type => Boolean,
2313
+ :default => false,
2314
+ :public => true,
2315
+ :type => Boolean,
2061
2316
  :allowed_from_server => false,
2062
- :description => 'If <code>true</code>, the agent will clear <code>Tracer::State</code> in <code>Agent.drop_buffered_data</code>.'
2317
+ :description => 'If `true`, the agent will clear `Tracer::State` in `Agent.drop_buffered_data`.'
2063
2318
  },
2064
2319
  :account_id => {
2065
2320
  :default => nil,
@@ -2067,7 +2322,7 @@ module NewRelic
2067
2322
  :public => false,
2068
2323
  :type => String,
2069
2324
  :allowed_from_server => true,
2070
- :description => 'The account id associated with this application.'
2325
+ :description => 'The account id associated with your application.'
2071
2326
  },
2072
2327
  :primary_application_id => {
2073
2328
  :default => nil,
@@ -2075,14 +2330,14 @@ module NewRelic
2075
2330
  :public => false,
2076
2331
  :type => String,
2077
2332
  :allowed_from_server => true,
2078
- :description => 'The primary id associated with this application.'
2333
+ :description => 'The primary id associated with your application.'
2079
2334
  },
2080
2335
  :'distributed_tracing.enabled' => {
2081
- :default => false,
2082
- :public => true,
2083
- :type => Boolean,
2084
- :allowed_from_server => false,
2085
- :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.'
2336
+ :default => true,
2337
+ :public => true,
2338
+ :type => Boolean,
2339
+ :allowed_from_server => true,
2340
+ :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.'
2086
2341
  },
2087
2342
  :trusted_account_key => {
2088
2343
  :default => nil,
@@ -2111,7 +2366,7 @@ module NewRelic
2111
2366
  :public => true,
2112
2367
  :type => Boolean,
2113
2368
  :allowed_from_server => true,
2114
- :description => 'If <code>true</code>, enables span event sampling.'
2369
+ :description => 'If `true`, enables span event sampling.'
2115
2370
  },
2116
2371
  :'span_events.queue_size' => {
2117
2372
  :default => 10_000,
@@ -2122,11 +2377,11 @@ module NewRelic
2122
2377
  :description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
2123
2378
  },
2124
2379
  :'span_events.max_samples_stored' => {
2125
- :default => 1000,
2380
+ :default => 2000,
2126
2381
  :public => true,
2127
2382
  :type => Integer,
2128
2383
  :allowed_from_server => true,
2129
- :description => 'Defines the maximum number of span events reported from a single harvest.'
2384
+ :description => 'Defines the maximum number of span events reported from a single harvest. Any Integer between 1 and 10000 is valid.'
2130
2385
  },
2131
2386
  :'exclude_newrelic_header' => {
2132
2387
  :default => false,