newrelic_rpm 8.15.0 → 9.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (342) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +26 -0
  3. data/CHANGELOG.md +538 -44
  4. data/CONTRIBUTING.md +1 -1
  5. data/Gemfile +1 -1
  6. data/README.md +11 -6
  7. data/Rakefile +9 -9
  8. data/Thorfile +1 -1
  9. data/bin/newrelic +1 -0
  10. data/bin/newrelic_cmd +1 -0
  11. data/bin/nrdebug +36 -36
  12. data/init.rb +1 -1
  13. data/lib/new_relic/agent/agent.rb +3 -16
  14. data/lib/new_relic/agent/agent_helpers/connect.rb +5 -10
  15. data/lib/new_relic/agent/agent_helpers/harvest.rb +4 -4
  16. data/lib/new_relic/agent/agent_helpers/shutdown.rb +5 -5
  17. data/lib/new_relic/agent/agent_helpers/special_startup.rb +3 -4
  18. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +47 -39
  19. data/lib/new_relic/agent/agent_helpers/startup.rb +13 -13
  20. data/lib/new_relic/agent/agent_helpers/transmit.rb +6 -6
  21. data/lib/new_relic/agent/agent_logger.rb +9 -9
  22. data/lib/new_relic/agent/attribute_filter.rb +2 -4
  23. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  24. data/lib/new_relic/agent/attribute_processing.rb +2 -2
  25. data/lib/new_relic/agent/audit_logger.rb +5 -5
  26. data/lib/new_relic/agent/autostart.rb +1 -1
  27. data/lib/new_relic/agent/commands/agent_command.rb +2 -2
  28. data/lib/new_relic/agent/commands/agent_command_router.rb +5 -4
  29. data/lib/new_relic/agent/commands/thread_profiler_session.rb +8 -8
  30. data/lib/new_relic/agent/configuration/default_source.rb +428 -586
  31. data/lib/new_relic/agent/configuration/environment_source.rb +2 -2
  32. data/lib/new_relic/agent/configuration/high_security_source.rb +3 -5
  33. data/lib/new_relic/agent/configuration/manager.rb +16 -2
  34. data/lib/new_relic/agent/configuration/security_policy_source.rb +10 -26
  35. data/lib/new_relic/agent/configuration/server_source.rb +24 -24
  36. data/lib/new_relic/agent/configuration/yaml_source.rb +17 -4
  37. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  38. data/lib/new_relic/agent/connect/response_handler.rb +1 -1
  39. data/lib/new_relic/agent/custom_event_aggregator.rb +4 -4
  40. data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
  41. data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
  42. data/lib/new_relic/agent/database/obfuscator.rb +2 -2
  43. data/lib/new_relic/agent/database.rb +4 -18
  44. data/lib/new_relic/agent/datastores/metric_helper.rb +5 -5
  45. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +11 -11
  46. data/lib/new_relic/agent/datastores/redis.rb +6 -6
  47. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +8 -10
  48. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +10 -10
  49. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +7 -7
  50. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +1 -1
  51. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +6 -6
  52. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +7 -7
  53. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +4 -4
  54. data/lib/new_relic/agent/distributed_tracing.rb +6 -6
  55. data/lib/new_relic/agent/error_collector.rb +36 -8
  56. data/lib/new_relic/agent/error_filter.rb +5 -5
  57. data/lib/new_relic/agent/error_trace_aggregator.rb +5 -4
  58. data/lib/new_relic/agent/event_loop.rb +3 -3
  59. data/lib/new_relic/agent/external.rb +1 -1
  60. data/lib/new_relic/agent/harvester.rb +1 -3
  61. data/lib/new_relic/agent/heap.rb +2 -1
  62. data/lib/new_relic/agent/hostname.rb +1 -1
  63. data/lib/new_relic/agent/http_clients/abstract.rb +9 -21
  64. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +83 -0
  65. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +7 -3
  66. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +111 -0
  67. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +7 -5
  68. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +4 -0
  69. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +6 -2
  70. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +93 -0
  71. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +5 -1
  72. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +8 -5
  73. data/lib/new_relic/agent/http_clients/uri_util.rb +2 -2
  74. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +6 -19
  75. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +42 -0
  76. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +3 -2
  77. data/lib/new_relic/agent/instrumentation/action_dispatch.rb +31 -0
  78. data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +64 -0
  79. data/lib/new_relic/agent/instrumentation/action_mailbox.rb +30 -0
  80. data/lib/new_relic/agent/instrumentation/action_mailbox_subscriber.rb +33 -0
  81. data/lib/new_relic/agent/instrumentation/action_mailer.rb +30 -0
  82. data/lib/new_relic/agent/instrumentation/action_mailer_subscriber.rb +85 -0
  83. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +10 -10
  84. data/lib/new_relic/agent/instrumentation/active_job.rb +16 -3
  85. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +41 -0
  86. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -3
  87. data/lib/new_relic/agent/instrumentation/active_record.rb +4 -3
  88. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +38 -36
  89. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +5 -4
  90. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  91. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +3 -2
  92. data/lib/new_relic/agent/instrumentation/active_storage.rb +4 -0
  93. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +2 -30
  94. data/lib/new_relic/agent/instrumentation/active_support.rb +21 -6
  95. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  96. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +13 -0
  97. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  98. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +23 -0
  99. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
  100. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -1
  101. data/lib/new_relic/agent/instrumentation/active_support_subscriber.rb +41 -0
  102. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  103. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  104. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  105. data/lib/new_relic/agent/instrumentation/async_http.rb +26 -0
  106. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  107. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +12 -3
  108. data/lib/new_relic/agent/instrumentation/bunny.rb +1 -1
  109. data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +1 -1
  110. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +3 -4
  111. data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +1 -1
  112. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +7 -6
  113. data/lib/new_relic/agent/instrumentation/curb/chain.rb +1 -1
  114. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +9 -5
  115. data/lib/new_relic/agent/instrumentation/curb.rb +1 -1
  116. data/lib/new_relic/agent/instrumentation/custom_events.rb +12 -0
  117. data/lib/new_relic/agent/instrumentation/custom_events_subscriber.rb +2 -1
  118. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -0
  119. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +4 -1
  120. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +2 -1
  121. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +2 -2
  122. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +8 -4
  123. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +2 -2
  124. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  125. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  126. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  127. data/lib/new_relic/agent/instrumentation/ethon.rb +39 -0
  128. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +5 -1
  129. data/lib/new_relic/agent/instrumentation/excon.rb +3 -3
  130. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +27 -0
  131. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +23 -0
  132. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +25 -0
  133. data/lib/new_relic/agent/instrumentation/fiber.rb +25 -0
  134. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +8 -4
  135. data/lib/new_relic/agent/instrumentation/grape.rb +4 -4
  136. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +1 -1
  137. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +7 -2
  138. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +1 -1
  139. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +1 -1
  140. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +8 -4
  141. data/lib/new_relic/agent/instrumentation/grpc_client.rb +2 -2
  142. data/lib/new_relic/agent/instrumentation/grpc_server.rb +2 -2
  143. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
  144. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
  145. data/lib/new_relic/agent/instrumentation/httprb.rb +1 -1
  146. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  147. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  148. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  149. data/lib/new_relic/agent/instrumentation/httpx.rb +27 -0
  150. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
  151. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
  152. data/lib/new_relic/agent/instrumentation/logger.rb +1 -1
  153. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +3 -1
  154. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +14 -5
  155. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +3 -1
  156. data/lib/new_relic/agent/instrumentation/memcache.rb +12 -12
  157. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +3 -3
  158. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +1 -1
  159. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +6 -8
  160. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +5 -1
  161. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -2
  162. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +46 -1
  163. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +7 -3
  164. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +2 -2
  165. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  166. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +7 -1
  167. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +7 -2
  168. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  169. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +4 -4
  170. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +14 -1
  171. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +12 -15
  172. data/lib/new_relic/agent/instrumentation/rake.rb +3 -3
  173. data/lib/new_relic/agent/instrumentation/redis/constants.rb +1 -1
  174. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +6 -1
  175. data/lib/new_relic/agent/instrumentation/redis.rb +1 -1
  176. data/lib/new_relic/agent/instrumentation/resque/helper.rb +1 -1
  177. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
  178. data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
  179. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  180. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  181. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
  182. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  183. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
  184. data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
  185. data/lib/new_relic/agent/instrumentation/sequel.rb +8 -9
  186. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +10 -10
  187. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
  188. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +1 -1
  189. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
  190. data/lib/new_relic/agent/instrumentation/sidekiq.rb +6 -3
  191. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  192. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +10 -5
  193. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +2 -4
  194. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  195. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +77 -0
  196. data/lib/new_relic/agent/instrumentation/thread/chain.rb +1 -1
  197. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +3 -8
  198. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +1 -1
  199. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +6 -1
  200. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +10 -6
  201. data/lib/new_relic/agent/javascript_instrumentor.rb +29 -24
  202. data/lib/new_relic/agent/linking_metadata.rb +2 -2
  203. data/lib/new_relic/agent/log_event_aggregator.rb +64 -17
  204. data/lib/new_relic/agent/log_event_attributes.rb +115 -0
  205. data/lib/new_relic/agent/logging.rb +77 -37
  206. data/lib/new_relic/agent/messaging.rb +9 -7
  207. data/lib/new_relic/agent/method_tracer.rb +7 -7
  208. data/lib/new_relic/agent/method_tracer_helpers.rb +27 -6
  209. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +4 -5
  210. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -1
  211. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
  212. data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
  213. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  214. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +0 -1
  215. data/lib/new_relic/agent/new_relic_service.rb +47 -32
  216. data/lib/new_relic/agent/obfuscator.rb +1 -1
  217. data/lib/new_relic/agent/parameter_filtering.rb +6 -6
  218. data/lib/new_relic/agent/pipe_channel_manager.rb +7 -6
  219. data/lib/new_relic/agent/pipe_service.rb +5 -3
  220. data/lib/new_relic/agent/priority_sampled_buffer.rb +1 -1
  221. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +0 -1
  222. data/lib/new_relic/agent/rules_engine.rb +1 -1
  223. data/lib/new_relic/agent/sampler.rb +2 -1
  224. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  225. data/lib/new_relic/agent/samplers/cpu_sampler.rb +5 -5
  226. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +9 -9
  227. data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -9
  228. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  229. data/lib/new_relic/agent/span_event_aggregator.rb +4 -4
  230. data/lib/new_relic/agent/span_event_primitive.rb +18 -6
  231. data/lib/new_relic/agent/sql_sampler.rb +2 -2
  232. data/lib/new_relic/agent/stats.rb +1 -1
  233. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
  234. data/lib/new_relic/agent/system_info.rb +36 -10
  235. data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
  236. data/lib/new_relic/agent/threading/backtrace_node.rb +3 -3
  237. data/lib/new_relic/agent/threading/backtrace_service.rb +3 -7
  238. data/lib/new_relic/agent/threading/thread_profile.rb +5 -5
  239. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  240. data/lib/new_relic/agent/tracer.rb +25 -16
  241. data/lib/new_relic/agent/transaction/abstract_segment.rb +109 -48
  242. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  243. data/lib/new_relic/agent/transaction/distributed_tracer.rb +7 -6
  244. data/lib/new_relic/agent/transaction/distributed_tracing.rb +13 -14
  245. data/lib/new_relic/agent/transaction/external_request_segment.rb +16 -13
  246. data/lib/new_relic/agent/transaction/message_broker_segment.rb +2 -3
  247. data/lib/new_relic/agent/transaction/request_attributes.rb +47 -11
  248. data/lib/new_relic/agent/transaction/segment.rb +1 -1
  249. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  250. data/lib/new_relic/agent/transaction/trace.rb +1 -1
  251. data/lib/new_relic/agent/transaction/trace_context.rb +4 -4
  252. data/lib/new_relic/agent/transaction/trace_node.rb +8 -7
  253. data/lib/new_relic/agent/transaction/tracing.rb +10 -4
  254. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
  255. data/lib/new_relic/agent/transaction.rb +90 -58
  256. data/lib/new_relic/agent/transaction_error_primitive.rb +21 -5
  257. data/lib/new_relic/agent/transaction_event_aggregator.rb +4 -4
  258. data/lib/new_relic/agent/transaction_event_primitive.rb +22 -3
  259. data/lib/new_relic/agent/transaction_sampler.rb +3 -3
  260. data/lib/new_relic/agent/transaction_time_aggregator.rb +7 -3
  261. data/lib/new_relic/agent/utilization/aws.rb +1 -1
  262. data/lib/new_relic/agent/utilization/azure.rb +3 -3
  263. data/lib/new_relic/agent/utilization/gcp.rb +4 -6
  264. data/lib/new_relic/agent/utilization/pcf.rb +1 -1
  265. data/lib/new_relic/agent/utilization/vendor.rb +6 -8
  266. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  267. data/lib/new_relic/agent/vm/mri_vm.rb +9 -8
  268. data/lib/new_relic/agent/worker_loop.rb +1 -1
  269. data/lib/new_relic/agent.rb +133 -36
  270. data/lib/new_relic/cli/command.rb +4 -3
  271. data/lib/new_relic/cli/commands/deployments.rb +26 -25
  272. data/lib/new_relic/cli/commands/install.rb +23 -23
  273. data/lib/new_relic/collection_helper.rb +2 -2
  274. data/lib/new_relic/constants.rb +10 -8
  275. data/lib/new_relic/control/class_methods.rb +4 -10
  276. data/lib/new_relic/control/frameworks/rails.rb +44 -20
  277. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  278. data/lib/new_relic/control/instance_methods.rb +6 -6
  279. data/lib/new_relic/control/instrumentation.rb +1 -15
  280. data/lib/new_relic/control/private_instance_methods.rb +1 -1
  281. data/lib/new_relic/dependency_detection.rb +20 -18
  282. data/lib/new_relic/environment_report.rb +4 -4
  283. data/lib/new_relic/helper.rb +2 -1
  284. data/lib/new_relic/language_support.rb +10 -1
  285. data/lib/new_relic/latest_changes.rb +6 -6
  286. data/lib/new_relic/local_environment.rb +0 -10
  287. data/lib/new_relic/noticed_error.rb +25 -20
  288. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  289. data/lib/new_relic/rack/agent_middleware.rb +0 -16
  290. data/lib/new_relic/rack/browser_monitoring.rb +21 -17
  291. data/lib/new_relic/recipes/capistrano3.rb +1 -1
  292. data/lib/new_relic/recipes/capistrano_legacy.rb +6 -6
  293. data/lib/new_relic/recipes/helpers/send_deployment.rb +5 -5
  294. data/lib/new_relic/supportability_helper.rb +4 -1
  295. data/lib/new_relic/traced_thread.rb +2 -3
  296. data/lib/new_relic/version.rb +2 -2
  297. data/lib/newrelic_rpm.rb +4 -4
  298. data/lib/sequel/extensions/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +6 -6
  299. data/lib/sequel/plugins/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +4 -4
  300. data/lib/tasks/bump_version.rake +21 -0
  301. data/lib/tasks/config.rake +13 -12
  302. data/lib/tasks/coverage_report.rake +4 -4
  303. data/lib/tasks/helpers/config.html.erb +93 -0
  304. data/lib/tasks/helpers/format.rb +19 -15
  305. data/lib/tasks/helpers/newrelicyml.rb +144 -0
  306. data/lib/tasks/helpers/version_bump.rb +62 -0
  307. data/lib/tasks/install.rake +4 -4
  308. data/lib/tasks/instrumentation_generator/instrumentation.thor +16 -19
  309. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +1 -1
  310. data/lib/tasks/instrumentation_generator/templates/chain.tt +1 -1
  311. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +1 -1
  312. data/lib/tasks/newrelic.rb +1 -0
  313. data/lib/tasks/newrelicyml.rake +13 -0
  314. data/lib/tasks/tests.rake +77 -6
  315. data/newrelic.yml +393 -274
  316. data/newrelic_rpm.gemspec +41 -30
  317. data/test/agent_helper.rb +25 -24
  318. metadata +172 -35
  319. data/.gitignore +0 -42
  320. data/.project +0 -23
  321. data/.rubocop.yml +0 -1946
  322. data/.rubocop_todo.yml +0 -62
  323. data/.simplecov +0 -15
  324. data/.snyk +0 -11
  325. data/.yardopts +0 -27
  326. data/Brewfile +0 -12
  327. data/DOCKER.md +0 -167
  328. data/Dockerfile +0 -10
  329. data/Guardfile +0 -26
  330. data/config/database.yml +0 -5
  331. data/config.dot +0 -278
  332. data/docker-compose.yml +0 -107
  333. data/lefthook.yml +0 -9
  334. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -83
  335. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -33
  336. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -215
  337. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -36
  338. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -41
  339. data/lib/new_relic/agent/range_extensions.rb +0 -27
  340. data/lib/tasks/helpers/removers.rb +0 -33
  341. data/lib/tasks/multiverse.rake +0 -6
  342. data/lib/tasks/multiverse.rb +0 -77
