newrelic_rpm 6.15.0 → 9.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (485) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +26 -0
  3. data/CHANGELOG.md +4176 -2789
  4. data/CONTRIBUTING.md +32 -13
  5. data/Gemfile +1 -2
  6. data/LICENSE +0 -6
  7. data/README.md +29 -22
  8. data/Rakefile +33 -35
  9. data/THIRD_PARTY_NOTICES.md +14 -199
  10. data/Thorfile +5 -0
  11. data/bin/newrelic +4 -9
  12. data/bin/newrelic_rpm +15 -0
  13. data/bin/nrdebug +85 -62
  14. data/init.rb +6 -8
  15. data/install.rb +2 -2
  16. data/lib/new_relic/agent/adaptive_sampler.rb +13 -9
  17. data/lib/new_relic/agent/agent.rb +99 -941
  18. data/lib/new_relic/agent/agent_helpers/connect.rb +222 -0
  19. data/lib/new_relic/agent/agent_helpers/harvest.rb +153 -0
  20. data/lib/new_relic/agent/agent_helpers/shutdown.rb +72 -0
  21. data/lib/new_relic/agent/agent_helpers/special_startup.rb +74 -0
  22. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +175 -0
  23. data/lib/new_relic/agent/agent_helpers/startup.rb +202 -0
  24. data/lib/new_relic/agent/agent_helpers/transmit.rb +76 -0
  25. data/lib/new_relic/agent/agent_logger.rb +27 -23
  26. data/lib/new_relic/agent/attribute_filter.rb +67 -50
  27. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  28. data/lib/new_relic/agent/attribute_processing.rb +9 -9
  29. data/lib/new_relic/agent/attributes.rb +5 -4
  30. data/lib/new_relic/agent/audit_logger.rb +13 -8
  31. data/lib/new_relic/agent/autostart.rb +21 -20
  32. data/lib/new_relic/agent/chained_call.rb +1 -1
  33. data/lib/new_relic/agent/commands/agent_command.rb +4 -4
  34. data/lib/new_relic/agent/commands/agent_command_router.rb +15 -13
  35. data/lib/new_relic/agent/commands/thread_profiler_session.rb +16 -14
  36. data/lib/new_relic/agent/configuration/default_source.rb +1608 -1182
  37. data/lib/new_relic/agent/configuration/dotted_hash.rb +6 -5
  38. data/lib/new_relic/agent/configuration/environment_source.rb +13 -11
  39. data/lib/new_relic/agent/configuration/event_harvest_config.rb +40 -17
  40. data/lib/new_relic/agent/configuration/high_security_source.rb +11 -12
  41. data/lib/new_relic/agent/configuration/manager.rb +103 -75
  42. data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
  43. data/lib/new_relic/agent/configuration/mask_defaults.rb +3 -3
  44. data/lib/new_relic/agent/configuration/security_policy_source.rb +92 -95
  45. data/lib/new_relic/agent/configuration/server_source.rb +43 -41
  46. data/lib/new_relic/agent/configuration/yaml_source.rb +47 -10
  47. data/lib/new_relic/agent/configuration.rb +1 -1
  48. data/lib/new_relic/agent/connect/request_builder.rb +18 -18
  49. data/lib/new_relic/agent/connect/response_handler.rb +5 -8
  50. data/lib/new_relic/agent/custom_event_aggregator.rb +42 -16
  51. data/lib/new_relic/agent/database/explain_plan_helpers.rb +5 -6
  52. data/lib/new_relic/agent/database/obfuscation_helpers.rb +16 -15
  53. data/lib/new_relic/agent/database/obfuscator.rb +4 -4
  54. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +3 -3
  55. data/lib/new_relic/agent/database.rb +45 -53
  56. data/lib/new_relic/agent/database_adapter.rb +3 -1
  57. data/lib/new_relic/agent/datastores/metric_helper.rb +21 -22
  58. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +7 -6
  59. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +17 -21
  60. data/lib/new_relic/agent/datastores/mongo.rb +6 -11
  61. data/lib/new_relic/agent/datastores/nosql_obfuscator.rb +41 -0
  62. data/lib/new_relic/agent/datastores/redis.rb +9 -15
  63. data/lib/new_relic/agent/datastores.rb +13 -15
  64. data/lib/new_relic/agent/deprecator.rb +1 -1
  65. data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +10 -10
  66. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +45 -40
  67. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +22 -22
  68. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +23 -23
  69. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +52 -54
  70. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +10 -11
  71. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +82 -83
  72. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +42 -41
  73. data/lib/new_relic/agent/distributed_tracing.rb +33 -101
  74. data/lib/new_relic/agent/encoding_normalizer.rb +4 -2
  75. data/lib/new_relic/agent/error_collector.rb +105 -58
  76. data/lib/new_relic/agent/error_event_aggregator.rb +4 -5
  77. data/lib/new_relic/agent/error_filter.rb +174 -0
  78. data/lib/new_relic/agent/error_trace_aggregator.rb +9 -7
  79. data/lib/new_relic/agent/event_aggregator.rb +22 -21
  80. data/lib/new_relic/agent/event_buffer.rb +7 -8
  81. data/lib/new_relic/agent/event_listener.rb +1 -2
  82. data/lib/new_relic/agent/event_loop.rb +27 -25
  83. data/lib/new_relic/agent/external.rb +11 -44
  84. data/lib/new_relic/agent/guid_generator.rb +13 -11
  85. data/lib/new_relic/agent/harvester.rb +5 -8
  86. data/lib/new_relic/agent/heap.rb +8 -9
  87. data/lib/new_relic/agent/hostname.rb +21 -14
  88. data/lib/new_relic/agent/http_clients/abstract.rb +22 -31
  89. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +80 -0
  90. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +14 -17
  91. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +109 -0
  92. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +15 -17
  93. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +7 -6
  94. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +8 -9
  95. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +91 -0
  96. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +13 -8
  97. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +12 -13
  98. data/lib/new_relic/agent/http_clients/uri_util.rb +3 -5
  99. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +9 -22
  100. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +42 -0
  101. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +41 -33
  102. data/lib/new_relic/agent/instrumentation/action_dispatch.rb +31 -0
  103. data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +64 -0
  104. data/lib/new_relic/agent/instrumentation/action_mailbox.rb +30 -0
  105. data/lib/new_relic/agent/instrumentation/action_mailbox_subscriber.rb +33 -0
  106. data/lib/new_relic/agent/instrumentation/action_mailer.rb +30 -0
  107. data/lib/new_relic/agent/instrumentation/action_mailer_subscriber.rb +85 -0
  108. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +20 -21
  109. data/lib/new_relic/agent/instrumentation/active_job.rb +33 -13
  110. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +41 -0
  111. data/lib/new_relic/agent/instrumentation/active_merchant.rb +20 -6
  112. data/lib/new_relic/agent/instrumentation/active_record.rb +41 -38
  113. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +87 -75
  114. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +54 -66
  115. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +6 -6
  116. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +30 -22
  117. data/lib/new_relic/agent/instrumentation/active_storage.rb +7 -3
  118. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +8 -33
  119. data/lib/new_relic/agent/instrumentation/active_support.rb +27 -0
  120. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  121. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +13 -0
  122. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  123. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +23 -0
  124. data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +23 -0
  125. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +24 -0
  126. data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +12 -0
  127. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +26 -0
  128. data/lib/new_relic/agent/instrumentation/active_support_subscriber.rb +41 -0
  129. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  130. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  131. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  132. data/lib/new_relic/agent/instrumentation/async_http.rb +28 -0
  133. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +45 -0
  134. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +159 -0
  135. data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +35 -0
  136. data/lib/new_relic/agent/instrumentation/bunny.rb +11 -154
  137. data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +36 -0
  138. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +20 -0
  139. data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +27 -0
  140. data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +31 -0
  141. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +74 -63
  142. data/lib/new_relic/agent/instrumentation/curb/chain.rb +91 -0
  143. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +225 -0
  144. data/lib/new_relic/agent/instrumentation/curb/prepend.rb +61 -0
  145. data/lib/new_relic/agent/instrumentation/curb.rb +14 -246
  146. data/lib/new_relic/agent/instrumentation/custom_events.rb +12 -0
  147. data/lib/new_relic/agent/instrumentation/custom_events_subscriber.rb +38 -0
  148. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +36 -0
  149. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +51 -0
  150. data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +33 -0
  151. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +30 -53
  152. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +29 -0
  153. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +70 -0
  154. data/lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb +13 -0
  155. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +31 -0
  156. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  157. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  158. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  159. data/lib/new_relic/agent/instrumentation/ethon.rb +39 -0
  160. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +11 -7
  161. data/lib/new_relic/agent/instrumentation/excon.rb +27 -29
  162. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +27 -0
  163. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +20 -0
  164. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +25 -0
  165. data/lib/new_relic/agent/instrumentation/fiber.rb +25 -0
  166. data/lib/new_relic/agent/instrumentation/grape/chain.rb +24 -0
  167. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +104 -0
  168. data/lib/new_relic/agent/instrumentation/grape/prepend.rb +17 -0
  169. data/lib/new_relic/agent/instrumentation/grape.rb +16 -117
  170. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +97 -0
  171. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +94 -0
  172. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +111 -0
  173. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +30 -0
  174. data/lib/new_relic/agent/instrumentation/grpc/helper.rb +32 -0
  175. data/lib/new_relic/agent/instrumentation/grpc/server/chain.rb +69 -0
  176. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +138 -0
  177. data/lib/new_relic/agent/instrumentation/grpc/server/rpc_desc_prepend.rb +35 -0
  178. data/lib/new_relic/agent/instrumentation/grpc/server/rpc_server_prepend.rb +26 -0
  179. data/lib/new_relic/agent/instrumentation/grpc_client.rb +23 -0
  180. data/lib/new_relic/agent/instrumentation/grpc_server.rb +25 -0
  181. data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +24 -0
  182. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +41 -0
  183. data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +15 -0
  184. data/lib/new_relic/agent/instrumentation/httpclient.rb +10 -32
  185. data/lib/new_relic/agent/instrumentation/httprb/chain.rb +22 -0
  186. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +34 -0
  187. data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +15 -0
  188. data/lib/new_relic/agent/instrumentation/httprb.rb +29 -0
  189. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  190. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  191. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  192. data/lib/new_relic/agent/instrumentation/httpx.rb +27 -0
  193. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +5 -6
  194. data/lib/new_relic/agent/instrumentation/logger/chain.rb +21 -0
  195. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +69 -0
  196. data/lib/new_relic/agent/instrumentation/logger/prepend.rb +13 -0
  197. data/lib/new_relic/agent/instrumentation/logger.rb +26 -0
  198. data/lib/new_relic/agent/instrumentation/memcache/chain.rb +15 -0
  199. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +59 -128
  200. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +59 -0
  201. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +99 -0
  202. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +103 -0
  203. data/lib/new_relic/agent/instrumentation/memcache.rb +58 -74
  204. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +15 -14
  205. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +6 -8
  206. data/lib/new_relic/agent/instrumentation/mongo.rb +6 -137
  207. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +24 -23
  208. data/lib/new_relic/agent/instrumentation/net_http/chain.rb +24 -0
  209. data/lib/new_relic/agent/instrumentation/{net_prepend.rb → net_http/instrumentation.rb} +18 -14
  210. data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +21 -0
  211. data/lib/new_relic/agent/instrumentation/net_http.rb +44 -0
  212. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +56 -10
  213. data/lib/new_relic/agent/instrumentation/padrino/chain.rb +38 -0
  214. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +32 -0
  215. data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +20 -0
  216. data/lib/new_relic/agent/instrumentation/padrino.rb +20 -58
  217. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +6 -6
  218. data/lib/new_relic/agent/instrumentation/queue_time.rb +9 -10
  219. data/lib/new_relic/agent/instrumentation/rack/chain.rb +66 -0
  220. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +33 -0
  221. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +81 -0
  222. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +43 -0
  223. data/lib/new_relic/agent/instrumentation/rack.rb +32 -142
  224. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +25 -56
  225. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +4 -4
  226. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +9 -8
  227. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +18 -5
  228. data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +8 -5
  229. data/lib/new_relic/agent/instrumentation/rails_notifications/custom_events.rb +30 -0
  230. data/lib/new_relic/agent/instrumentation/rake/chain.rb +20 -0
  231. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +146 -0
  232. data/lib/new_relic/agent/instrumentation/rake/prepend.rb +14 -0
  233. data/lib/new_relic/agent/instrumentation/rake.rb +17 -158
  234. data/lib/new_relic/agent/instrumentation/redis/chain.rb +45 -0
  235. data/lib/new_relic/agent/instrumentation/redis/constants.rb +17 -0
  236. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +98 -0
  237. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +16 -0
  238. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +29 -0
  239. data/lib/new_relic/agent/instrumentation/redis.rb +19 -108
  240. data/lib/new_relic/agent/instrumentation/resque/chain.rb +21 -0
  241. data/lib/new_relic/agent/instrumentation/resque/helper.rb +19 -0
  242. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +38 -0
  243. data/lib/new_relic/agent/instrumentation/resque/prepend.rb +15 -0
  244. data/lib/new_relic/agent/instrumentation/resque.rb +32 -43
  245. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  246. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  247. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
  248. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  249. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
  250. data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
  251. data/lib/new_relic/agent/instrumentation/sequel.rb +16 -19
  252. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +12 -12
  253. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +24 -0
  254. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +30 -0
  255. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +60 -0
  256. data/lib/new_relic/agent/instrumentation/sidekiq.rb +27 -65
  257. data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +55 -0
  258. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +30 -36
  259. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +130 -0
  260. data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +33 -0
  261. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +4 -6
  262. data/lib/new_relic/agent/instrumentation/sinatra.rb +34 -163
  263. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  264. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +77 -0
  265. data/lib/new_relic/agent/instrumentation/thread/chain.rb +24 -0
  266. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +24 -0
  267. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +22 -0
  268. data/lib/new_relic/agent/instrumentation/thread.rb +20 -0
  269. data/lib/new_relic/agent/instrumentation/tilt/chain.rb +24 -0
  270. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +46 -0
  271. data/lib/new_relic/agent/instrumentation/tilt/prepend.rb +13 -0
  272. data/lib/new_relic/agent/instrumentation/tilt.rb +25 -0
  273. data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +22 -0
  274. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +84 -0
  275. data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +14 -0
  276. data/lib/new_relic/agent/instrumentation/typhoeus.rb +12 -91
  277. data/lib/new_relic/agent/instrumentation/view_component/chain.rb +21 -0
  278. data/lib/new_relic/agent/instrumentation/view_component/instrumentation.rb +39 -0
  279. data/lib/new_relic/agent/instrumentation/view_component/prepend.rb +13 -0
  280. data/lib/new_relic/agent/instrumentation/view_component.rb +26 -0
  281. data/lib/new_relic/agent/instrumentation.rb +1 -1
  282. data/lib/new_relic/agent/internal_agent_error.rb +2 -2
  283. data/lib/new_relic/agent/javascript_instrumentor.rb +58 -48
  284. data/lib/new_relic/agent/linking_metadata.rb +44 -0
  285. data/lib/new_relic/agent/local_log_decorator.rb +37 -0
  286. data/lib/new_relic/agent/log_event_aggregator.rb +282 -0
  287. data/lib/new_relic/agent/log_event_attributes.rb +115 -0
  288. data/lib/new_relic/agent/log_once.rb +1 -1
  289. data/lib/new_relic/agent/log_priority.rb +20 -0
  290. data/lib/new_relic/agent/logging.rb +95 -52
  291. data/lib/new_relic/agent/memory_logger.rb +2 -2
  292. data/lib/new_relic/agent/messaging.rb +72 -86
  293. data/lib/new_relic/agent/method_tracer.rb +159 -154
  294. data/lib/new_relic/agent/method_tracer_helpers.rb +109 -11
  295. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +26 -19
  296. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +5 -4
  297. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -2
  298. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +17 -9
  299. data/lib/new_relic/agent/monitors.rb +6 -7
  300. data/lib/new_relic/agent/new_relic_service/encoders.rb +9 -9
  301. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +6 -6
  302. data/lib/new_relic/agent/new_relic_service/marshaller.rb +2 -2
  303. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +4 -4
  304. data/lib/new_relic/agent/new_relic_service.rb +282 -213
  305. data/lib/new_relic/agent/{noticible_error.rb → noticeable_error.rb} +2 -5
  306. data/lib/new_relic/agent/null_logger.rb +7 -3
  307. data/lib/new_relic/agent/obfuscator.rb +7 -11
  308. data/lib/new_relic/agent/parameter_filtering.rb +29 -15
  309. data/lib/new_relic/agent/payload_metric_mapping.rb +9 -10
  310. data/lib/new_relic/agent/pipe_channel_manager.rb +34 -23
  311. data/lib/new_relic/agent/pipe_service.rb +13 -8
  312. data/lib/new_relic/agent/prepend_supportability.rb +2 -2
  313. data/lib/new_relic/agent/priority_sampled_buffer.rb +9 -12
  314. data/lib/new_relic/agent/rules_engine/replacement_rule.rb +11 -11
  315. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +12 -14
  316. data/lib/new_relic/agent/rules_engine.rb +6 -5
  317. data/lib/new_relic/agent/sampler.rb +5 -5
  318. data/lib/new_relic/agent/sampler_collection.rb +4 -5
  319. data/lib/new_relic/agent/samplers/cpu_sampler.rb +8 -7
  320. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +20 -17
  321. data/lib/new_relic/agent/samplers/memory_sampler.rb +32 -21
  322. data/lib/new_relic/agent/samplers/object_sampler.rb +2 -2
  323. data/lib/new_relic/agent/samplers/vm_sampler.rb +21 -19
  324. data/lib/new_relic/agent/span_event_aggregator.rb +15 -15
  325. data/lib/new_relic/agent/span_event_primitive.rb +77 -59
  326. data/lib/new_relic/agent/sql_sampler.rb +20 -21
  327. data/lib/new_relic/agent/stats.rb +79 -42
  328. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +9 -11
  329. data/lib/new_relic/agent/stats_engine/stats_hash.rb +12 -13
  330. data/lib/new_relic/agent/stats_engine.rb +8 -8
  331. data/lib/new_relic/agent/synthetics_event_aggregator.rb +8 -9
  332. data/lib/new_relic/agent/system_info.rb +113 -67
  333. data/lib/new_relic/agent/threading/agent_thread.rb +18 -14
  334. data/lib/new_relic/agent/threading/backtrace_node.rb +12 -13
  335. data/lib/new_relic/agent/threading/backtrace_service.rb +17 -21
  336. data/lib/new_relic/agent/threading/thread_profile.rb +24 -24
  337. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +2 -2
  338. data/lib/new_relic/agent/tracer.rb +101 -96
  339. data/lib/new_relic/agent/transaction/abstract_segment.rb +176 -52
  340. data/lib/new_relic/agent/transaction/datastore_segment.rb +22 -18
  341. data/lib/new_relic/agent/transaction/distributed_tracer.rb +65 -57
  342. data/lib/new_relic/agent/transaction/distributed_tracing.rb +46 -48
  343. data/lib/new_relic/agent/transaction/external_request_segment.rb +52 -39
  344. data/lib/new_relic/agent/transaction/message_broker_segment.rb +31 -37
  345. data/lib/new_relic/agent/transaction/request_attributes.rb +78 -42
  346. data/lib/new_relic/agent/transaction/segment.rb +20 -10
  347. data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -3
  348. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +2 -2
  349. data/lib/new_relic/agent/transaction/trace.rb +16 -12
  350. data/lib/new_relic/agent/transaction/trace_builder.rb +10 -10
  351. data/lib/new_relic/agent/transaction/trace_context.rb +35 -35
  352. data/lib/new_relic/agent/transaction/trace_node.rb +30 -28
  353. data/lib/new_relic/agent/transaction/tracing.rb +32 -13
  354. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +6 -6
  355. data/lib/new_relic/agent/transaction.rb +229 -178
  356. data/lib/new_relic/agent/transaction_error_primitive.rb +43 -25
  357. data/lib/new_relic/agent/transaction_event_aggregator.rb +16 -16
  358. data/lib/new_relic/agent/transaction_event_primitive.rb +51 -33
  359. data/lib/new_relic/agent/transaction_event_recorder.rb +16 -15
  360. data/lib/new_relic/agent/transaction_metrics.rb +10 -9
  361. data/lib/new_relic/agent/transaction_sampler.rb +7 -8
  362. data/lib/new_relic/agent/transaction_time_aggregator.rb +32 -27
  363. data/lib/new_relic/agent/utilization/aws.rb +34 -4
  364. data/lib/new_relic/agent/utilization/azure.rb +6 -6
  365. data/lib/new_relic/agent/utilization/gcp.rb +11 -13
  366. data/lib/new_relic/agent/utilization/pcf.rb +6 -5
  367. data/lib/new_relic/agent/utilization/vendor.rb +45 -32
  368. data/lib/new_relic/agent/utilization_data.rb +7 -5
  369. data/lib/new_relic/agent/vm/c_ruby_vm.rb +99 -0
  370. data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
  371. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +3 -3
  372. data/lib/new_relic/agent/vm/snapshot.rb +5 -5
  373. data/lib/new_relic/agent/vm.rb +3 -3
  374. data/lib/new_relic/agent/worker_loop.rb +10 -12
  375. data/lib/new_relic/agent.rb +204 -111
  376. data/lib/new_relic/base64.rb +25 -0
  377. data/lib/new_relic/cli/command.rb +26 -25
  378. data/lib/new_relic/cli/commands/deployments.rb +100 -49
  379. data/lib/new_relic/cli/commands/install.rb +31 -34
  380. data/lib/new_relic/coerce.rb +15 -13
  381. data/lib/new_relic/collection_helper.rb +50 -48
  382. data/lib/new_relic/constants.rb +13 -12
  383. data/lib/new_relic/control/class_methods.rb +6 -12
  384. data/lib/new_relic/control/frameworks/external.rb +2 -2
  385. data/lib/new_relic/control/frameworks/rails.rb +60 -30
  386. data/lib/new_relic/control/frameworks/rails3.rb +3 -4
  387. data/lib/new_relic/control/frameworks/rails4.rb +1 -1
  388. data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
  389. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  390. data/lib/new_relic/control/frameworks/ruby.rb +3 -3
  391. data/lib/new_relic/control/frameworks/sinatra.rb +7 -1
  392. data/lib/new_relic/control/frameworks.rb +1 -1
  393. data/lib/new_relic/control/instance_methods.rb +27 -45
  394. data/lib/new_relic/control/instrumentation.rb +25 -11
  395. data/lib/new_relic/control/private_instance_methods.rb +48 -0
  396. data/lib/new_relic/control/server_methods.rb +3 -4
  397. data/lib/new_relic/control.rb +1 -2
  398. data/lib/new_relic/delayed_job_injection.rb +1 -1
  399. data/lib/new_relic/dependency_detection.rb +141 -32
  400. data/lib/new_relic/environment_report.rb +41 -33
  401. data/lib/new_relic/helper.rb +49 -7
  402. data/lib/new_relic/language_support.rb +39 -6
  403. data/lib/new_relic/latest_changes.rb +10 -9
  404. data/lib/new_relic/local_environment.rb +42 -37
  405. data/lib/new_relic/metric_data.rb +31 -26
  406. data/lib/new_relic/metric_spec.rb +8 -6
  407. data/lib/new_relic/noticed_error.rb +43 -46
  408. data/lib/new_relic/rack/agent_hooks.rb +2 -2
  409. data/lib/new_relic/rack/agent_middleware.rb +3 -17
  410. data/lib/new_relic/rack/browser_monitoring.rb +135 -121
  411. data/lib/new_relic/rack.rb +1 -1
  412. data/lib/new_relic/recipes/capistrano3.rb +4 -62
  413. data/lib/new_relic/recipes/capistrano_legacy.rb +24 -27
  414. data/lib/new_relic/recipes/helpers/send_deployment.rb +70 -0
  415. data/lib/new_relic/recipes.rb +1 -1
  416. data/lib/new_relic/supportability_helper.rb +14 -12
  417. data/lib/new_relic/traced_thread.rb +38 -0
  418. data/lib/new_relic/version.rb +6 -17
  419. data/lib/newrelic_rpm.rb +20 -33
  420. data/lib/sequel/extensions/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +18 -21
  421. data/lib/sequel/plugins/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +9 -15
  422. data/lib/tasks/all.rb +3 -3
  423. data/lib/tasks/bump_version.rake +21 -0
  424. data/lib/tasks/config.rake +25 -119
  425. data/lib/tasks/coverage_report.rake +28 -0
  426. data/lib/tasks/helpers/config.html.erb +114 -0
  427. data/lib/tasks/helpers/format.rb +127 -0
  428. data/lib/tasks/helpers/matches.rb +12 -0
  429. data/lib/tasks/helpers/newrelicyml.rb +144 -0
  430. data/lib/tasks/helpers/prompt.rb +24 -0
  431. data/lib/tasks/helpers/version_bump.rb +62 -0
  432. data/lib/tasks/install.rake +8 -4
  433. data/lib/tasks/instrumentation_generator/README.md +63 -0
  434. data/lib/tasks/instrumentation_generator/TODO.md +33 -0
  435. data/lib/tasks/instrumentation_generator/instrumentation.thor +121 -0
  436. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +9 -0
  437. data/lib/tasks/instrumentation_generator/templates/chain.tt +21 -0
  438. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +7 -0
  439. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +29 -0
  440. data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +13 -0
  441. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +3 -0
  442. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +19 -0
  443. data/lib/tasks/instrumentation_generator/templates/prepend.tt +13 -0
  444. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +3 -0
  445. data/lib/tasks/instrumentation_generator/templates/test.tt +15 -0
  446. data/lib/tasks/newrelic.rb +2 -1
  447. data/lib/tasks/newrelicyml.rake +13 -0
  448. data/lib/tasks/tests.rake +83 -17
  449. data/newrelic.yml +790 -4
  450. data/newrelic_rpm.gemspec +52 -43
  451. data/recipes/newrelic.rb +2 -2
  452. data/test/agent_helper.rb +252 -198
  453. metadata +275 -95
  454. data/.gitignore +0 -37
  455. data/.project +0 -23
  456. data/.yardopts +0 -26
  457. data/Guardfile +0 -25
  458. data/ROADMAP.md +0 -24
  459. data/bin/mongrel_rpm +0 -33
  460. data/bin/newrelic_cmd +0 -5
  461. data/cert/cacert.pem +0 -1177
  462. data/config/database.yml +0 -5
  463. data/config.dot +0 -278
  464. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +0 -44
  465. data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +0 -53
  466. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -75
  467. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -25
  468. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -204
  469. data/lib/new_relic/agent/instrumentation/excon/connection.rb +0 -49
  470. data/lib/new_relic/agent/instrumentation/http.rb +0 -49
  471. data/lib/new_relic/agent/instrumentation/merb/controller.rb +0 -44
  472. data/lib/new_relic/agent/instrumentation/merb/errors.rb +0 -33
  473. data/lib/new_relic/agent/instrumentation/net.rb +0 -70
  474. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +0 -125
  475. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +0 -46
  476. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -26
  477. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -33
  478. data/lib/new_relic/agent/range_extensions.rb +0 -47
  479. data/lib/new_relic/agent/supported_versions.rb +0 -275
  480. data/lib/new_relic/agent/vm/mri_vm.rb +0 -81
  481. data/lib/new_relic/control/frameworks/merb.rb +0 -29
  482. data/lib/tasks/config.html.erb +0 -32
  483. data/lib/tasks/multiverse.rake +0 -2
  484. data/lib/tasks/multiverse.rb +0 -104
  485. /data/lib/tasks/{config.text.erb → helpers/config.text.erb} +0 -0