data/newrelic.yml CHANGED
@@ -26,49 +26,68 @@ common: &default_settings
26
26
  # All of the following configuration options are optional. Review them, and
27
27
  # uncomment or edit them if they appear relevant to your application needs.
28
28
 
29
- # An array of ActiveSupport custom events names to subscribe to and provide
30
- # instrumentation for. For example,
31
- # - my.custom.event
32
- # - another.event
33
- # - a.third.event
34
- # active_support_custom_events_names: ""
35
-
36
- # If `true`, all logging-related features for the agent can be enabled or disabled
37
- # independently. If `false`, all logging-related features are disabled.
29
+ # An array of ActiveSupport custom event names to subscribe to and instrument. For
30
+ # example,
31
+ # - one.custom.event
32
+ # - another.event
33
+ # - a.third.event
34
+ # active_support_custom_events_names: []
35
+
36
+ # If true, enables capture of all HTTP request headers for all destinations.
37
+ # allow_all_headers: false
38
+
39
+ # Your New Relic userKey. Required when using the New Relic REST API v2 to record
40
+ # deployments using the newrelic deployments command.
41
+ # api_key: ""
42
+
43
+ # If true, enables log decoration and the collection of log events and metrics.
38
44
  # application_logging.enabled: true
39
45
 
40
- # If `true`, the agent captures log records emitted by this application.
46
+ # A hash with key/value pairs to add as custom attributes to all log events
47
+ # forwarded to New Relic. If sending using an environment variable, the value must
48
+ # be formatted like: "key1=value1,key2=value2"
49
+ # application_logging.forwarding.custom_attributes: {}
50
+
51
+ # If true, the agent captures log records emitted by your application.
41
52
  # application_logging.forwarding.enabled: true
42
53
 
54
+ # Sets the minimum level a log event must have to be forwarded to New Relic.
55
+ # This is based on the integer values of Ruby's Logger::Severity constants:
56
+ # https://github.com/ruby/ruby/blob/master/lib/logger/severity.rb
57
+ # The intention is to forward logs with the level given to the configuration, as
58
+ # well as any logs with a higher level of severity.
59
+ # For example, setting this value to "debug" will forward all log events to New
60
+ # Relic. Setting this value to "error" will only forward log events with the
61
+ # levels "error", "fatal", and "unknown".
62
+ # Valid values (ordered lowest to highest):
63
+ # * "debug"
64
+ # * "info"
65
+ # * "warn"
66
+ # * "error"
67
+ # * "fatal"
68
+ # * "unknown"
69
+ # application_logging.forwarding.log_level: debug
70
+
43
71
  # Defines the maximum number of log records to buffer in memory at a time.
44
72
  # application_logging.forwarding.max_samples_stored: 10000
45
73
 
46
- # If `true`, the agent captures metrics related to logging for this application.
47
- # application_logging.metrics.enabled: true
48
-
49
- # If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.
74
+ # If true, the agent decorates logs with metadata to link to entities, hosts,
75
+ # traces, and spans.
50
76
  # application_logging.local_decorating.enabled: false
51
77
 
52
- # If `true`, the agent will report source code level metrics for traced methods
53
- # see: https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/
54
- # code_level_metrics.enabled: true
55
-
56
- # If true, enables transaction event sampling.
57
- # transaction_events.enabled: true
78
+ # If true, the agent captures metrics related to logging for your application.
79
+ # application_logging.metrics.enabled: true
58
80
 
59
- # Defines the maximum number of request events reported from a single harvest.
60
- # transaction_events.max_samples_stored: 1200
81
+ # If true, enables capture of attributes for all destinations.
82
+ # attributes.enabled: true
61
83
 
62
84
  # Prefix of attributes to exclude from all destinations. Allows * as wildcard at
63
85
  # end.
64
- # attributes_exclude: []
86
+ # attributes.exclude: []
65
87
 
66
88
  # Prefix of attributes to include in all destinations. Allows * as wildcard at
67
89
  # end.
68
- # attributes_include: []
69
-
70
- # If true, enables capture of attributes for all destinations.
71
- # attributes.enabled: true
90
+ # attributes.include: []
72
91
 
73
92
  # If true, enables an audit log which logs communications with the New Relic
74
93
  # collector.
@@ -78,39 +97,39 @@ common: &default_settings
78
97
  # audit_log.endpoints: [".*"]
79
98
 
80
99
  # Specifies a path to the audit log file (including the filename).
81
- # audit_log.path: "/audit_log"
100
+ # audit_log.path: log/newrelic_audit.log
82
101
 
83
102
  # Specify a list of constants that should prevent the agent from starting
84
- # automatically. Separate individual constants with a comma ,.
85
- # For example, Rails::Console,UninstrumentedBackgroundJob.
86
- # autostart.denylisted_constants: "rails::console"
103
+ # automatically. Separate individual constants with a comma ,. For example,
104
+ # "Rails::Console,UninstrumentedBackgroundJob".
105
+ # autostart.denylisted_constants: Rails::Command::ConsoleCommand,Rails::Command::CredentialsCommand,Rails::Command::Db::System::ChangeCommand,Rails::Command::DbConsoleCommand,Rails::Command::DestroyCommand,Rails::Command::DevCommand,Rails::Command::EncryptedCommand,Rails::Command::GenerateCommand,Rails::Command::InitializersCommand,Rails::Command::NotesCommand,Rails::Command::RoutesCommand,Rails::Command::SecretsCommand,Rails::Console,Rails::DBConsole
87
106
 
88
107
  # Defines a comma-delimited list of executables that the agent should not
89
- # instrument. For example, rake,my_ruby_script.rb.
90
- # autostart.denylisted_executables: "irb,rspec"
108
+ # instrument. For example, "rake,my_ruby_script.rb".
109
+ # autostart.denylisted_executables: irb,rspec
91
110
 
92
111
  # Defines a comma-delimited list of Rake tasks that the agent should not
93
- # instrument. For example, assets:precompile,db:migrate.
94
- # autostart.denylisted_rake_tasks: "about,assets:clean,assets:clobber,assets:environment,assets:precompile,assets:precompile:all,db:create,db:drop,db:fixtures:load,db:migrate,db:migrate:status,db:rollback,db:schema:cache:clear,db:schema:cache:dump,db:schema:dump,db:schema:load,db:seed,db:setup,db:structure:dump,db:version,doc:app,log:clear,middleware,notes,notes:custom,rails:template,rails:update,routes,secret,spec,spec:features,spec:requests,spec:controllers,spec:helpers,spec:models,spec:views,spec:routing,spec:rcov,stats,test,test:all,test:all:db,test:recent,test:single,test:uncommitted,time:zones:all,tmp:clear,tmp:create,webpacker:compile"
112
+ # instrument. For example, "assets:precompile,db:migrate".
113
+ # autostart.denylisted_rake_tasks: about,assets:clean,assets:clobber,assets:environment,assets:precompile,assets:precompile:all,db:create,db:drop,db:fixtures:load,db:migrate,db:migrate:status,db:rollback,db:schema:cache:clear,db:schema:cache:dump,db:schema:dump,db:schema:load,db:seed,db:setup,db:structure:dump,db:version,doc:app,log:clear,middleware,notes,notes:custom,rails:template,rails:update,routes,secret,spec,spec:features,spec:requests,spec:controllers,spec:helpers,spec:models,spec:views,spec:routing,spec:rcov,stats,test,test:all,test:all:db,test:recent,test:single,test:uncommitted,time:zones:all,tmp:clear,tmp:create,webpacker:compile
95
114
 
96
- # Backports the faster Active Record connection lookup introduced in Rails 6,
97
- # which improves agent performance when instrumenting Active Record. Note that
98
- # this setting may not be compatible with other gems that patch Active Record.
115
+ # Backports the faster ActiveRecord connection lookup introduced in Rails 6, which
116
+ # improves agent performance when instrumenting ActiveRecord. Note that this
117
+ # setting may not be compatible with other gems that patch ActiveRecord.
99
118
  # backport_fast_active_record_connection_lookup: false
100
119
 
101
120
  # If true, the agent captures attributes from browser monitoring.
102
121
  # browser_monitoring.attributes.enabled: false
103
122
 
104
- # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard
105
- # at end.
123
+ # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard at
124
+ # end.
106
125
  # browser_monitoring.attributes.exclude: []
107
126
 