data/newrelic.yml CHANGED
@@ -1,8 +1,8 @@
1
1
  #
2
- # This file configures the New Relic Agent. New Relic monitors Ruby, Java,
2
+ # This file configures the New Relic agent. New Relic monitors Ruby, Java,
3
3
  # .NET, PHP, Python, Node, and Go applications with deep visibility and low
4
4
  # overhead. For more information, visit www.newrelic.com.
5
- #
5
+
6
6
  # Generated <%= Time.now.strftime('%B %d, %Y') %><%= ", for version #{@agent_version}" if @agent_version %>
7
7
  #<%= "\n# #{generated_for_user}\n#" if generated_for_user %>
8
8
  # For full documentation of agent configuration options, please refer to
@@ -13,15 +13,801 @@ common: &default_settings
13
13
  license_key: <%= license_key %>
14
14
 
15
15
  # Your application name. Renaming here affects where data displays in New
16
- # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
16
+ # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
17
17
  app_name: <%= app_name %>
18
18
 
19
19
  # To disable the agent regardless of other settings, uncomment the following:
20
20
  # agent_enabled: false
21
21
 
22
- # Logging level for log/newrelic_agent.log
22
+ # Logging level for log/newrelic_agent.log; options are error, warn, info, or
23
+ # debug.
23
24
  log_level: info