108
127
  # Prefix of attributes to include in browser monitoring. Allows * as wildcard at
109
128
  # end.
110
129
  # browser_monitoring.attributes.include: []
111
130
 
112
- # This is true by default, this enables auto-injection of the JavaScript header
113
- # for page load timing (sometimes referred to as real user monitoring or RUM).
131
+ # If true, enables auto-injection of the JavaScript header for page load timing
132
+ # (sometimes referred to as real user monitoring or RUM).
114
133
  # browser_monitoring.auto_instrument: true
115
134
 
116
135
  # Manual override for the path to your local CA bundle. This CA bundle will be
@@ -122,74 +141,76 @@ common: &default_settings
122
141
  # capture_memcache_keys: false
123
142
 
124
143
  # When true, the agent captures HTTP request parameters and attaches them to
125
- # transaction traces, traced errors, and TransactionError events. When using the
126
- # capture_params setting, the Ruby agent will not attempt to filter secret
127
- # information. Recommendation: To filter secret information from request
128
- # parameters,use the attributes.include setting instead. For more information,
144
+ # transaction traces, traced errors, and TransactionError events.
145
+ # When using the capture_params setting, the Ruby agent will not attempt to filter
146
+ # secret information. Recommendation: To filter secret information from request
147
+ # parameters, use the attributes.include setting instead. For more information,
129
148
  # see the Ruby attribute examples.
130
149
  # capture_params: false
131
150
 
132
151
  # If true, the agent will clear Tracer::State in Agent.drop_buffered_data.
133
152
  # clear_transaction_state_after_fork: false
134
153
 
154
+ # If true, the agent will report source code level metrics for traced methods.
155
+ # see:
156
+ # https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/
157
+ # code_level_metrics.enabled: true
158
+
135
159
  # Path to newrelic.yml. If undefined, the agent checks the following directories
136
- # (in order): config/newrelic.yml, newrelic.yml, $HOME/.newrelic/newrelic.yml
137
- # and $HOME/newrelic.yml.
160
+ # (in order):
161
+ # * config/newrelic.yml
162
+ # * newrelic.yml
163
+ # * $HOME/.newrelic/newrelic.yml
164
+ # * $HOME/newrelic.yml
138
165
  # config_path: newrelic.yml
139
166
 
140
- # If true, enables cross application tracing. Cross application tracing is now
141
- # deprecated, and disabled by default. Distributed tracing is replacing cross
142
- # application tracing as the default means of tracing between services.
143
- # To continue using it, set `cross_application_tracer.enabled: true` and
144
- # `distributed_tracing.enabled: false`
145
- # cross_application_tracer.enabled: false
146
-
147
- # If false, custom attributes will not be sent on New Relic Insights events.
167
+ # If false, custom attributes will not be sent on events.
148
168
  # custom_attributes.enabled: true
149
169
 
150
- # If true, the agent captures New Relic Insights custom events.
170
+ # If true, the agent captures custom events.
151
171
  # custom_insights_events.enabled: true
152
172
 
153
- # Specify a maximum number of custom Insights events to buffer in memory at a
154
- # time.
173
+ # Specify a maximum number of custom events to buffer in memory at a time.
155
174
  # custom_insights_events.max_samples_stored: 3000
156
175
 
157
- # If false, the agent will not add database_name parameter to transaction or #
158
- # slow sql traces.
176
+ # If false, the agent will not add database_name parameter to transaction or slow
177
+ # sql traces.
159
178
  # datastore_tracer.database_name_reporting.enabled: true
160
179
 
161
- # If false, the agent will not report datastore instance metrics, nor add host
162
- # or port_path_or_id parameters to transaction or slow SQL traces.
180
+ # If false, the agent will not report datastore instance metrics, nor add host or
181
+ # port_path_or_id parameters to transaction or slow SQL traces.
163
182
  # datastore_tracer.instance_reporting.enabled: true
164
183
 
165
- # If true, when the agent is in an application using Ruby on Rails, it will start after
166
- # config/initializers have run.
167
- # defer_rails_initialization: false
168
-
169
184
  # If true, disables Action Cable instrumentation.
170
185
  # disable_action_cable_instrumentation: false
171
186
 
172
- # If true, disables instrumentation for Active Record 4, 5, and 6.
187
+ # If true, disables Action Controller instrumentation.
188
+ # disable_action_controller: false
189
+
190
+ # If true, disables Action Mailbox instrumentation.
191
+ # disable_action_mailbox: false
192
+
193
+ # If true, disables Action Mailer instrumentation.
194
+ # disable_action_mailer: false
195
+
196
+ # If true, disables Active Record instrumentation.
197
+ # disable_active_record_instrumentation: false
198
+
199
+ # If true, disables instrumentation for Active Record 4+
173
200
  # disable_active_record_notifications: false
174
201
 
175
202
  # If true, disables Active Storage instrumentation.
176
203
  # disable_active_storage: false
177
204
 
205
+ # If true, disables Active Support instrumentation.
206
+ # disable_active_support: false
207
+
178
208
  # If true, disables Active Job instrumentation.
179
209
  # disable_activejob: false
180
210
 
181
- # If true, disables Active Record instrumentation.
182
- # disable_active_record_instrumentation: false
183
-
184
211
  # If true, the agent won't sample the CPU usage of the host process.
185
212
  # disable_cpu_sampler: false
186
213
 
187
- # If true, disables ActiveSupport custom events instrumentation.
188
- # disable_custom_events_instrumentation: false
189
-
190
- # If true, disables DataMapper instrumentation.
191
- # disable_data_mapper: false
192
-
193
214
  # If true, the agent won't measure the depth of Delayed Job queues.
194
215
  # disable_delayed_job_sampler: false
195
216
 
@@ -202,10 +223,17 @@ common: &default_settings
202
223
 
203
224
  # If true, the agent won't wrap third-party middlewares in instrumentation
204
225
  # (regardless of whether they are installed via Rack::Builder or Rails).
226
+ # When middleware instrumentation is disabled, if an application is using
227
+ # middleware that could alter the response code, the HTTP status code reported on
228
+ # the transaction may not reflect the altered value.
205
229
  # disable_middleware_instrumentation: false
206
230
 
207
- # If true, disables the collection of sampler metrics. Sampler metrics are
208
- # metrics that are not event-based (such as CPU time or memory usage).
231
+ # If true, disables agent middleware for Roda. This middleware is responsible for
232
+ # advanced feature support such as page load timing and error collection.
233
+ # disable_roda_auto_middleware: false
234
+
235
+ # If true, disables the collection of sampler metrics. Sampler metrics are metrics
236
+ # that are not event-based (such as CPU time or memory usage).
209
237
  # disable_samplers: false
210
238
 
211
239
  # If true, disables Sequel instrumentation.
@@ -215,8 +243,20 @@ common: &default_settings
215
243
  # disable_sidekiq: false
216
244
 
217
245
  # If true, disables agent middleware for Sinatra. This middleware is responsible
218
- # for advanced feature support such as distributed tracing, page load
246
+ # for advanced feature support such as cross application tracing, page load
219
247
  # timing, and error collection.
248
+ # Cross application tracing is deprecated in favor of distributed tracing.
249
+ # Distributed tracing is on by default for Ruby agent versions 8.0.0 and above.
250
+ # Middlewares are not required to support distributed tracing.
251
+ # To continue using cross application tracing, update the following options in
252
+ # your newrelic.yml configuration file:
253
+ # ``yaml
254
+ # # newrelic.yml
255
+ # cross_application_tracer:
256
+ # enabled: true
257
+ # distributed_tracing:
258
+ # enabled: false
259
+ # ``
220
260
  # disable_sinatra_auto_middleware: false
221
261
 
222
262
  # If true, disables view instrumentation.
@@ -225,19 +265,27 @@ common: &default_settings
225
265
  # If true, the agent won't sample performance measurements from the Ruby VM.
226
266
  # disable_vm_sampler: false
227
267
 
228
- # Distributed tracing tracks and observes service requests as they flow through distributed systems.
229
- # With distributed tracing data, you can quickly pinpoint failures or performance issues and fix them.
268
+ # Distributed tracing lets you see the path that a request takes through your
269
+ # distributed system. Enabling distributed tracing changes the behavior of some
270
+ # New Relic features, so carefully consult the transition guide before you enable
271
+ # this feature.
230
272
  # distributed_tracing.enabled: true
231
273
 
274
+ # If true, the agent captures Elasticsearch queries in transaction traces.
275
+ # elasticsearch.capture_queries: true
276
+
277
+ # If true, the agent obfuscates Elasticsearch queries in transaction traces.
278
+ # elasticsearch.obfuscate_queries: true
279
+
232
280
  # If true, the agent captures attributes from error collection.
233
- # error_collector.attributes.enabled: false
281
+ # error_collector.attributes.enabled: true
234
282
 
235
- # Prefix of attributes to exclude from error collection.
236
- # Allows * as wildcard at end.
283
+ # Prefix of attributes to exclude from error collection. Allows * as wildcard at
284
+ # end.
237
285
  # error_collector.attributes.exclude: []
238
286
 
239
- # Prefix of attributes to include in error collection.
240
- # Allows * as wildcard at end.
287
+ # Prefix of attributes to include in error collection. Allows * as wildcard at
288
+ # end.
241
289
  # error_collector.attributes.include: []
242
290
 
243
291
  # If true, the agent collects TransactionError events.
@@ -247,11 +295,13 @@ common: &default_settings
247
295
  # error_collector.enabled: true
248
296
 
249
297
  # A list of error classes that the agent should treat as expected.
298
+ # This option can't be set via environment variable.
250
299
  # error_collector.expected_classes: []
251
300
 
252
301
  # A map of error classes to a list of messages. When an error of one of the
253
- # classes specified here occurs, if its error message contains one of the
254
- # strings corresponding to it here, that error will be treated as expected.
302
+ # classes specified here occurs, if its error message contains one of the strings
303
+ # corresponding to it here, that error will be treated as expected.
304
+ # This option can't be set via environment variable.
255
305
  # error_collector.expected_messages: {}
256
306
 
257
307
  # A comma separated list of status codes, possibly including ranges. Errors
@@ -260,212 +310,241 @@ common: &default_settings
260
310
  # error_collector.expected_status_codes: ""
261
311
 
262
312
  # A list of error classes that the agent should ignore.
263
- # error_collector.ignore_classes: []
313
+ # This option can't be set via environment variable.
314
+ # error_collector.ignore_classes: ["ActionController::RoutingError", "Sinatra::NotFound"]
264
315
 
265
316
  # A map of error classes to a list of messages. When an error of one of the
266
- # classes specified here occurs, if its error message contains one of the
267
- # strings corresponding to it here, that error will be ignored.
268
- # error_collector.ignore_messages: ""
317
+ # classes specified here occurs, if its error message contains one of the strings
318
+ # corresponding to it here, that error will be ignored.
319
+ # This option can't be set via environment variable.
320
+ # error_collector.ignore_messages: {}
269
321
 
270
322
  # A comma separated list of status codes, possibly including ranges. Errors
271
323
  # associated with these status codes, where applicable, will be ignored.
272
324
  # error_collector.ignore_status_codes: ""
273
325
 
274
- # Defines the maximum number of frames in an error backtrace. Backtraces over
275
- # this amount are truncated at the beginning and end.
326
+ # Defines the maximum number of frames in an error backtrace. Backtraces over this
327
+ # amount are truncated at the beginning and end.
276
328
  # error_collector.max_backtrace_frames: 50
277
329
 
278
- # Defines the maximum number of TransactionError events sent to Insights per
279
- # harvest cycle.
330
+ # Defines the maximum number of TransactionError events reported per harvest
331
+ # cycle.
280
332
  # error_collector.max_event_samples_stored: 100
281
333
 
282
334
  # Allows newrelic distributed tracing headers to be suppressed on outbound
283
335
  # requests.
284
336
  # exclude_newrelic_header: false
285
337
 
286
- # Forces the exit handler that sends all cached data to collector before
287
- # shutting down to be installed regardless of detecting scenarios where it
288
- # generally should not be. Known use-case for this option is where Sinatra is
289
- # running as an embedded service within another framework and the agent is
290
- # detecting the Sinatra app and skipping the at_exit handler as a result.
291
- # Sinatra classically runs the entire application in an at_exit block and would
292
- # otherwise misbehave if the Agent's at_exit handler was also installed in
293
- # those circumstances. Note: send_data_on_exit should also be set to true in
294
- # tandem with this setting.
338
+ # Forces the exit handler that sends all cached data to collector before shutting
339
+ # down to be installed regardless of detecting scenarios where it generally should
340
+ # not be. Known use-case for this option is where Sinatra is running as an
341
+ # embedded service within another framework and the agent is detecting the Sinatra
342
+ # app and skipping the at_exit handler as a result. Sinatra classically runs the
343
+ # entire application in an at_exit block and would otherwise misbehave if the
344
+ # Agent's at_exit handler was also installed in those circumstances. Note:
345
+ # send_data_on_exit should also be set to true in tandem with this setting.
295
346
  # force_install_exit_handler: false
296
347
 
297
- # Ordinarily the agent reports dyno names with a trailing dot and process ID
298
- # (for example, worker.3). You can remove this trailing data by specifying the
299
- # prefixes you want to report without trailing data (for example, worker).
348
+ # Ordinarily the agent reports dyno names with a trailing dot and process ID (for
349
+ # example, worker.3). You can remove this trailing data by specifying the prefixes
350
+ # you want to report without trailing data (for example, worker).
300
351
  # heroku.dyno_name_prefixes_to_shorten: ["scheduler", "run"]
301
352
 
302
353
  # If true, the agent uses Heroku dyno names as the hostname.
303
354
  # heroku.use_dyno_names: true
304
355
 
305
- # If true, enables high security mode. Ensure that you understand the
306
- # implication of enabling high security mode before enabling this setting.
307
- # https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/high-security-mode/
356
+ # If true, enables high security mode. Ensure you understand the implications of
357
+ # high security mode before enabling this setting.
308
358
  # high_security: false
309
359
 
310
- # Configures the hostname for the Trace Observer Host. When configured, enables
311
- # tail-based sampling by sending all recorded spans to a Trace Observer for
360
+ # If true (the default), data sent to the trace observer is batched instead of
361
+ # sending each span individually.
362
+ # infinite_tracing.batching: true
363
+
364
+ # Configure the compression level for data sent to the trace observer.
365
+ # May be one of: :none, :low, :medium, :high.
366
+ # Set the level to :none to disable compression.
367
+ # infinite_tracing.compression_level: high
368
+
369
+ # Configures the hostname for the trace observer Host. When configured, enables
370
+ # tail-based sampling by sending all recorded spans to a trace observer for
312
371
  # further sampling decisions, irrespective of any usual agent sampling decision.
313
372
  # infinite_tracing.trace_observer.host: ""
314
373
 
315
- # Configures the TCP/IP port for the Trace Observer Host
374
+ # Configures the TCP/IP port for the trace observer Host
316
375
  # infinite_tracing.trace_observer.port: 443
317
376
 
318
- # Configure the compression level for data sent to the Trace Observer
319
- # May be one of [none|low|medium|high]
320
- # 'high' is the default. Set the level to 'none' to disable compression
321
- # infinite_tracing.compression_level: high
377
+ # Controls auto-instrumentation of ActiveSupport::BroadcastLogger at start up. May
378
+ # be one of: auto, prepend, chain, disabled. Used in Rails versions >= 7.1.
379
+ # instrumentation.active_support_broadcast_logger: auto
322
380
 
323
- # If true (the default), data sent to the Trace Observer will be batched
324
- # instead of each span being sent individually
325
- # infinite_tracing.batching: true
381
+ # Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one
382
+ # of: auto, prepend, chain, disabled. Used in Rails versions below 7.1.
383
+ # instrumentation.active_support_logger: auto
326
384
 
327
- # Controls auto-instrumentation of bunny at start up.
328
- # May be one of [auto|prepend|chain|disabled].
385
+ # Controls auto-instrumentation of Async::HTTP at start up. May be one of: auto,
386
+ # prepend, chain, disabled.
387
+ # instrumentation.async_http: auto
388
+
389
+ # Controls auto-instrumentation of bunny at start-up. May be one of: auto,
390
+ # prepend, chain, disabled.
329
391
  # instrumentation.bunny: auto
330
392
 
331
- # Controls auto-instrumentation of concurrent_ruby at start up.
332
- # May be one of [auto|prepend|chain|disabled]
393
+ # Controls auto-instrumentation of the concurrent-ruby library at start-up. May be
394
+ # one of: auto, prepend, chain, disabled.
333
395
  # instrumentation.concurrent_ruby: auto
334
396
 
335
- # Controls auto-instrumentation of Curb at start up.
336
- # May be one of [auto|prepend|chain|disabled].
397
+ # Controls auto-instrumentation of Curb at start-up. May be one of: auto, prepend,
398
+ # chain, disabled.
337
399
  # instrumentation.curb: auto