24
25
 
26
+ # All of the following configuration options are optional. Review them, and
27
+ # uncomment or edit them if they appear relevant to your application needs.
28
+
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.
44
+ # application_logging.enabled: true
45
+
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.
52
+ # application_logging.forwarding.enabled: true
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
+
71
+ # Defines the maximum number of log records to buffer in memory at a time.
72
+ # application_logging.forwarding.max_samples_stored: 10000
73
+
74
+ # If true, the agent decorates logs with metadata to link to entities, hosts,
75
+ # traces, and spans.
76
+ # application_logging.local_decorating.enabled: false
77
+
78
+ # If true, the agent captures metrics related to logging for your application.
79
+ # application_logging.metrics.enabled: true
80
+
81
+ # If true, enables capture of attributes for all destinations.
82
+ # attributes.enabled: true
83
+
84
+ # Prefix of attributes to exclude from all destinations. Allows * as wildcard at
85
+ # end.
86
+ # attributes.exclude: []
87
+
88
+ # Prefix of attributes to include in all destinations. Allows * as wildcard at
89
+ # end.
90
+ # attributes.include: []
91
+
92
+ # If true, enables an audit log which logs communications with the New Relic
93
+ # collector.
94
+ # audit_log.enabled: false
95
+
96
+ # List of allowed endpoints to include in audit log.
97
+ # audit_log.endpoints: [".*"]
98
+
99
+ # Specifies a path to the audit log file (including the filename).
100
+ # audit_log.path: log/newrelic_audit.log
101
+
102
+ # Specify a list of constants that should prevent the agent from starting
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
106
+
107
+ # Defines a comma-delimited list of executables that the agent should not
108
+ # instrument. For example, "rake,my_ruby_script.rb".
109
+ # autostart.denylisted_executables: irb,rspec
110
+
111
+ # Defines a comma-delimited list of Rake tasks that the agent should not
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
114
+
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.
118
+ # backport_fast_active_record_connection_lookup: false
119
+
120
+ # If true, the agent captures attributes from browser monitoring.
121
+ # browser_monitoring.attributes.enabled: false
122
+
123
+ # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard at
124
+ # end.
125
+ # browser_monitoring.attributes.exclude: []
126
+
127
+ # Prefix of attributes to include in browser monitoring. Allows * as wildcard at
128
+ # end.
129
+ # browser_monitoring.attributes.include: []
130
+
131
+ # If true, enables auto-injection of the JavaScript header for page load timing
132
+ # (sometimes referred to as real user monitoring or RUM).
133
+ # browser_monitoring.auto_instrument: true
134
+
135
+ # Manual override for the path to your local CA bundle. This CA bundle will be
136
+ # used to validate the SSL certificate presented by New Relic's data collection
137
+ # service.
138
+ # ca_bundle_path: nil
139
+
140
+ # Enable or disable the capture of memcache keys from transaction traces.
141
+ # capture_memcache_keys: false
142
+
143
+ # When true, the agent captures HTTP request parameters and attaches them to
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,
148
+ # see the Ruby attribute examples.
149
+ # capture_params: false
150
+
151
+ # If true, the agent will clear Tracer::State in Agent.drop_buffered_data.
152
+ # clear_transaction_state_after_fork: false
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
+
159
+ # Path to newrelic.yml. If undefined, the agent checks the following directories
160
+ # (in order):
161
+ # * config/newrelic.yml
162
+ # * newrelic.yml
163
+ # * $HOME/.newrelic/newrelic.yml
164
+ # * $HOME/newrelic.yml
165
+ # config_path: newrelic.yml
166
+
167
+ # If false, custom attributes will not be sent on events.
168
+ # custom_attributes.enabled: true
169
+
170
+ # If true, the agent captures custom events.
171
+ # custom_insights_events.enabled: true
172
+
173
+ # Specify a maximum number of custom events to buffer in memory at a time.
174
+ # custom_insights_events.max_samples_stored: 3000
175
+
176
+ # If false, the agent will not add database_name parameter to transaction or slow
177
+ # sql traces.
178
+ # datastore_tracer.database_name_reporting.enabled: true
179
+
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.
182
+ # datastore_tracer.instance_reporting.enabled: true
183
+
184
+ # If true, disables Action Cable instrumentation.
185
+ # disable_action_cable_instrumentation: false
186
+
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+
200
+ # disable_active_record_notifications: false
201
+
202
+ # If true, disables Active Storage instrumentation.
203
+ # disable_active_storage: false
204
+
205
+ # If true, disables Active Support instrumentation.
206
+ # disable_active_support: false
207
+
208
+ # If true, disables Active Job instrumentation.
209
+ # disable_activejob: false
210
+
211
+ # If true, the agent won't sample the CPU usage of the host process.
212
+ # disable_cpu_sampler: false
213
+
214
+ # If true, the agent won't measure the depth of Delayed Job queues.
215
+ # disable_delayed_job_sampler: false
216
+
217
+ # If true, disables the use of GC::Profiler to measure time spent in garbage
218
+ # collection
219
+ # disable_gc_profiler: false
220
+
221
+ # If true, the agent won't sample the memory usage of the host process.
222
+ # disable_memory_sampler: false
223
+
224
+ # If true, the agent won't wrap third-party middlewares in instrumentation
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.
229
+ # disable_middleware_instrumentation: false
230
+
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).
237
+ # disable_samplers: false
238
+
239
+ # If true, disables Sequel instrumentation.
240
+ # disable_sequel_instrumentation: false
241
+
242
+ # If true, disables Sidekiq instrumentation.
243
+ # disable_sidekiq: false
244
+
245
+ # If true, disables agent middleware for Sinatra. This middleware is responsible
246
+ # for advanced feature support such as cross application tracing, page load
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
+ # ``
260
+ # disable_sinatra_auto_middleware: false
261
+
262
+ # If true, disables view instrumentation.
263
+ # disable_view_instrumentation: false
264
+
265
+ # If true, the agent won't sample performance measurements from the Ruby VM.
266
+ # disable_vm_sampler: false
267
+
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.
272
+ # distributed_tracing.enabled: true
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
+
280
+ # If true, the agent captures attributes from error collection.
281
+ # error_collector.attributes.enabled: true
282
+
283
+ # Prefix of attributes to exclude from error collection. Allows * as wildcard at
284
+ # end.
285
+ # error_collector.attributes.exclude: []
286
+
287
+ # Prefix of attributes to include in error collection. Allows * as wildcard at
288
+ # end.
289
+ # error_collector.attributes.include: []
290
+
291
+ # If true, the agent collects TransactionError events.
292
+ # error_collector.capture_events: true
293
+
294
+ # If true, the agent captures traced errors and error count metrics.
295
+ # error_collector.enabled: true
296
+
297
+ # A list of error classes that the agent should treat as expected.
298
+ # This option can't be set via environment variable.
299
+ # error_collector.expected_classes: []
300
+
301
+ # A map of error classes to a list of messages. When an error of one of the
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.
305
+ # error_collector.expected_messages: {}
306
+
307
+ # A comma separated list of status codes, possibly including ranges. Errors
308
+ # associated with these status codes, where applicable, will be treated as
309
+ # expected.
310
+ # error_collector.expected_status_codes: ""
311
+
312
+ # A list of error classes that the agent should ignore.
313
+ # This option can't be set via environment variable.
314
+ # error_collector.ignore_classes: ["ActionController::RoutingError", "Sinatra::NotFound"]
315
+
316
+ # A map of error classes to a list of messages. When an error of one of the
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: {}
321
+
322
+ # A comma separated list of status codes, possibly including ranges. Errors
323
+ # associated with these status codes, where applicable, will be ignored.
324
+ # error_collector.ignore_status_codes: ""
325
+
326
+ # Defines the maximum number of frames in an error backtrace. Backtraces over this
327
+ # amount are truncated at the beginning and end.
328
+ # error_collector.max_backtrace_frames: 50
329
+
330
+ # Defines the maximum number of TransactionError events reported per harvest
331
+ # cycle.
332
+ # error_collector.max_event_samples_stored: 100
333
+
334
+ # Allows newrelic distributed tracing headers to be suppressed on outbound
335
+ # requests.
336
+ # exclude_newrelic_header: false
337
+
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.
346
+ # force_install_exit_handler: false
347
+
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).
351
+ # heroku.dyno_name_prefixes_to_shorten: ["scheduler", "run"]
352
+
353
+ # If true, the agent uses Heroku dyno names as the hostname.
354
+ # heroku.use_dyno_names: true
355
+
356
+ # If true, enables high security mode. Ensure you understand the implications of
357
+ # high security mode before enabling this setting.
358
+ # high_security: false
359
+
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
371
+ # further sampling decisions, irrespective of any usual agent sampling decision.
372
+ # infinite_tracing.trace_observer.host: ""
373
+
374
+ # Configures the TCP/IP port for the trace observer Host
375
+ # infinite_tracing.trace_observer.port: 443
376
+
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
380
+
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
384
+
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.
391
+ # instrumentation.bunny: auto
392
+
393
+ # Controls auto-instrumentation of the concurrent-ruby library at start-up. May be
394
+ # one of: auto, prepend, chain, disabled.
395
+ # instrumentation.concurrent_ruby: auto
396
+
397
+ # Controls auto-instrumentation of Curb at start-up. May be one of: auto, prepend,
398
+ # chain, disabled.
399
+ # instrumentation.curb: auto
400
+
401
+ # Controls auto-instrumentation of Delayed Job at start-up. May be one of: auto,
402
+ # prepend, chain, disabled.
403
+ # instrumentation.delayed_job: auto
404
+
405
+ # Controls auto-instrumentation of the elasticsearch library at start-up. May be
406
+ # one of: auto, prepend, chain, disabled.
407
+ # instrumentation.elasticsearch: auto
408
+
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
416
+
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.
423
+ # instrumentation.grape: auto
424
+
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.
444
+ # instrumentation.httpclient: auto
445
+
446
+ # Controls auto-instrumentation of http.rb gem at start-up. May be one of: auto,
447
+ # prepend, chain, disabled.
448
+ # instrumentation.httprb: auto
449
+
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.
456
+ # instrumentation.logger: auto
457
+
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
461
+
462
+ # Controls auto-instrumentation of memcache-client gem for Memcache at start-up.
463
+ # May be one of: auto, prepend, chain, disabled.
464
+ # instrumentation.memcache_client: auto
465
+
466
+ # Controls auto-instrumentation of memcached gem for Memcache at start-up. May be
467
+ # one of: auto, prepend, chain, disabled.
468
+ # instrumentation.memcached: auto
469
+
470
+ # Controls auto-instrumentation of Mongo at start-up. May be one of: enabled,
471
+ # disabled.
472
+ # instrumentation.mongo: enabled
473
+
474
+ # Controls auto-instrumentation of Net::HTTP at start-up. May be one of: auto,
475
+ # prepend, chain, disabled.
476
+ # instrumentation.net_http: auto
477
+
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.
481
+ # instrumentation.puma_rack: auto
482
+
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
486
+
487
+ # Controls auto-instrumentation of Rack. When enabled, the agent hooks into the
488
+ # to_app method in Rack::Builder to find gems to instrument during application
489
+ # startup. May be one of: auto, prepend, chain, disabled.
490
+ # instrumentation.rack: auto
491
+
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.
498
+ # instrumentation.rake: auto
499
+
500
+ # Controls auto-instrumentation of Redis at start-up. May be one of: auto,
501
+ # prepend, chain, disabled.
502
+ # instrumentation.redis: auto
503
+
504
+ # Controls auto-instrumentation of resque at start-up. May be one of: auto,
505
+ # prepend, chain, disabled.
506
+ # instrumentation.resque: auto
507
+
508
+ # Controls auto-instrumentation of Roda at start-up. May be one of: auto, prepend,
509
+ # chain, disabled.
510
+ # instrumentation.roda: auto
511
+
512
+ # Controls auto-instrumentation of Sinatra at start-up. May be one of: auto,
513
+ # prepend, chain, disabled.
514
+ # instrumentation.sinatra: auto
515
+
516
+ # Controls auto-instrumentation of Stripe at startup. May be one of: enabled,
517
+ # disabled.
518
+ # instrumentation.stripe: enabled
519
+
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.
524
+ # instrumentation.thread: auto
525
+
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
529
+
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
533
+
534
+ # Controls auto-instrumentation of Typhoeus at start-up. May be one of: auto,
535
+ # prepend, chain, disabled.
536
+ # instrumentation.typhoeus: auto
537
+
538
+ # Controls auto-instrumentation of ViewComponent at startup. May be one of: auto,
539
+ # prepend, chain, disabled.
540
+ # instrumentation.view_component: auto
541
+
542
+ # A dictionary of label names and values that will be applied to the data sent
543
+ # from this agent. May also be expressed as a semicolon-delimited ; string of
544
+ # colon-separated : pairs. For example, Server:One;Data Center:Primary.
545
+ # labels: ""
546
+
547
+ # Defines a name for the log file.
548
+ # log_file_name: newrelic_agent.log
549
+
550
+ # Defines a path to the agent log file, excluding the filename.
551
+ # log_file_path: log/
552
+
553
+ # Specifies a marshaller for transmitting data to the New Relic collector.
554
+ # Currently json is the only valid value for this setting.
555
+ # marshaller: json
556
+
557
+ # If true, the agent will collect metadata about messages and attach them as
558
+ # segment parameters.
559
+ # message_tracer.segment_parameters.enabled: true
560
+
561
+ # If true, the agent captures Mongo queries in transaction traces.
562
+ # mongo.capture_queries: true
563
+
564
+ # If true, the agent obfuscates Mongo queries in transaction traces.
565
+ # mongo.obfuscate_queries: true
566
+
567
+ # When true, the agent transmits data about your app to the New Relic collector.
568
+ # monitor_mode: true
569
+
570
+ # If true, uses Module#prepend rather than alias_method for ActiveRecord
571
+ # instrumentation.
572
+ # prepend_active_record_instrumentation: false
573
+
574
+ # Specify a custom host name for display in the New Relic UI.
575
+ # process_host.display_name: default hostname
576
+
577
+ # Defines a host for communicating with the New Relic collector via a proxy
578
+ # server.
579
+ # proxy_host: nil
580
+
581
+ # Defines a password for communicating with the New Relic collector via a proxy
582
+ # server.
583
+ # proxy_pass: nil
584
+
585
+ # Defines a port for communicating with the New Relic collector via a proxy
586
+ # server.
587
+ # proxy_port: 8080
588
+
589
+ # Defines a user for communicating with the New Relic collector via a proxy
590
+ # server.
591
+ # proxy_user: nil
592
+
593
+ # Timeout for waiting on connect to complete before a rake task
594
+ # rake.connect_timeout: 10
595
+
596
+ # Specify an Array of Rake tasks to automatically instrument. This configuration
597
+ # option converts the Array to a RegEx list. If you'd like to allow all tasks by
598
+ # default, use rake.tasks: [.+]. No rake tasks will be instrumented unless they're
599
+ # added to this list. For more information, visit the New Relic Rake
600
+ # Instrumentation docs.
601
+ # rake.tasks: []
602
+
603
+ # Define transactions you want the agent to ignore, by specifying a list of
604
+ # patterns matching the URI you want to ignore. For more detail, see the docs on
605
+ # ignoring specific transactions.
606
+ # rules.ignore_url_regexes: []
607
+
608
+ # Applies Language Agent Security Policy settings.
609
+ # security_policies_token: ""
610
+
611
+ # If true, enables the exit handler that sends data to the New Relic collector
612
+ # before shutting down.
613
+ # send_data_on_exit: true
614
+
615
+ # An array of strings that will collectively serve as a denylist for filtering
616
+ # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
617
+ # arguments, 'job.sidekiq.args.*' must be added to the separate
618
+ # :'attributes.include' configuration option. Each string in this array will be
619
+ # turned into a regular expression via Regexp.new to permit advanced matching. For
620
+ # job argument hashes, if either a key or value matches the pair will be excluded.
621
+ # All matching job argument array elements and job argument scalars will be
622
+ # excluded.
623
+ # sidekiq.args.exclude: []
624
+
625
+ # An array of strings that will collectively serve as an allowlist for filtering
626
+ # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
627
+ # arguments, 'job.sidekiq.args.*' must be added to the separate
628
+ # :'attributes.include' configuration option. Each string in this array will be
629
+ # turned into a regular expression via Regexp.new to permit advanced matching. For
630
+ # job argument hashes, if either a key or value matches the pair will be included.
631
+ # All matching job argument array elements and job argument scalars will be
632
+ # included.
633
+ # sidekiq.args.include: []
634
+
635
+ # If true, the agent collects slow SQL queries.
636
+ # slow_sql.enabled: true
637
+
638
+ # If true, the agent collects explain plans in slow SQL queries. If this setting
639
+ # is omitted, the transaction_tracer.explain_enabled setting will be applied as
640
+ # the default setting for explain plans in slow SQL as well.
641
+ # slow_sql.explain_enabled: true
642
+
643
+ # Specify a threshold in seconds. The agent collects slow SQL queries and explain
644
+ # plans that exceed this threshold.
645
+ # slow_sql.explain_threshold: 0.5
646
+
647
+ # Defines an obfuscation level for slow SQL queries. Valid options are obfuscated,
648
+ # raw, or none.
649
+ # slow_sql.record_sql: obfuscated
650
+
651
+ # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of
652
+ # similar queries.
653
+ # slow_sql.use_longer_sql_id: false
654
+
655
+ # If true, the agent captures attributes on span events.
656
+ # span_events.attributes.enabled: true
657
+
658
+ # Prefix of attributes to exclude from span events. Allows * as wildcard at end.
659
+ # span_events.attributes.exclude: []
660
+
661
+ # Prefix of attributes to include on span events. Allows * as wildcard at end.
662
+ # span_events.attributes.include: []
663
+
664
+ # If true, enables span event sampling.
665
+ # span_events.enabled: true
666
+
667
+ # Defines the maximum number of span events reported from a single harvest. Any
668
+ # Integer between 1 and 10000 is valid.
669
+ # span_events.max_samples_stored: 2000
670
+
671
+ # Sets the maximum number of span events to buffer when streaming to the trace
672
+ # observer.
673
+ # span_events.queue_size: 10000
674
+
675
+ # Specify a list of exceptions you do not want the agent to strip when
676
+ # strip_exception_messages is true. Separate exceptions with a comma. For example,
677
+ # "ImportantException,PreserveMessageException".
678
+ # strip_exception_messages.allowed_classes: ""
679
+
680
+ # If true, the agent strips messages from all exceptions except those in the
681
+ # allowlist. Enabled automatically in high security mode.
682
+ # strip_exception_messages.enabled: false
683
+
684
+ # An array of strings to specify which keys and/or values inside a Stripe event's
685
+ # user_data hash should
686
+ # not be reported to New Relic. Each string in this array will be turned into a
687
+ # regular expression via
688
+ # Regexp.new to permit advanced matching. For each hash pair, if either the key or
689
+ # value is matched the
690
+ # pair will not be reported. By default, no user_data is reported, so this option
691
+ # should only be used if
692
+ # the stripe.user_data.include option is being used.
693
+ # stripe.user_data.exclude: []
694
+
695
+ # An array of strings to specify which keys inside a Stripe event's user_data hash
696
+ # should be reported
697
+ # to New Relic. Each string in this array will be turned into a regular expression
698
+ # via Regexp.new to
699
+ # permit advanced matching. Setting the value to ["."] will report all user_data.
700
+ # stripe.user_data.include: []
701
+
702
+ # When set to true, forces a synchronous connection to the New Relic collector
703
+ # during application startup. For very short-lived processes, this helps ensure
704
+ # the New Relic agent has time to report.
705
+ # sync_startup: false
706
+
707
+ # If true, enables use of the thread profiler.
708
+ # thread_profiler.enabled: false
709
+
710
+ # Defines the maximum number of seconds the agent should spend attempting to
711
+ # connect to the collector.
712
+ # timeout: 120
713
+
714
+ # If true, the agent captures attributes from transaction events.
715
+ # transaction_events.attributes.enabled: true
716
+
717
+ # Prefix of attributes to exclude from transaction events. Allows * as wildcard at
718
+ # end.
719
+ # transaction_events.attributes.exclude: []
720
+
721
+ # Prefix of attributes to include in transaction events. Allows * as wildcard at
722
+ # end.
723
+ # transaction_events.attributes.include: []
724
+
725
+ # If true, enables transaction event sampling.
726
+ # transaction_events.enabled: true
727
+
728
+ # Defines the maximum number of transaction events reported from a single harvest.
729
+ # transaction_events.max_samples_stored: 1200
730
+
731
+ # If true, the agent captures attributes on transaction segments.
732
+ # transaction_segments.attributes.enabled: true
733
+
734
+ # Prefix of attributes to exclude from transaction segments. Allows * as wildcard
735
+ # at end.
736
+ # transaction_segments.attributes.exclude: []
737
+
738
+ # Prefix of attributes to include on transaction segments. Allows * as wildcard at
739
+ # end.
740
+ # transaction_segments.attributes.include: []
741
+
742
+ # If true, the agent captures attributes from transaction traces.
743
+ # transaction_tracer.attributes.enabled: true
744
+
745
+ # Prefix of attributes to exclude from transaction traces. Allows * as wildcard at
746
+ # end.
747
+ # transaction_tracer.attributes.exclude: []
748
+
749
+ # Prefix of attributes to include in transaction traces. Allows * as wildcard at
750
+ # end.
751
+ # transaction_tracer.attributes.include: []
752
+
753
+ # If true, enables collection of transaction traces.
754
+ # transaction_tracer.enabled: true
755
+
756
+ # If true, enables the collection of explain plans in transaction traces. This
757
+ # setting will also apply to explain plans in slow SQL traces if
758
+ # slow_sql.explain_enabled is not set separately.
759
+ # transaction_tracer.explain_enabled: true
760
+
761
+ # Threshold (in seconds) above which the agent will collect explain plans.
762
+ # Relevant only when explain_enabled is true.
763
+ # transaction_tracer.explain_threshold: 0.5
764
+
765
+ # Maximum number of transaction trace nodes to record in a single transaction
766
+ # trace.
767
+ # transaction_tracer.limit_segments: 4000
768
+
769
+ # If true, the agent records Redis command arguments in transaction traces.
770
+ # transaction_tracer.record_redis_arguments: false
771
+
772
+ # Obfuscation level for SQL queries reported in transaction trace nodes.
773
+ # By default, this is set to obfuscated, which strips out the numeric and string
774
+ # literals.
775
+ # - If you do not want the agent to capture query information, set this to none.
776
+ # - If you want the agent to capture all query information in its original form,
777
+ # set this to raw.
778
+ # - When you enable high security mode, this is automatically set to obfuscated.
779
+ # transaction_tracer.record_sql: obfuscated
780
+
781
+ # Specify a threshold in seconds. The agent includes stack traces in transaction
782
+ # trace nodes when the stack trace duration exceeds this threshold.
783
+ # transaction_tracer.stack_trace_threshold: 0.5
784
+
785
+ # Specify a threshold in seconds. Transactions with a duration longer than this
786
+ # threshold are eligible for transaction traces. Specify a float value or the
787
+ # string apdex_f.
788
+ # transaction_tracer.transaction_threshold: 1.0
789
+
790
+ # If true, the agent automatically detects that it is running in an AWS
791
+ # environment.
792
+ # utilization.detect_aws: true
793
+
794
+ # If true, the agent automatically detects that it is running in an Azure
795
+ # environment.
796
+ # utilization.detect_azure: true
797
+
798
+ # If true, the agent automatically detects that it is running in Docker.
799
+ # utilization.detect_docker: true
800
+
801
+ # If true, the agent automatically detects that it is running in an Google Cloud
802
+ # Platform environment.
803
+ # utilization.detect_gcp: true
804
+
805
+ # If true, the agent automatically detects that it is running in Kubernetes.
806
+ # utilization.detect_kubernetes: true
807
+
808
+ # If true, the agent automatically detects that it is running in a Pivotal Cloud
809
+ # Foundry environment.
810
+ # utilization.detect_pcf: true
25
811
 
26
812
  # Environment-specific settings are in this section.
27
813
  # RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.