338
400
 
339
- # Controls auto-instrumentation of Delayed Job at start up.
340
- # May be one of [auto|prepend|chain|disabled].
401
+ # Controls auto-instrumentation of Delayed Job at start-up. May be one of: auto,
402
+ # prepend, chain, disabled.
341
403
  # instrumentation.delayed_job: auto
342
404
 
343
- # Controls auto-instrumentation of the elasticsearch library at start up.
344
- # May be one of [auto|prepend|chain|disabled].
405
+ # Controls auto-instrumentation of the elasticsearch library at start-up. May be
406
+ # one of: auto, prepend, chain, disabled.
345
407
  # instrumentation.elasticsearch: auto
346
408
 
347
- # Controls auto-instrumentation of Excon at start up.
348
- # May be one of [enabled|disabled].
349
- # instrumentation.excon: auto
409
+ # Controls auto-instrumentation of ethon at start up. May be one of
410
+ # [auto|prepend|chain|disabled]
411
+ # instrumentation.ethon: auto
412
+
413
+ # Controls auto-instrumentation of Excon at start-up. May be one of: enabled,
414
+ # disabled.
415
+ # instrumentation.excon: enabled
350
416
 
351
- # Controls auto-instrumentation of Grape at start up.
352
- # May be one of [auto|prepend|chain|disabled].
417
+ # Controls auto-instrumentation of the Fiber class at start-up. May be one of:
418
+ # auto, prepend, chain, disabled.
419
+ # instrumentation.fiber: auto
420
+
421
+ # Controls auto-instrumentation of Grape at start-up. May be one of: auto,
422
+ # prepend, chain, disabled.
353
423
  # instrumentation.grape: auto
354
424
 
355
- # Controls auto-instrumentation of HTTPClient at start up.
356
- # May be one of [auto|prepend|chain|disabled].
425
+ # Specifies a list of hostname patterns separated by commas that will match gRPC
426
+ # hostnames that traffic is to be ignored by New Relic for. New Relic's gRPC
427
+ # client instrumentation will ignore traffic streamed to a host matching any of
428
+ # these patterns, and New Relic's gRPC server instrumentation will ignore traffic
429
+ # for a server running on a host whose hostname matches any of these patterns. By
430
+ # default, no traffic is ignored when gRPC instrumentation is itself enabled. For
431
+ # example, "private.com$,exception.*"
432
+ # instrumentation.grpc.host_denylist: []
433
+
434
+ # Controls auto-instrumentation of gRPC clients at start-up. May be one of: auto,
435
+ # prepend, chain, disabled.
436
+ # instrumentation.grpc_client: auto
437
+
438
+ # Controls auto-instrumentation of gRPC servers at start-up. May be one of: auto,
439
+ # prepend, chain, disabled.
440
+ # instrumentation.grpc_server: auto
441
+
442
+ # Controls auto-instrumentation of HTTPClient at start-up. May be one of: auto,
443
+ # prepend, chain, disabled.
357
444
  # instrumentation.httpclient: auto
358
445
 
359
- # Controls auto-instrumentation of http.rb gem at start up.
360
- # May be one of [auto|prepend|chain|disabled].
446
+ # Controls auto-instrumentation of http.rb gem at start-up. May be one of: auto,
447
+ # prepend, chain, disabled.
361
448
  # instrumentation.httprb: auto
362
449
 
363
- # Controls auto-instrumentation of the Ruby standard library Logger.rb.
364
- # May be one of [auto|prepend|chain|disabled].
450
+ # Controls auto-instrumentation of httpx at start up. May be one of
451
+ # [auto|prepend|chain|disabled]
452
+ # instrumentation.httpx: auto
453
+
454
+ # Controls auto-instrumentation of Ruby standard library Logger at start-up. May
455
+ # be one of: auto, prepend, chain, disabled.
365
456
  # instrumentation.logger: auto
366
457
 
367
- # Controls auto-instrumentation of ActiveSupport::Logger at start up.
368
- # May be one of [auto|prepend|chain|disabled].
369
- # instrumentation.active_support.logger: auto
458
+ # Controls auto-instrumentation of dalli gem for Memcache at start-up. May be one
459
+ # of: auto, prepend, chain, disabled.
460
+ # instrumentation.memcache: auto
370
461
 
371
- # Controls auto-instrumentation of memcache-client gem for Memcache at start up.
372
- # May be one of [auto|prepend|chain|disabled].
462
+ # Controls auto-instrumentation of memcache-client gem for Memcache at start-up.
463
+ # May be one of: auto, prepend, chain, disabled.
373
464
  # instrumentation.memcache_client: auto
374
465
 
375
- # Controls auto-instrumentation of dalli gem for Memcache at start up.
376
- # May be one of [auto|prepend|chain|disabled].
377
- # instrumentation.memcache: auto
378
-
379
- # Controls auto-instrumentation of memcached gem for Memcache at start up.
380
- # May be one of [auto|prepend|chain|disabled].
466
+ # Controls auto-instrumentation of memcached gem for Memcache at start-up. May be
467
+ # one of: auto, prepend, chain, disabled.
381
468
  # instrumentation.memcached: auto
382
469
 
383
- # Controls auto-instrumentation of Mongo at start up.
384
- # May be one of [enabled|disabled].
385
- # instrumentation.mongo: auto
470
+ # Controls auto-instrumentation of Mongo at start-up. May be one of: enabled,
471
+ # disabled.
472
+ # instrumentation.mongo: enabled
386
473
 
387
- # Controls auto-instrumentation of Net::HTTP at start up.
388
- # May be one of [auto|prepend|chain|disabled].
474
+ # Controls auto-instrumentation of Net::HTTP at start-up. May be one of: auto,
475
+ # prepend, chain, disabled.
389
476
  # instrumentation.net_http: auto
390
477
 
391
- # Controls auto-instrumentation of Puma::Rack::URLMap at start up.
392
- # May be one of [auto|prepend|chain|disabled].
393
- # instrumentation.puma_rack_urlmap: auto
394
-
395
- # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks
396
- # into the to_app method in Puma::Rack::Builder to find gems to instrument
397
- # during application startup. May be one of [auto|prepend|chain|disabled].
478
+ # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into
479
+ # the to_app method in Puma::Rack::Builder to find gems to instrument during
480
+ # application startup. May be one of: auto, prepend, chain, disabled.
398
481
  # instrumentation.puma_rack: auto
399
482
 
400
- # Controls auto-instrumentation of Rack::URLMap at start up.
401
- # May be one of [auto|prepend|chain|disabled].
402
- # instrumentation.rack_urlmap: auto
483
+ # Controls auto-instrumentation of Puma::Rack::URLMap at start-up. May be one of:
484
+ # auto, prepend, chain, disabled.
485
+ # instrumentation.puma_rack_urlmap: auto
403
486
 
404
487
  # Controls auto-instrumentation of Rack. When enabled, the agent hooks into the
405
488
  # to_app method in Rack::Builder to find gems to instrument during application
406
- # startup. May be one of [auto|prepend|chain|disabled].
489
+ # startup. May be one of: auto, prepend, chain, disabled.
407
490
  # instrumentation.rack: auto
408
491
 
409
- # Controls auto-instrumentation of rake at start up.
410
- # May be one of [auto|prepend|chain|disabled].
492
+ # Controls auto-instrumentation of Rack::URLMap at start-up. May be one of: auto,
493
+ # prepend, chain, disabled.
494
+ # instrumentation.rack_urlmap: auto
495
+
496
+ # Controls auto-instrumentation of rake at start-up. May be one of: auto, prepend,
497
+ # chain, disabled.
411
498
  # instrumentation.rake: auto
412
499
 
413
- # Controls auto-instrumentation of Redis at start up.
414
- # May be one of [auto|prepend|chain|disabled].
500
+ # Controls auto-instrumentation of Redis at start-up. May be one of: auto,
501
+ # prepend, chain, disabled.
415
502
  # instrumentation.redis: auto
416
503
 
417
- # Controls auto-instrumentation of resque at start up.
418
- # May be one of [auto|prepend|chain|disabled].
504
+ # Controls auto-instrumentation of resque at start-up. May be one of: auto,
505
+ # prepend, chain, disabled.
419
506
  # instrumentation.resque: auto
420
507
 
421
- # Controls auto-instrumentation of Sinatra at start up.
422
- # May be one of [auto|prepend|chain|disabled].
423
- # instrumentation.sinatra: auto
508
+ # Controls auto-instrumentation of Roda at start-up. May be one of: auto, prepend,
509
+ # chain, disabled.
510
+ # instrumentation.roda: auto
424
511
 
425
- # Controls auto-instrumentation of Tilt at start up.
426
- # May be one of [auto|prepend|chain|disabled].
427
- # instrumentation.tilt: auto
512
+ # Controls auto-instrumentation of Sinatra at start-up. May be one of: auto,
513
+ # prepend, chain, disabled.
514
+ # instrumentation.sinatra: auto
428
515
 
429
- # Controls auto-instrumentation of Typhoeus at start up.
430
- # May be one of [auto|prepend|chain|disabled].
431
- # instrumentation.typhoeus: auto
516
+ # Controls auto-instrumentation of Stripe at startup. May be one of: enabled,
517
+ # disabled.
518
+ # instrumentation.stripe: enabled
432
519
 
433
- # Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction.
434
- # May be one of [auto|prepend|chain|disabled].
520
+ # Controls auto-instrumentation of the Thread class at start-up to allow the agent
521
+ # to correctly nest spans inside of an asynchronous transaction. This does not
522
+ # enable the agent to automatically trace all threads created (see
523
+ # instrumentation.thread.tracing). May be one of: auto, prepend, chain, disabled.
435
524
  # instrumentation.thread: auto
436
525
 
437
- # Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application.
438
- # instrumentation.thread.tracing: false
439
-
440
- # Controls auto-instrumentation of gRPC clients at start up.
441
- # May be one of [auto|prepend|chain|disabled].
442
- # instrumentation.grpc_client: auto
526
+ # Controls auto-instrumentation of the Thread class at start-up to automatically
527
+ # add tracing to all Threads created in the application.
528
+ # instrumentation.thread.tracing: true
443
529
 
444
- # Controls auto-instrumentation of gRPC servers at start up.
445
- # May be one of [auto|prepend|chain|disabled].
446
- # instrumentation.grpc_server: auto
530
+ # Controls auto-instrumentation of the Tilt template rendering library at
531
+ # start-up. May be one of: auto, prepend, chain, disabled.
532
+ # instrumentation.tilt: auto
447
533
 
448
- # Specifies a list of hostname patterns separated by commas that will match
449
- # gRPC hostnames that traffic is to be ignored by New Relic for.
450
- # New Relic's gRPC client instrumentation will ignore traffic streamed to a
451
- # host matching any of these patterns, and New Relic's gRPC server
452
- # instrumentation will ignore traffic for a server running on a host whose
453
- # hostname matches any of these patterns. By default, no traffic is ignored
454
- # when gRPC instrumentation is itself enabled.
455
- # For example, "private.com$,exception.*"
456
- # instrumentation.grpc.host_denylist: ""
534
+ # Controls auto-instrumentation of Typhoeus at start-up. May be one of: auto,
535
+ # prepend, chain, disabled.
536
+ # instrumentation.typhoeus: auto
457
537
 
458
538
  # A dictionary of label names and values that will be applied to the data sent
459
539
  # from this agent. May also be expressed as a semicolon-delimited ; string of
460
- # colon-separated : pairs.
461
- # For example,<var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var>.
540
+ # colon-separated : pairs. For example, Server:One;Data Center:Primary.
462
541
  # labels: ""
463
542
 
464
543
  # Defines a name for the log file.
465
- # log_file_name: "newrelic_agent.log"
544
+ # log_file_name: newrelic_agent.log
466
545
 
467
546
  # Defines a path to the agent log file, excluding the filename.
468
- # log_file_path: "log/"
547
+ # log_file_path: log/
469
548
 
470
549
  # Specifies a marshaller for transmitting data to the New Relic collector.
471
550
  # Currently json is the only valid value for this setting.
@@ -481,22 +560,15 @@ common: &default_settings
481
560
  # If true, the agent obfuscates Mongo queries in transaction traces.
482
561
  # mongo.obfuscate_queries: true
483
562
 
484
- # If true, the agent captures Elasticsearch queries in transaction traces.
485
- # elasticsearch.capture_queries: true
486
-
487
- # If true, the agent obfuscates Elasticsearch queries in transaction traces.
488
- # elasticsearch.obfuscate_queries: true
489
-
490
563
  # When true, the agent transmits data about your app to the New Relic collector.
491
564
  # monitor_mode: true
492
565
 
493
- # If true, uses Module#prepend rather than alias_method for Active Record
566
+ # If true, uses Module#prepend rather than alias_method for ActiveRecord
494
567
  # instrumentation.
495
568
  # prepend_active_record_instrumentation: false
496
569
 
497
- # Specify a custom host name for display in the New Relic UI
498
- # Be be aware that you cannot rename a hostname, so please rename
499
- # process_host.display_name: "default hostname"
570
+ # Specify a custom host name for display in the New Relic UI.
571
+ # process_host.display_name: default hostname
500
572
 
501
573
  # Defines a host for communicating with the New Relic collector via a proxy
502
574
  # server.
@@ -508,7 +580,7 @@ common: &default_settings
508
580
 
509
581
  # Defines a port for communicating with the New Relic collector via a proxy
510
582
  # server.
511
- # proxy_port: nil
583
+ # proxy_port: 8080
512
584
 
513
585
  # Defines a user for communicating with the New Relic collector via a proxy
514
586
  # server.
@@ -517,15 +589,16 @@ common: &default_settings
517
589
  # Timeout for waiting on connect to complete before a rake task
518
590
  # rake.connect_timeout: 10
519
591
 
520
- # Specify an array of Rake tasks to automatically instrument.
521
- # This configuration option converts the Array to a RegEx list.
522
- # If you'd like to allow all tasks by default, use `rake.tasks: [.+]`.
523
- # Rake tasks will not be instrumented unless they're added to this list.
524
- # For more information, visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].
592
+ # Specify an Array of Rake tasks to automatically instrument. This configuration
593
+ # option converts the Array to a RegEx list. If you'd like to allow all tasks by
594
+ # default, use rake.tasks: [.+]. No rake tasks will be instrumented unless they're
595
+ # added to this list. For more information, visit the New Relic Rake
596
+ # Instrumentation docs.
525
597
  # rake.tasks: []
526
598
 
527
599
  # Define transactions you want the agent to ignore, by specifying a list of
528
- # patterns matching the URI you want to ignore.
600
+ # patterns matching the URI you want to ignore. For more detail, see the docs on
601
+ # ignoring specific transactions.
529
602
  # rules.ignore_url_regexes: []
530
603
 
531
604
  # Applies Language Agent Security Policy settings.
@@ -535,33 +608,48 @@ common: &default_settings
535
608
  # before shutting down.
536
609
  # send_data_on_exit: true
537
610
 
611
+ # An array of strings that will collectively serve as a denylist for filtering
612
+ # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
613
+ # arguments, 'job.sidekiq.args.*' must be added to the separate
614
+ # :'attributes.include' configuration option. Each string in this array will be
615
+ # turned into a regular expression via Regexp.new to permit advanced matching. For
616
+ # job argument hashes, if either a key or value matches the pair will be excluded.
617
+ # All matching job argument array elements and job argument scalars will be
618
+ # excluded.
619
+ # sidekiq.args.exclude: []
620
+
621
+ # An array of strings that will collectively serve as an allowlist for filtering
622
+ # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
623
+ # arguments, 'job.sidekiq.args.*' must be added to the separate
624
+ # :'attributes.include' configuration option. Each string in this array will be
625
+ # turned into a regular expression via Regexp.new to permit advanced matching. For
626
+ # job argument hashes, if either a key or value matches the pair will be included.
627
+ # All matching job argument array elements and job argument scalars will be
628
+ # included.
629
+ # sidekiq.args.include: []
630
+
538
631
  # If true, the agent collects slow SQL queries.
539
- # slow_sql.enabled: false
632
+ # slow_sql.enabled: true
540
633
 
541
634
  # If true, the agent collects explain plans in slow SQL queries. If this setting
542
- # is omitted, the transaction_tracer.explain.enabled setting will be applied as
635
+ # is omitted, the transaction_tracer.explain_enabled setting will be applied as
543
636
  # the default setting for explain plans in slow SQL as well.
544
- # slow_sql.explain_enabled: false
637
+ # slow_sql.explain_enabled: true
545
638
 
546
- # Specify a threshold in seconds. The agent collects slow SQL queries and
547
- # explain plans that exceed this threshold.
548
- # slow_sql.explain_threshold: 1.0
639
+ # Specify a threshold in seconds. The agent collects slow SQL queries and explain
640
+ # plans that exceed this threshold.
641
+ # slow_sql.explain_threshold: 0.5
549
642
 
550
- # Defines an obfuscation level for slow SQL queries.
551
- # Valid options are obfuscated, raw, or none.
552
- # slow_sql.record_sql: none
643
+ # Defines an obfuscation level for slow SQL queries. Valid options are obfuscated,
644
+ # raw, or none.
645
+ # slow_sql.record_sql: obfuscated
553
646
 
554
- # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation
555
- # of similar queries.
647
+ # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of
648
+ # similar queries.
556
649
  # slow_sql.use_longer_sql_id: false
557
650
 
558
651
  # If true, the agent captures attributes on span events.
559
- # span_events_attributes.enabled: true
560
-
561
- # Defines the maximum number of span events reported from a single harvest.
562
- # This can be any integer between 1 and 10000. Increasing this value may impact
563
- # memory usage.
564
- # span_events.max_samples_stored: 2000
652
+ # span_events.attributes.enabled: true
565
653
 
566
654
  # Prefix of attributes to exclude from span events. Allows * as wildcard at end.
567
655
  # span_events.attributes.exclude: []
@@ -572,21 +660,44 @@ common: &default_settings
572
660
  # If true, enables span event sampling.
573
661
  # span_events.enabled: true
574
662
 
663
+ # Defines the maximum number of span events reported from a single harvest. Any
664
+ # Integer between 1 and 10000 is valid.
665
+ # span_events.max_samples_stored: 2000
666
+
575
667
  # Sets the maximum number of span events to buffer when streaming to the trace
576
668
  # observer.
577
669
  # span_events.queue_size: 10000
578
670
 
579
671
  # Specify a list of exceptions you do not want the agent to strip when
580
- # strip_exception_messages is true. Separate exceptions with a comma. For
581
- # example, "ImportantException,PreserveMessageException".
672
+ # strip_exception_messages is true. Separate exceptions with a comma. For example,
673
+ # "ImportantException,PreserveMessageException".
582
674
  # strip_exception_messages.allowed_classes: ""
583
675
 
584
676
  # If true, the agent strips messages from all exceptions except those in the
585
677
  # allowlist. Enabled automatically in high security mode.
586
- # strip_exception_messages.enabled: true
678
+ # strip_exception_messages.enabled: false
679
+
680
+ # An array of strings to specify which keys and/or values inside a Stripe event's
681
+ # user_data hash should
682
+ # not be reported to New Relic. Each string in this array will be turned into a
683
+ # regular expression via
684
+ # Regexp.new to permit advanced matching. For each hash pair, if either the key or
685
+ # value is matched the
686
+ # pair will not be reported. By default, no user_data is reported, so this option
687
+ # should only be used if
688
+ # the stripe.user_data.include option is being used.
689
+ # stripe.user_data.exclude: []
690
+
691
+ # An array of strings to specify which keys inside a Stripe event's user_data hash
692
+ # should be reported
693
+ # to New Relic. Each string in this array will be turned into a regular expression
694
+ # via Regexp.new to
695
+ # permit advanced matching. Setting the value to ["."] will report all user_data.
696
+ # stripe.user_data.include: []
587
697
 
588
698
  # When set to true, forces a synchronous connection to the New Relic collector
589
- # during application startup. For very short-lived processes, this helps ensure # the New Relic agent has time to report.
699
+ # during application startup. For very short-lived processes, this helps ensure
700
+ # the New Relic agent has time to report.
590
701
  # sync_startup: false
591
702
 
592
703
  # If true, enables use of the thread profiler.
@@ -597,50 +708,56 @@ common: &default_settings
597
708
  # timeout: 120
598
709
 
599
710
  # If true, the agent captures attributes from transaction events.
600
- # transaction_events_attributes.enabled: false
711
+ # transaction_events.attributes.enabled: true
601
712
 
602
- # Prefix of attributes to exclude from transaction events.
603
- # Allows * as wildcard at end.
713
+ # Prefix of attributes to exclude from transaction events. Allows * as wildcard at
714
+ # end.
604
715
  # transaction_events.attributes.exclude: []
605
716
 
606
- # Prefix of attributes to include in transaction events.
607
- # Allows * as wildcard at end.
717
+ # Prefix of attributes to include in transaction events. Allows * as wildcard at
718
+ # end.
608
719
  # transaction_events.attributes.include: []
609
720
 
721
+ # If true, enables transaction event sampling.
722
+ # transaction_events.enabled: true
723
+
724
+ # Defines the maximum number of transaction events reported from a single harvest.
725
+ # transaction_events.max_samples_stored: 1200
726
+
610
727
  # If true, the agent captures attributes on transaction segments.
611
- # transaction_segments_attributes.enabled: true
728
+ # transaction_segments.attributes.enabled: true
612
729
 
613
- # Prefix of attributes to exclude from transaction segments.
614
- # Allows * as wildcard at end.
730
+ # Prefix of attributes to exclude from transaction segments. Allows * as wildcard
731
+ # at end.
615
732
  # transaction_segments.attributes.exclude: []
616
733
 
617
- # Prefix of attributes to include on transaction segments.
618
- # Allows * as wildcard at end.
734
+ # Prefix of attributes to include on transaction segments. Allows * as wildcard at
735
+ # end.
619
736
  # transaction_segments.attributes.include: []
620
737
 
621
738
  # If true, the agent captures attributes from transaction traces.
622
- # transaction_tracer.attributes.enabled: false
739
+ # transaction_tracer.attributes.enabled: true
623
740
 
624
- # Prefix of attributes to exclude from transaction traces.
625
- # Allows * as wildcard at end.
741
+ # Prefix of attributes to exclude from transaction traces. Allows * as wildcard at
742
+ # end.
626
743
  # transaction_tracer.attributes.exclude: []
627
744
 
628
- # Prefix of attributes to include in transaction traces.
629
- # Allows * as wildcard at end.
745
+ # Prefix of attributes to include in transaction traces. Allows * as wildcard at
746
+ # end.
630
747
  # transaction_tracer.attributes.include: []
631
748
 
632
749
  # If true, enables collection of transaction traces.
633
750
  # transaction_tracer.enabled: true
634
751
 
752
+ # If true, enables the collection of explain plans in transaction traces. This
753
+ # setting will also apply to explain plans in slow SQL traces if
754
+ # slow_sql.explain_enabled is not set separately.
755
+ # transaction_tracer.explain_enabled: true
756
+
635
757
  # Threshold (in seconds) above which the agent will collect explain plans.
636
- # Relevant only when explain.enabled is true.
758
+ # Relevant only when explain_enabled is true.
637
759
  # transaction_tracer.explain_threshold: 0.5
638
760
 
639
- # If true, enables the collection of explain plans in transaction traces.
640
- # This setting will also apply to explain plans in slow SQL traces if
641
- # slow_sql.explain enabled is not set separately.
642
- # transaction_tracer.explain.enabled: true
643
-
644
761
  # Maximum number of transaction trace nodes to record in a single transaction
645
762
  # trace.
646
763
  # transaction_tracer.limit_segments: 4000
@@ -650,11 +767,12 @@ common: &default_settings
650
767
 
651
768
  # Obfuscation level for SQL queries reported in transaction trace nodes.
652
769
  # By default, this is set to obfuscated, which strips out the numeric and string
653
- # literals. If you do not want the agent to capture query information, set this
654
- # to 'none'. If you want the agent to capture all query information in its
655
- # original form, set this to 'raw'. When you enable high security mode this is
656
- # automatically set to 'obfuscated'
657
- # transaction_tracer.record_sql: 'obfuscated'
770
+ # literals.
771
+ # - If you do not want the agent to capture query information, set this to none.
772
+ # - If you want the agent to capture all query information in its original form,
773
+ # set this to raw.
774
+ # - When you enable high security mode, this is automatically set to obfuscated.
775
+ # transaction_tracer.record_sql: obfuscated
658
776
 
659
777
  # Specify a threshold in seconds. The agent includes stack traces in transaction
660
778
  # trace nodes when the stack trace duration exceeds this threshold.
@@ -683,7 +801,8 @@ common: &default_settings
683
801
  # If true, the agent automatically detects that it is running in Kubernetes.
684
802
  # utilization.detect_kubernetes: true
685
803
 
686
- # If true, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.
804
+ # If true, the agent automatically detects that it is running in a Pivotal Cloud
805
+ # Foundry environment.
687
806
  # utilization.detect_pcf: true
688
807
 
689
808
  # Environment-specific settings are in this section.