newrelic_rpm 8.7.0 → 8.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (398) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.rubocop.yml +68 -189
  4. data/.rubocop_todo.yml +52 -0
  5. data/.simplecov +15 -0
  6. data/.snyk +11 -0
  7. data/.yardopts +1 -0
  8. data/Brewfile +1 -0
  9. data/CHANGELOG.md +181 -23
  10. data/CONTRIBUTING.md +1 -1
  11. data/Gemfile +0 -1
  12. data/Guardfile +1 -0
  13. data/README.md +1 -1
  14. data/Rakefile +13 -20
  15. data/Thorfile +5 -0
  16. data/bin/newrelic +2 -1
  17. data/bin/newrelic_cmd +1 -0
  18. data/bin/nrdebug +66 -45
  19. data/config.dot +5 -5
  20. data/init.rb +4 -4
  21. data/install.rb +2 -2
  22. data/lib/new_relic/agent/adaptive_sampler.rb +4 -4
  23. data/lib/new_relic/agent/agent/shutdown.rb +34 -0
  24. data/lib/new_relic/agent/agent/special_startup.rb +70 -0
  25. data/lib/new_relic/agent/agent/start_worker_thread.rb +163 -0
  26. data/lib/new_relic/agent/agent/startup.rb +196 -0
  27. data/lib/new_relic/agent/agent.rb +134 -534
  28. data/lib/new_relic/agent/agent_logger.rb +8 -10
  29. data/lib/new_relic/agent/attribute_filter.rb +40 -21
  30. data/lib/new_relic/agent/attribute_processing.rb +7 -7
  31. data/lib/new_relic/agent/attributes.rb +2 -2
  32. data/lib/new_relic/agent/audit_logger.rb +3 -3
  33. data/lib/new_relic/agent/autostart.rb +2 -2
  34. data/lib/new_relic/agent/chained_call.rb +1 -1
  35. data/lib/new_relic/agent/commands/agent_command.rb +1 -1
  36. data/lib/new_relic/agent/commands/agent_command_router.rb +8 -8
  37. data/lib/new_relic/agent/commands/thread_profiler_session.rb +1 -1
  38. data/lib/new_relic/agent/configuration/default_source.rb +105 -41
  39. data/lib/new_relic/agent/configuration/dotted_hash.rb +2 -2
  40. data/lib/new_relic/agent/configuration/environment_source.rb +5 -5
  41. data/lib/new_relic/agent/configuration/event_harvest_config.rb +1 -1
  42. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -1
  43. data/lib/new_relic/agent/configuration/manager.rb +5 -5
  44. data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
  45. data/lib/new_relic/agent/configuration/mask_defaults.rb +3 -3
  46. data/lib/new_relic/agent/configuration/security_policy_source.rb +7 -4
  47. data/lib/new_relic/agent/configuration/server_source.rb +7 -7
  48. data/lib/new_relic/agent/configuration/yaml_source.rb +6 -4
  49. data/lib/new_relic/agent/configuration.rb +1 -1
  50. data/lib/new_relic/agent/connect/request_builder.rb +3 -3
  51. data/lib/new_relic/agent/connect/response_handler.rb +5 -5
  52. data/lib/new_relic/agent/custom_event_aggregator.rb +5 -5
  53. data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
  54. data/lib/new_relic/agent/database/obfuscation_helpers.rb +1 -1
  55. data/lib/new_relic/agent/database/obfuscator.rb +2 -2
  56. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +1 -1
  57. data/lib/new_relic/agent/database.rb +21 -21
  58. data/lib/new_relic/agent/database_adapter.rb +1 -1
  59. data/lib/new_relic/agent/datastores/metric_helper.rb +12 -13
  60. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +4 -3
  61. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +2 -4
  62. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +2 -2
  63. data/lib/new_relic/agent/datastores/mongo.rb +1 -1
  64. data/lib/new_relic/agent/datastores/redis.rb +3 -3
  65. data/lib/new_relic/agent/datastores.rb +4 -4
  66. data/lib/new_relic/agent/deprecator.rb +1 -1
  67. data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +1 -1
  68. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +16 -17
  69. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +9 -10
  70. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +18 -19
  71. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +8 -10
  72. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +2 -3
  73. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +40 -40
  74. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +16 -15
  75. data/lib/new_relic/agent/distributed_tracing.rb +17 -18
  76. data/lib/new_relic/agent/encoding_normalizer.rb +1 -1
  77. data/lib/new_relic/agent/error_collector.rb +6 -5
  78. data/lib/new_relic/agent/error_event_aggregator.rb +3 -4
  79. data/lib/new_relic/agent/error_filter.rb +5 -5
  80. data/lib/new_relic/agent/error_trace_aggregator.rb +3 -3
  81. data/lib/new_relic/agent/event_aggregator.rb +20 -20
  82. data/lib/new_relic/agent/event_buffer.rb +1 -1
  83. data/lib/new_relic/agent/event_listener.rb +1 -1
  84. data/lib/new_relic/agent/event_loop.rb +9 -9
  85. data/lib/new_relic/agent/external.rb +10 -10
  86. data/lib/new_relic/agent/guid_generator.rb +2 -2
  87. data/lib/new_relic/agent/harvester.rb +1 -1
  88. data/lib/new_relic/agent/heap.rb +5 -5
  89. data/lib/new_relic/agent/hostname.rb +4 -3
  90. data/lib/new_relic/agent/http_clients/abstract.rb +1 -2
  91. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +5 -6
  92. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +4 -5
  93. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +2 -3
  94. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +1 -2
  95. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +0 -1
  96. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +1 -2
  97. data/lib/new_relic/agent/http_clients/uri_util.rb +1 -2
  98. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +6 -5
  99. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +31 -23
  100. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +7 -6
  101. data/lib/new_relic/agent/instrumentation/active_job.rb +11 -4
  102. data/lib/new_relic/agent/instrumentation/active_merchant.rb +4 -3
  103. data/lib/new_relic/agent/instrumentation/active_record.rb +9 -9
  104. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +37 -21
  105. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +3 -3
  106. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +1 -1
  107. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +21 -11
  108. data/lib/new_relic/agent/instrumentation/active_storage.rb +2 -2
  109. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +16 -15
  110. data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +1 -1
  111. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +1 -1
  112. data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +1 -1
  113. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +2 -2
  114. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +2 -2
  115. data/lib/new_relic/agent/instrumentation/authlogic.rb +2 -2
  116. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +10 -10
  117. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +10 -11
  118. data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +4 -4
  119. data/lib/new_relic/agent/instrumentation/bunny.rb +1 -2
  120. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +25 -17
  121. data/lib/new_relic/agent/instrumentation/curb/chain.rb +21 -22
  122. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +19 -16
  123. data/lib/new_relic/agent/instrumentation/curb/prepend.rb +2 -3
  124. data/lib/new_relic/agent/instrumentation/curb.rb +2 -2
  125. data/lib/new_relic/agent/instrumentation/data_mapper.rb +44 -44
  126. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -2
  127. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +2 -3
  128. data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +1 -2
  129. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +3 -3
  130. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -3
  131. data/lib/new_relic/agent/instrumentation/excon.rb +2 -2
  132. data/lib/new_relic/agent/instrumentation/grape/chain.rb +6 -6
  133. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +5 -5
  134. data/lib/new_relic/agent/instrumentation/grape/prepend.rb +4 -4
  135. data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
  136. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +97 -0
  137. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +89 -0
  138. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +111 -0
  139. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +30 -0
  140. data/lib/new_relic/agent/instrumentation/grpc/helper.rb +32 -0
  141. data/lib/new_relic/agent/instrumentation/grpc/server/chain.rb +69 -0
  142. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +134 -0
  143. data/lib/new_relic/agent/instrumentation/grpc/server/rpc_desc_prepend.rb +35 -0
  144. data/lib/new_relic/agent/instrumentation/grpc/server/rpc_server_prepend.rb +26 -0
  145. data/lib/new_relic/agent/instrumentation/grpc_client.rb +23 -0
  146. data/lib/new_relic/agent/instrumentation/grpc_server.rb +25 -0
  147. data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +1 -1
  148. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +6 -6
  149. data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +1 -1
  150. data/lib/new_relic/agent/instrumentation/httpclient.rb +2 -2
  151. data/lib/new_relic/agent/instrumentation/httprb/chain.rb +1 -1
  152. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -4
  153. data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +1 -1
  154. data/lib/new_relic/agent/instrumentation/httprb.rb +2 -2
  155. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +2 -2
  156. data/lib/new_relic/agent/instrumentation/logger/chain.rb +2 -2
  157. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +5 -1
  158. data/lib/new_relic/agent/instrumentation/logger/prepend.rb +1 -1
  159. data/lib/new_relic/agent/instrumentation/logger.rb +2 -2
  160. data/lib/new_relic/agent/instrumentation/memcache/chain.rb +2 -3
  161. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +24 -17
  162. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +8 -9
  163. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +17 -15
  164. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +21 -15
  165. data/lib/new_relic/agent/instrumentation/memcache.rb +5 -6
  166. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +2 -2
  167. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +0 -1
  168. data/lib/new_relic/agent/instrumentation/mongo.rb +2 -2
  169. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +15 -14
  170. data/lib/new_relic/agent/instrumentation/net_http/chain.rb +1 -1
  171. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +5 -5
  172. data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +1 -1
  173. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -2
  174. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +6 -6
  175. data/lib/new_relic/agent/instrumentation/padrino/chain.rb +1 -1
  176. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +1 -1
  177. data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +1 -1
  178. data/lib/new_relic/agent/instrumentation/padrino.rb +2 -2
  179. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +3 -3
  180. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -2
  181. data/lib/new_relic/agent/instrumentation/rack/chain.rb +12 -12
  182. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +1 -1
  183. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +7 -7
  184. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +4 -4
  185. data/lib/new_relic/agent/instrumentation/rack.rb +1 -1
  186. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +6 -6
  187. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  188. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +3 -2
  189. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +3 -2
  190. data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +3 -2
  191. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +3 -3
  192. data/lib/new_relic/agent/instrumentation/rake/chain.rb +2 -2
  193. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +6 -2
  194. data/lib/new_relic/agent/instrumentation/rake/prepend.rb +1 -1
  195. data/lib/new_relic/agent/instrumentation/rake.rb +3 -3
  196. data/lib/new_relic/agent/instrumentation/redis/chain.rb +3 -4
  197. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +5 -6
  198. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +3 -4
  199. data/lib/new_relic/agent/instrumentation/redis.rb +2 -2
  200. data/lib/new_relic/agent/instrumentation/resque/chain.rb +2 -2
  201. data/lib/new_relic/agent/instrumentation/resque/helper.rb +1 -1
  202. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +0 -1
  203. data/lib/new_relic/agent/instrumentation/resque/prepend.rb +1 -1
  204. data/lib/new_relic/agent/instrumentation/resque.rb +3 -3
  205. data/lib/new_relic/agent/instrumentation/sequel.rb +8 -8
  206. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +1 -1
  207. data/lib/new_relic/agent/instrumentation/sidekiq.rb +6 -5
  208. data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +1 -1
  209. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +2 -2
  210. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +1 -1
  211. data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +1 -1
  212. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +2 -2
  213. data/lib/new_relic/agent/instrumentation/sinatra.rb +2 -2
  214. data/lib/new_relic/agent/instrumentation/sunspot.rb +4 -4
  215. data/lib/new_relic/agent/instrumentation/thread/chain.rb +2 -2
  216. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +1 -1
  217. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +1 -1
  218. data/lib/new_relic/agent/instrumentation/thread.rb +2 -2
  219. data/lib/new_relic/agent/instrumentation/tilt/chain.rb +1 -1
  220. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +1 -1
  221. data/lib/new_relic/agent/instrumentation/tilt/prepend.rb +1 -1
  222. data/lib/new_relic/agent/instrumentation/tilt.rb +1 -1
  223. data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +1 -1
  224. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +8 -8
  225. data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +1 -1
  226. data/lib/new_relic/agent/instrumentation/typhoeus.rb +2 -2
  227. data/lib/new_relic/agent/instrumentation.rb +1 -1
  228. data/lib/new_relic/agent/internal_agent_error.rb +1 -1
  229. data/lib/new_relic/agent/javascript_instrumentor.rb +8 -8
  230. data/lib/new_relic/agent/linking_metadata.rb +2 -3
  231. data/lib/new_relic/agent/local_log_decorator.rb +0 -1
  232. data/lib/new_relic/agent/log_event_aggregator.rb +7 -7
  233. data/lib/new_relic/agent/log_once.rb +1 -1
  234. data/lib/new_relic/agent/log_priority.rb +1 -1
  235. data/lib/new_relic/agent/logging.rb +13 -13
  236. data/lib/new_relic/agent/memory_logger.rb +1 -1
  237. data/lib/new_relic/agent/messaging.rb +19 -20
  238. data/lib/new_relic/agent/method_tracer.rb +15 -10
  239. data/lib/new_relic/agent/method_tracer_helpers.rb +83 -1
  240. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +4 -4
  241. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +3 -3
  242. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
  243. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +2 -2
  244. data/lib/new_relic/agent/monitors.rb +5 -5
  245. data/lib/new_relic/agent/new_relic_service/encoders.rb +2 -2
  246. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +4 -4
  247. data/lib/new_relic/agent/new_relic_service/marshaller.rb +1 -1
  248. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +1 -1
  249. data/lib/new_relic/agent/new_relic_service.rb +214 -166
  250. data/lib/new_relic/agent/{noticible_error.rb → noticeable_error.rb} +2 -3
  251. data/lib/new_relic/agent/null_logger.rb +1 -1
  252. data/lib/new_relic/agent/obfuscator.rb +3 -3
  253. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  254. data/lib/new_relic/agent/payload_metric_mapping.rb +1 -1
  255. data/lib/new_relic/agent/pipe_channel_manager.rb +10 -5
  256. data/lib/new_relic/agent/pipe_service.rb +2 -2
  257. data/lib/new_relic/agent/prepend_supportability.rb +2 -2
  258. data/lib/new_relic/agent/priority_sampled_buffer.rb +4 -4
  259. data/lib/new_relic/agent/range_extensions.rb +8 -28
  260. data/lib/new_relic/agent/rules_engine/replacement_rule.rb +2 -2
  261. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -1
  262. data/lib/new_relic/agent/rules_engine.rb +2 -2
  263. data/lib/new_relic/agent/sampler.rb +1 -1
  264. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  265. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  266. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +2 -2
  267. data/lib/new_relic/agent/samplers/memory_sampler.rb +10 -10
  268. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  269. data/lib/new_relic/agent/samplers/vm_sampler.rb +3 -1
  270. data/lib/new_relic/agent/span_event_aggregator.rb +2 -2
  271. data/lib/new_relic/agent/span_event_primitive.rb +24 -19
  272. data/lib/new_relic/agent/sql_sampler.rb +8 -8
  273. data/lib/new_relic/agent/stats.rb +15 -4
  274. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +1 -2
  275. data/lib/new_relic/agent/stats_engine/stats_hash.rb +4 -4
  276. data/lib/new_relic/agent/stats_engine.rb +1 -1
  277. data/lib/new_relic/agent/synthetics_event_aggregator.rb +6 -6
  278. data/lib/new_relic/agent/system_info.rb +68 -53
  279. data/lib/new_relic/agent/threading/agent_thread.rb +13 -9
  280. data/lib/new_relic/agent/threading/backtrace_node.rb +6 -4
  281. data/lib/new_relic/agent/threading/backtrace_service.rb +1 -1
  282. data/lib/new_relic/agent/threading/thread_profile.rb +4 -4
  283. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  284. data/lib/new_relic/agent/tracer.rb +19 -17
  285. data/lib/new_relic/agent/transaction/abstract_segment.rb +93 -34
  286. data/lib/new_relic/agent/transaction/datastore_segment.rb +12 -12
  287. data/lib/new_relic/agent/transaction/distributed_tracer.rb +52 -48
  288. data/lib/new_relic/agent/transaction/distributed_tracing.rb +21 -22
  289. data/lib/new_relic/agent/transaction/external_request_segment.rb +37 -29
  290. data/lib/new_relic/agent/transaction/message_broker_segment.rb +6 -6
  291. data/lib/new_relic/agent/transaction/request_attributes.rb +29 -29
  292. data/lib/new_relic/agent/transaction/segment.rb +8 -8
  293. data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -1
  294. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  295. data/lib/new_relic/agent/transaction/trace.rb +3 -3
  296. data/lib/new_relic/agent/transaction/trace_builder.rb +10 -10
  297. data/lib/new_relic/agent/transaction/trace_context.rb +22 -20
  298. data/lib/new_relic/agent/transaction/trace_node.rb +9 -9
  299. data/lib/new_relic/agent/transaction/tracing.rb +7 -7
  300. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -2
  301. data/lib/new_relic/agent/transaction.rb +35 -31
  302. data/lib/new_relic/agent/transaction_error_primitive.rb +9 -9
  303. data/lib/new_relic/agent/transaction_event_aggregator.rb +5 -5
  304. data/lib/new_relic/agent/transaction_event_primitive.rb +3 -4
  305. data/lib/new_relic/agent/transaction_event_recorder.rb +15 -14
  306. data/lib/new_relic/agent/transaction_metrics.rb +4 -4
  307. data/lib/new_relic/agent/transaction_sampler.rb +5 -5
  308. data/lib/new_relic/agent/transaction_time_aggregator.rb +14 -14
  309. data/lib/new_relic/agent/utilization/aws.rb +4 -4
  310. data/lib/new_relic/agent/utilization/azure.rb +2 -2
  311. data/lib/new_relic/agent/utilization/gcp.rb +7 -7
  312. data/lib/new_relic/agent/utilization/pcf.rb +4 -4
  313. data/lib/new_relic/agent/utilization/vendor.rb +28 -28
  314. data/lib/new_relic/agent/utilization_data.rb +1 -1
  315. data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
  316. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  317. data/lib/new_relic/agent/vm/mri_vm.rb +36 -23
  318. data/lib/new_relic/agent/vm/snapshot.rb +2 -2
  319. data/lib/new_relic/agent/vm.rb +1 -1
  320. data/lib/new_relic/agent/worker_loop.rb +2 -2
  321. data/lib/new_relic/agent.rb +27 -27
  322. data/lib/new_relic/cli/command.rb +6 -6
  323. data/lib/new_relic/cli/commands/deployments.rb +81 -29
  324. data/lib/new_relic/cli/commands/install.rb +6 -6
  325. data/lib/new_relic/coerce.rb +5 -6
  326. data/lib/new_relic/collection_helper.rb +4 -4
  327. data/lib/new_relic/constants.rb +0 -1
  328. data/lib/new_relic/control/class_methods.rb +1 -1
  329. data/lib/new_relic/control/frameworks/external.rb +1 -1
  330. data/lib/new_relic/control/frameworks/rails.rb +3 -3
  331. data/lib/new_relic/control/frameworks/rails3.rb +1 -1
  332. data/lib/new_relic/control/frameworks/rails4.rb +1 -1
  333. data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
  334. data/lib/new_relic/control/frameworks/ruby.rb +1 -1
  335. data/lib/new_relic/control/frameworks/sinatra.rb +1 -1
  336. data/lib/new_relic/control/frameworks.rb +1 -1
  337. data/lib/new_relic/control/instance_methods.rb +20 -42
  338. data/lib/new_relic/control/instrumentation.rb +7 -7
  339. data/lib/new_relic/control/private_instance_methods.rb +48 -0
  340. data/lib/new_relic/control/server_methods.rb +2 -2
  341. data/lib/new_relic/control.rb +1 -1
  342. data/lib/new_relic/delayed_job_injection.rb +1 -1
  343. data/lib/new_relic/dependency_detection.rb +23 -22
  344. data/lib/new_relic/environment_report.rb +24 -14
  345. data/lib/new_relic/helper.rb +5 -5
  346. data/lib/new_relic/language_support.rb +8 -3
  347. data/lib/new_relic/latest_changes.rb +4 -4
  348. data/lib/new_relic/local_environment.rb +9 -11
  349. data/lib/new_relic/metric_data.rb +30 -24
  350. data/lib/new_relic/metric_spec.rb +3 -3
  351. data/lib/new_relic/noticed_error.rb +3 -6
  352. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  353. data/lib/new_relic/rack/agent_middleware.rb +1 -1
  354. data/lib/new_relic/rack/browser_monitoring.rb +132 -123
  355. data/lib/new_relic/rack.rb +1 -1
  356. data/lib/new_relic/recipes/capistrano3.rb +3 -59
  357. data/lib/new_relic/recipes/capistrano_legacy.rb +13 -13
  358. data/lib/new_relic/recipes/helpers/send_deployment.rb +69 -0
  359. data/lib/new_relic/recipes.rb +1 -1
  360. data/lib/new_relic/supportability_helper.rb +6 -6
  361. data/lib/new_relic/traced_thread.rb +5 -7
  362. data/lib/new_relic/version.rb +2 -2
  363. data/lib/newrelic_rpm.rb +1 -1
  364. data/lib/sequel/extensions/newrelic_instrumentation.rb +8 -8
  365. data/lib/sequel/plugins/newrelic_instrumentation.rb +1 -1
  366. data/lib/tasks/all.rb +1 -1
  367. data/lib/tasks/config.rake +8 -112
  368. data/lib/tasks/coverage_report.rake +28 -0
  369. data/lib/tasks/{config.html.erb → helpers/config.html.erb} +0 -0
  370. data/lib/tasks/{config.text.erb → helpers/config.text.erb} +0 -0
  371. data/lib/tasks/helpers/format.rb +120 -0
  372. data/lib/tasks/helpers/matches.rb +12 -0
  373. data/lib/tasks/helpers/prompt.rb +24 -0
  374. data/lib/tasks/helpers/removers.rb +33 -0
  375. data/lib/tasks/install.rake +4 -0
  376. data/lib/tasks/instrumentation_generator/README.md +63 -0
  377. data/lib/tasks/instrumentation_generator/TODO.md +33 -0
  378. data/lib/tasks/instrumentation_generator/instrumentation.thor +102 -0
  379. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +9 -0
  380. data/lib/tasks/instrumentation_generator/templates/chain.tt +21 -0
  381. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +7 -0
  382. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +29 -0
  383. data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +12 -0
  384. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +3 -0
  385. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +19 -0
  386. data/lib/tasks/instrumentation_generator/templates/prepend.tt +13 -0
  387. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +3 -0
  388. data/lib/tasks/instrumentation_generator/templates/test.tt +15 -0
  389. data/lib/tasks/multiverse.rake +4 -0
  390. data/lib/tasks/multiverse.rb +5 -30
  391. data/lib/tasks/newrelic.rb +1 -1
  392. data/lib/tasks/tests.rake +7 -8
  393. data/newrelic.yml +514 -483
  394. data/newrelic_rpm.gemspec +16 -21
  395. data/recipes/newrelic.rb +1 -1
  396. data/test/agent_helper.rb +125 -147
  397. metadata +82 -90
  398. data/bin/mongrel_rpm +0 -32
data/newrelic.yml CHANGED
@@ -23,609 +23,640 @@ common: &default_settings
23
23
  # debug.
24
24
  log_level: info
25
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.
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
28
 
29
- # If `true`, all logging-related features for the agent can be enabled or disabled
30
- # independently. If `false`, all logging-related features are disabled.
31
- # application_logging.enabled: true
29
+ # If `true`, all logging-related features for the agent can be enabled or disabled
30
+ # independently. If `false`, all logging-related features are disabled.
31
+ # application_logging.enabled: true
32
32
 
33
- # If `true`, the agent captures log records emitted by this application.
34
- # application_logging.forwarding.enabled: true
33
+ # If `true`, the agent captures log records emitted by this application.
34
+ # application_logging.forwarding.enabled: true
35
35
 
36
- # Defines the maximum number of log records to buffer in memory at a time.
37
- # application_logging.forwarding.max_samples_stored: 10000
36
+ # Defines the maximum number of log records to buffer in memory at a time.
37
+ # application_logging.forwarding.max_samples_stored: 10000
38
38
 
39
- # If `true`, the agent captures metrics related to logging for this application.
40
- # application_logging.metrics.enabled: true
39
+ # If `true`, the agent captures metrics related to logging for this application.
40
+ # application_logging.metrics.enabled: true
41
41
 
42
- # If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.
43
- # application_logging.local_decorating.enabled: false
42
+ # If `true`, the agent decorates logs with metadata to link to entities, hosts, traces, and spans.
43
+ # application_logging.local_decorating.enabled: false
44
44
 
45
- # If true, enables transaction event sampling.
46
- # transaction_events.enabled: true
45
+ # If `true`, the agent will report source code level metrics for traced methods
46
+ # see: https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/
47
+ # code_level_metrics.enabled: true
47
48
 
48
- # Defines the maximum number of request events reported from a single harvest.
49
- # transaction_events.max_samples_stored: 1200
49
+ # If true, enables transaction event sampling.
50
+ # transaction_events.enabled: true
50
51
 
51
- # Prefix of attributes to exclude from all destinations. Allows * as wildcard at
52
- # end.
53
- # attributes_exclude: []
52
+ # Defines the maximum number of request events reported from a single harvest.
53
+ # transaction_events.max_samples_stored: 1200
54
54
 
55
- # Prefix of attributes to include in all destinations. Allows * as wildcard at
56
- # end.
57
- # attributes_include: []
55
+ # Prefix of attributes to exclude from all destinations. Allows * as wildcard at
56
+ # end.
57
+ # attributes_exclude: []
58
58
 
59
- # If true, enables capture of attributes for all destinations.
60
- # attributes.enabled: true
59
+ # Prefix of attributes to include in all destinations. Allows * as wildcard at
60
+ # end.
61
+ # attributes_include: []
61
62
 
62
- # If true, enables an audit log which logs communications with the New Relic
63
- # collector.
64
- # audit_log.enabled: false
63
+ # If true, enables capture of attributes for all destinations.
64
+ # attributes.enabled: true
65
65
 
66
- # List of allowed endpoints to include in audit log.
67
- # audit_log.endpoints: [".*"]
66
+ # If true, enables an audit log which logs communications with the New Relic
67
+ # collector.
68
+ # audit_log.enabled: false
68
69
 
69
- # Specifies a path to the audit log file (including the filename).
70
- # audit_log.path: "/audit_log"
70
+ # List of allowed endpoints to include in audit log.
71
+ # audit_log.endpoints: [".*"]
71
72
 
72
- # Specify a list of constants that should prevent the agent from starting
73
- # automatically. Separate individual constants with a comma ,.
74
- # For example, Rails::Console,UninstrumentedBackgroundJob.
75
- # autostart.denylisted_constants: "rails::console"
73
+ # Specifies a path to the audit log file (including the filename).
74
+ # audit_log.path: "/audit_log"
76
75
 
77
- # Defines a comma-delimited list of executables that the agent should not
78
- # instrument. For example, rake,my_ruby_script.rb.
79
- # autostart.denylisted_executables: "irb,rspec"
76
+ # Specify a list of constants that should prevent the agent from starting
77
+ # automatically. Separate individual constants with a comma ,.
78
+ # For example, Rails::Console,UninstrumentedBackgroundJob.
79
+ # autostart.denylisted_constants: "rails::console"
80
80
 
81
- # Defines a comma-delimited list of Rake tasks that the agent should not
82
- # instrument. For example, assets:precompile,db:migrate.
83
- # 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"
81
+ # Defines a comma-delimited list of executables that the agent should not
82
+ # instrument. For example, rake,my_ruby_script.rb.
83
+ # autostart.denylisted_executables: "irb,rspec"
84
84
 
85
- # Backports the faster Active Record connection lookup introduced in Rails 6,
86
- # which improves agent performance when instrumenting Active Record. Note that
87
- # this setting may not be compatible with other gems that patch Active Record.
88
- # backport_fast_active_record_connection_lookup: false
85
+ # Defines a comma-delimited list of Rake tasks that the agent should not
86
+ # instrument. For example, assets:precompile,db:migrate.
87
+ # 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"
89
88
 
90
- # If true, the agent captures attributes from browser monitoring.
91
- # browser_monitoring_attributes.enabled: false
89
+ # Backports the faster Active Record connection lookup introduced in Rails 6,
90
+ # which improves agent performance when instrumenting Active Record. Note that
91
+ # this setting may not be compatible with other gems that patch Active Record.
92
+ # backport_fast_active_record_connection_lookup: false
92
93
 
93
- # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard
94
- # at end.
95
- # browser_monitoring.attributes.exclude: []
94
+ # If true, the agent captures attributes from browser monitoring.
95
+ # browser_monitoring.attributes.enabled: false
96
96
 
97
- # Prefix of attributes to include in browser monitoring. Allows * as wildcard at
98
- # end.
99
- # browser_monitoring.attributes.include: []
97
+ # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard
98
+ # at end.
99
+ # browser_monitoring.attributes.exclude: []
100
100
 
101
- # This is true by default, this enables auto-injection of the JavaScript header
102
- # for page load timing (sometimes referred to as real user monitoring or RUM).
103
- # browser_monitoring.auto_instrument: true
101
+ # Prefix of attributes to include in browser monitoring. Allows * as wildcard at
102
+ # end.
103
+ # browser_monitoring.attributes.include: []
104
104
 
105
- # Manual override for the path to your local CA bundle. This CA bundle will be
106
- # used to validate the SSL certificate presented by New Relic's data collection
107
- # service.
108
- # ca_bundle_path: nil
105
+ # This is true by default, this enables auto-injection of the JavaScript header
106
+ # for page load timing (sometimes referred to as real user monitoring or RUM).
107
+ # browser_monitoring.auto_instrument: true
109
108
 
110
- # Enable or disable the capture of memcache keys from transaction traces.
111
- # capture_memcache_keys: false
109
+ # Manual override for the path to your local CA bundle. This CA bundle will be
110
+ # used to validate the SSL certificate presented by New Relic's data collection
111
+ # service.
112
+ # ca_bundle_path: nil
112
113
 
113
- # When true, the agent captures HTTP request parameters and attaches them to
114
- # transaction traces, traced errors, and TransactionError events. When using the
115
- # capture_params setting, the Ruby agent will not attempt to filter secret
116
- # information. Recommendation: To filter secret information from request
117
- # parameters,use the attributes.include setting instead. For more information,
118
- # see the Ruby attribute examples.
119
- # capture_params: false
114
+ # Enable or disable the capture of memcache keys from transaction traces.
115
+ # capture_memcache_keys: false
120
116
 
121
- # If true, the agent will clear Tracer::State in Agent.drop_buffered_data.
122
- # clear_transaction_state_after_fork: false
117
+ # When true, the agent captures HTTP request parameters and attaches them to
118
+ # transaction traces, traced errors, and TransactionError events. When using the
119
+ # capture_params setting, the Ruby agent will not attempt to filter secret
120
+ # information. Recommendation: To filter secret information from request
121
+ # parameters,use the attributes.include setting instead. For more information,
122
+ # see the Ruby attribute examples.
123
+ # capture_params: false
123
124
 
124
- # Path to newrelic.yml. If undefined, the agent checks the following directories
125
- # (in order): config/newrelic.yml, newrelic.yml, $HOME/.newrelic/newrelic.yml
126
- # and $HOME/newrelic.yml.
127
- # config_path: newrelic.yml
125
+ # If true, the agent will clear Tracer::State in Agent.drop_buffered_data.
126
+ # clear_transaction_state_after_fork: false
128
127
 
129
- # If true, enables cross application tracing. Cross application tracing is now
130
- # deprecated, and disabled by default. Distributed tracing is replacing cross
131
- # application tracing as the default means of tracing between services.
132
- # To continue using it, set `cross_application_tracer.enabled: true` and
133
- # `distributed_tracing.enabled: false`
134
- # cross_application_tracer.enabled: false
128
+ # Path to newrelic.yml. If undefined, the agent checks the following directories
129
+ # (in order): config/newrelic.yml, newrelic.yml, $HOME/.newrelic/newrelic.yml
130
+ # and $HOME/newrelic.yml.
131
+ # config_path: newrelic.yml
135
132
 
136
- # If false, custom attributes will not be sent on New Relic Insights events.
137
- # custom_attributes.enabled: true
133
+ # If true, enables cross application tracing. Cross application tracing is now
134
+ # deprecated, and disabled by default. Distributed tracing is replacing cross
135
+ # application tracing as the default means of tracing between services.
136
+ # To continue using it, set `cross_application_tracer.enabled: true` and
137
+ # `distributed_tracing.enabled: false`
138
+ # cross_application_tracer.enabled: false
138
139
 
139
- # If true, the agent captures New Relic Insights custom events.
140
- # custom_insights_events.enabled: true
140
+ # If false, custom attributes will not be sent on New Relic Insights events.
141
+ # custom_attributes.enabled: true
141
142
 
142
- # Specify a maximum number of custom Insights events to buffer in memory at a
143
- # time.
144
- # custom_insights_events.max_samples_stored: 1000
143
+ # If true, the agent captures New Relic Insights custom events.
144
+ # custom_insights_events.enabled: true
145
145
 
146
- # If false, the agent will not add database_name parameter to transaction or #
147
- # slow sql traces.
148
- # datastore_tracer.database_name_reporting.enabled: true
146
+ # Specify a maximum number of custom Insights events to buffer in memory at a
147
+ # time.
148
+ # custom_insights_events.max_samples_stored: 1000
149
149
 
150
- # If false, the agent will not report datastore instance metrics, nor add host
151
- # or port_path_or_id parameters to transaction or slow SQL traces.
152
- # datastore_tracer.instance_reporting.enabled: true
150
+ # If false, the agent will not add database_name parameter to transaction or #
151
+ # slow sql traces.
152
+ # datastore_tracer.database_name_reporting.enabled: true
153
153
 
154
- # If true, disables Action Cable instrumentation.
155
- # disable_action_cable_instrumentation: false
154
+ # If false, the agent will not report datastore instance metrics, nor add host
155
+ # or port_path_or_id parameters to transaction or slow SQL traces.
156
+ # datastore_tracer.instance_reporting.enabled: true
156
157
 
157
- # If true, disables instrumentation for Active Record 4, 5, and 6.
158
- # disable_active_record_notifications: false
158
+ # If true, disables Action Cable instrumentation.
159
+ # disable_action_cable_instrumentation: false
159
160
 
160
- # If true, disables Active Storage instrumentation.
161
- # disable_active_storage: false
161
+ # If true, disables instrumentation for Active Record 4, 5, and 6.
162
+ # disable_active_record_notifications: false
162
163
 
163
- # If true, disables Active Job instrumentation.
164
- # disable_activejob: false
164
+ # If true, disables Active Storage instrumentation.
165
+ # disable_active_storage: false
165
166
 
166
- # If true, disables Active Record instrumentation.
167
- # disable_active_record_instrumentation: false
167
+ # If true, disables Active Job instrumentation.
168
+ # disable_activejob: false
168
169
 
169
- # If true, the agent won't sample the CPU usage of the host process.
170
- # disable_cpu_sampler: false
170
+ # If true, disables Active Record instrumentation.
171
+ # disable_active_record_instrumentation: false
171
172
 
172
- # If true, disables DataMapper instrumentation.
173
- # disable_data_mapper: false
173
+ # If true, the agent won't sample the CPU usage of the host process.
174
+ # disable_cpu_sampler: false
174
175
 
175
- # If true, the agent won't measure the depth of Delayed Job queues.
176
- # disable_delayed_job_sampler: false
176
+ # If true, disables DataMapper instrumentation.
177
+ # disable_data_mapper: false
177
178
 
178
- # If true, disables the use of GC::Profiler to measure time spent in garbage
179
- # collection
180
- # disable_gc_profiler: false
179
+ # If true, the agent won't measure the depth of Delayed Job queues.
180
+ # disable_delayed_job_sampler: false
181
181
 
182
- # If true, the agent won't sample the memory usage of the host process.
183
- # disable_memory_sampler: false
182
+ # If true, disables the use of GC::Profiler to measure time spent in garbage
183
+ # collection
184
+ # disable_gc_profiler: false
184
185
 
185
- # If true, the agent won't wrap third-party middlewares in instrumentation
186
- # (regardless of whether they are installed via Rack::Builder or Rails).
187
- # disable_middleware_instrumentation: false
186
+ # If true, the agent won't sample the memory usage of the host process.
187
+ # disable_memory_sampler: false
188
188
 
189
- # If true, disables the collection of sampler metrics. Sampler metrics are
190
- # metrics that are not event-based (such as CPU time or memory usage).
191
- # disable_samplers: false
189
+ # If true, the agent won't wrap third-party middlewares in instrumentation
190
+ # (regardless of whether they are installed via Rack::Builder or Rails).
191
+ # disable_middleware_instrumentation: false
192
192
 
193
- # If true, disables Sequel instrumentation.
194
- # disable_sequel_instrumentation: false
193
+ # If true, disables the collection of sampler metrics. Sampler metrics are
194
+ # metrics that are not event-based (such as CPU time or memory usage).
195
+ # disable_samplers: false
195
196
 
196
- # If true, disables Sidekiq instrumentation.
197
- # disable_sidekiq: false
197
+ # If true, disables Sequel instrumentation.
198
+ # disable_sequel_instrumentation: false
198
199
 
199
- # If true, disables agent middleware for Sinatra. This middleware is responsible
200
- # for advanced feature support such as distributed tracing, page load
201
- # timing, and error collection.
202
- # disable_sinatra_auto_middleware: false
200
+ # If true, disables Sidekiq instrumentation.
201
+ # disable_sidekiq: false
203
202
 
204
- # If true, disables view instrumentation.
205
- # disable_view_instrumentation: false
203
+ # If true, disables agent middleware for Sinatra. This middleware is responsible
204
+ # for advanced feature support such as distributed tracing, page load
205
+ # timing, and error collection.
206
+ # disable_sinatra_auto_middleware: false
206
207
 
207
- # If true, the agent won't sample performance measurements from the Ruby VM.
208
- # disable_vm_sampler: false
208
+ # If true, disables view instrumentation.
209
+ # disable_view_instrumentation: false
209
210
 
210
- # Distributed tracing tracks and observes service requests as they flow through distributed systems.
211
- # With distributed tracing data, you can quickly pinpoint failures or performance issues and fix them.
212
- # distributed_tracing.enabled: true
211
+ # If true, the agent won't sample performance measurements from the Ruby VM.
212
+ # disable_vm_sampler: false
213
213
 
214
- # If true, the agent captures attributes from error collection.
215
- # error_collector.attributes.enabled: false
214
+ # Distributed tracing tracks and observes service requests as they flow through distributed systems.
215
+ # With distributed tracing data, you can quickly pinpoint failures or performance issues and fix them.
216
+ # distributed_tracing.enabled: true
216
217
 
217
- # Prefix of attributes to exclude from error collection.
218
- # Allows * as wildcard at end.
219
- # error_collector.attributes.exclude: []
218
+ # If true, the agent captures attributes from error collection.
219
+ # error_collector.attributes.enabled: false
220
220
 
221
- # Prefix of attributes to include in error collection.
222
- # Allows * as wildcard at end.
223
- # error_collector.attributes.include: []
221
+ # Prefix of attributes to exclude from error collection.
222
+ # Allows * as wildcard at end.
223
+ # error_collector.attributes.exclude: []
224
224
 
225
- # If true, the agent collects TransactionError events.
226
- # error_collector.capture_events: true
225
+ # Prefix of attributes to include in error collection.
226
+ # Allows * as wildcard at end.
227
+ # error_collector.attributes.include: []
227
228
 
228
- # If true, the agent captures traced errors and error count metrics.
229
- # error_collector.enabled: true
229
+ # If true, the agent collects TransactionError events.
230
+ # error_collector.capture_events: true
230
231
 
231
- # A list of error classes that the agent should treat as expected.
232
- # error_collector.expected_classes: []
232
+ # If true, the agent captures traced errors and error count metrics.
233
+ # error_collector.enabled: true
233
234
 
234
- # A map of error classes to a list of messages. When an error of one of the
235
- # classes specified here occurs, if its error message contains one of the
236
- # strings corresponding to it here, that error will be treated as expected.
237
- # error_collector.expected_messages: {}
235
+ # A list of error classes that the agent should treat as expected.
236
+ # error_collector.expected_classes: []
238
237
 
239
- # A comma separated list of status codes, possibly including ranges. Errors
240
- # associated with these status codes, where applicable, will be treated as
241
- # expected.
242
- # error_collector.expected_status_codes: ""
238
+ # A map of error classes to a list of messages. When an error of one of the
239
+ # classes specified here occurs, if its error message contains one of the
240
+ # strings corresponding to it here, that error will be treated as expected.
241
+ # error_collector.expected_messages: {}
243
242
 
244
- # A list of error classes that the agent should ignore.
245
- # error_collector.ignore_classes: []
243
+ # A comma separated list of status codes, possibly including ranges. Errors
244
+ # associated with these status codes, where applicable, will be treated as
245
+ # expected.
246
+ # error_collector.expected_status_codes: ""
246
247
 
247
- # A map of error classes to a list of messages. When an error of one of the
248
- # classes specified here occurs, if its error message contains one of the
249
- # strings corresponding to it here, that error will be ignored.
250
- # error_collector.ignore_messages: ""
248
+ # A list of error classes that the agent should ignore.
249
+ # error_collector.ignore_classes: []
251
250
 
252
- # A comma separated list of status codes, possibly including ranges. Errors
253
- # associated with these status codes, where applicable, will be ignored.
254
- # error_collector.ignore_status_codes: ""
251
+ # A map of error classes to a list of messages. When an error of one of the
252
+ # classes specified here occurs, if its error message contains one of the
253
+ # strings corresponding to it here, that error will be ignored.
254
+ # error_collector.ignore_messages: ""
255
255
 
256
- # Defines the maximum number of frames in an error backtrace. Backtraces over
257
- # this amount are truncated at the beginning and end.
258
- # error_collector.max_backtrace_frames: 50
256
+ # A comma separated list of status codes, possibly including ranges. Errors
257
+ # associated with these status codes, where applicable, will be ignored.
258
+ # error_collector.ignore_status_codes: ""
259
259
 
260
- # Defines the maximum number of TransactionError events sent to Insights per
261
- # harvest cycle.
262
- # error_collector.max_event_samples_stored: 100
260
+ # Defines the maximum number of frames in an error backtrace. Backtraces over
261
+ # this amount are truncated at the beginning and end.
262
+ # error_collector.max_backtrace_frames: 50
263
263
 
264
- # Allows newrelic distributed tracing headers to be suppressed on outbound
265
- # requests.
266
- # exclude_newrelic_header: false
264
+ # Defines the maximum number of TransactionError events sent to Insights per
265
+ # harvest cycle.
266
+ # error_collector.max_event_samples_stored: 100
267
267
 
268
- # Forces the exit handler that sends all cached data to collector before
269
- # shutting down to be installed regardless of detecting scenarios where it
270
- # generally should bot be. Known use-case for this option is where Sinatra is
271
- # running as an embedded service within another framework and the agent is
272
- # detecting the Sinatra app and skipping the at_exit handler as a result.
273
- # Sinatra classically runs the entire application in an at_exit block and would
274
- # otherwise misbehave if the Agent's at_exit handler was also installed in
275
- # those circumstances. Note: send_data_on_exit should also be set to true in
276
- # tandem with this setting.
277
- # force_install_exit_handler: false
278
-
279
- # Ordinarily the agent reports dyno names with a trailing dot and process ID
280
- # (for example, worker.3). You can remove this trailing data by specifying the
281
- # prefixes you want to report without trailing data (for example, worker).
282
- # heroku.dyno_name_prefixes_to_shorten: ["scheduler", "run"]
283
-
284
- # If true, the agent uses Heroku dyno names as the hostname.
285
- # heroku.use_dyno_names: true
286
-
287
- # If true, enables high security mode. Ensure that you understand the
288
- # implication of enabling high security mode before enabling this setting.
289
- # https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/high-security-mode/
290
- # high_security: false
291
-
292
- # Configures the hostname for the Trace Observer Host. When configured, enables
293
- # tail-based sampling by sending all recorded spans to a Trace Observer for
294
- # further sampling decisions, irrespective of any usual agent sampling decision.
295
- # infinite_tracing.trace_observer.host: ""
296
-
297
- # Configures the TCP/IP port for the Trace Observer Host
298
- # infinite_tracing.trace_observer.port: 443
299
-
300
- # Controls auto-instrumentation of bunny at start up.
301
- # May be one of [auto|prepend|chain|disabled].
302
- # instrumentation.bunny: auto
303
-
304
- # Controls auto-instrumentation of Curb at start up.
305
- # May be one of [auto|prepend|chain|disabled].
306
- # instrumentation.curb: auto
307
-
308
- # Controls auto-instrumentation of Delayed Job at start up.
309
- # May be one of [auto|prepend|chain|disabled].
310
- # instrumentation.delayed_job: auto
311
-
312
- # Controls auto-instrumentation of Excon at start up.
313
- # May be one of [enabled|disabled].
314
- # instrumentation.excon: auto
315
-
316
- # Controls auto-instrumentation of Grape at start up.
317
- # May be one of [auto|prepend|chain|disabled].
318
- # instrumentation.grape: auto
319
-
320
- # Controls auto-instrumentation of HTTPClient at start up.
321
- # May be one of [auto|prepend|chain|disabled].
322
- # instrumentation.httpclient: auto
323
-
324
- # Controls auto-instrumentation of http.rb gem at start up.
325
- # May be one of [auto|prepend|chain|disabled].
326
- # instrumentation.httprb: auto
327
-
328
- # Controls auto-instrumentation of the Ruby standard library Logger.rb.
329
- # May be one of [auto|prepend|chain|disabled].
330
- # instrumentation.logger: auto
331
-
332
- # Controls auto-instrumentation of ActiveSupport::Logger at start up.
333
- # May be one of [auto|prepend|chain|disabled].
334
- # instrumentation.active_support.logger: auto
335
-
336
- # Controls auto-instrumentation of memcache-client gem for Memcache at start up.
337
- # May be one of [auto|prepend|chain|disabled].
338
- # instrumentation.memcache_client: auto
339
-
340
- # Controls auto-instrumentation of dalli gem for Memcache at start up.
341
- # May be one of [auto|prepend|chain|disabled].
342
- # instrumentation.memcache: auto
343
-
344
- # Controls auto-instrumentation of memcached gem for Memcache at start up.
345
- # May be one of [auto|prepend|chain|disabled].
346
- # instrumentation.memcached: auto
347
-
348
- # Controls auto-instrumentation of Mongo at start up.
349
- # May be one of [enabled|disabled].
350
- # instrumentation.mongo: auto
351
-
352
- # Controls auto-instrumentation of Net::HTTP at start up.
353
- # May be one of [auto|prepend|chain|disabled].
354
- # instrumentation.net_http: auto
355
-
356
- # Controls auto-instrumentation of Puma::Rack::URLMap at start up.
357
- # May be one of [auto|prepend|chain|disabled].
358
- # instrumentation.puma_rack_urlmap: auto
359
-
360
- # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks
361
- # into the to_app method in Puma::Rack::Builder to find gems to instrument
362
- # during application startup. May be one of [auto|prepend|chain|disabled].
363
- # instrumentation.puma_rack: auto
364
-
365
- # Controls auto-instrumentation of Rack::URLMap at start up.
366
- # May be one of [auto|prepend|chain|disabled].
367
- # instrumentation.rack_urlmap: auto
368
-
369
- # Controls auto-instrumentation of Rack. When enabled, the agent hooks into the
370
- # to_app method in Rack::Builder to find gems to instrument during application
371
- # startup. May be one of [auto|prepend|chain|disabled].
372
- # instrumentation.rack: auto
373
-
374
- # Controls auto-instrumentation of rake at start up.
375
- # May be one of [auto|prepend|chain|disabled].
376
- # instrumentation.rake: auto
268
+ # Allows newrelic distributed tracing headers to be suppressed on outbound
269
+ # requests.
270
+ # exclude_newrelic_header: false
377
271
 
378
- # Controls auto-instrumentation of Redis at start up.
379
- # May be one of [auto|prepend|chain|disabled].
380
- # instrumentation.redis: auto
272
+ # Forces the exit handler that sends all cached data to collector before
273
+ # shutting down to be installed regardless of detecting scenarios where it
274
+ # generally should bot be. Known use-case for this option is where Sinatra is
275
+ # running as an embedded service within another framework and the agent is
276
+ # detecting the Sinatra app and skipping the at_exit handler as a result.
277
+ # Sinatra classically runs the entire application in an at_exit block and would
278
+ # otherwise misbehave if the Agent's at_exit handler was also installed in
279
+ # those circumstances. Note: send_data_on_exit should also be set to true in
280
+ # tandem with this setting.
281
+ # force_install_exit_handler: false
282
+
283
+ # Ordinarily the agent reports dyno names with a trailing dot and process ID
284
+ # (for example, worker.3). You can remove this trailing data by specifying the
285
+ # prefixes you want to report without trailing data (for example, worker).
286
+ # heroku.dyno_name_prefixes_to_shorten: ["scheduler", "run"]
287
+
288
+ # If true, the agent uses Heroku dyno names as the hostname.
289
+ # heroku.use_dyno_names: true
290
+
291
+ # If true, enables high security mode. Ensure that you understand the
292
+ # implication of enabling high security mode before enabling this setting.
293
+ # https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/high-security-mode/
294
+ # high_security: false
295
+
296
+ # Configures the hostname for the Trace Observer Host. When configured, enables
297
+ # tail-based sampling by sending all recorded spans to a Trace Observer for
298
+ # further sampling decisions, irrespective of any usual agent sampling decision.
299
+ # infinite_tracing.trace_observer.host: ""
300
+
301
+ # Configures the TCP/IP port for the Trace Observer Host
302
+ # infinite_tracing.trace_observer.port: 443
303
+
304
+ # Configure the compression level for data sent to the Trace Observer
305
+ # May be one of [none|low|medium|high]
306
+ # By default, compression is not used (level = none)
307
+ # infinite_tracing.compression_level: none
308
+
309
+ # If true, data sent to the Trace Observer will be batched instead of
310
+ # the default of each span being sent individually
311
+ # infinite_tracing.batching: false
312
+
313
+ # Controls auto-instrumentation of bunny at start up.
314
+ # May be one of [auto|prepend|chain|disabled].
315
+ # instrumentation.bunny: auto
316
+
317
+ # Controls auto-instrumentation of Curb at start up.
318
+ # May be one of [auto|prepend|chain|disabled].
319
+ # instrumentation.curb: auto
320
+
321
+ # Controls auto-instrumentation of Delayed Job at start up.
322
+ # May be one of [auto|prepend|chain|disabled].
323
+ # instrumentation.delayed_job: auto
324
+
325
+ # Controls auto-instrumentation of Excon at start up.
326
+ # May be one of [enabled|disabled].
327
+ # instrumentation.excon: auto
328
+
329
+ # Controls auto-instrumentation of Grape at start up.
330
+ # May be one of [auto|prepend|chain|disabled].
331
+ # instrumentation.grape: auto
332
+
333
+ # Controls auto-instrumentation of HTTPClient at start up.
334
+ # May be one of [auto|prepend|chain|disabled].
335
+ # instrumentation.httpclient: auto
336
+
337
+ # Controls auto-instrumentation of http.rb gem at start up.
338
+ # May be one of [auto|prepend|chain|disabled].
339
+ # instrumentation.httprb: auto
340
+
341
+ # Controls auto-instrumentation of the Ruby standard library Logger.rb.
342
+ # May be one of [auto|prepend|chain|disabled].
343
+ # instrumentation.logger: auto
344
+
345
+ # Controls auto-instrumentation of ActiveSupport::Logger at start up.
346
+ # May be one of [auto|prepend|chain|disabled].
347
+ # instrumentation.active_support.logger: auto
348
+
349
+ # Controls auto-instrumentation of memcache-client gem for Memcache at start up.
350
+ # May be one of [auto|prepend|chain|disabled].
351
+ # instrumentation.memcache_client: auto
352
+
353
+ # Controls auto-instrumentation of dalli gem for Memcache at start up.
354
+ # May be one of [auto|prepend|chain|disabled].
355
+ # instrumentation.memcache: auto
356
+
357
+ # Controls auto-instrumentation of memcached gem for Memcache at start up.
358
+ # May be one of [auto|prepend|chain|disabled].
359
+ # instrumentation.memcached: auto
360
+
361
+ # Controls auto-instrumentation of Mongo at start up.
362
+ # May be one of [enabled|disabled].
363
+ # instrumentation.mongo: auto
364
+
365
+ # Controls auto-instrumentation of Net::HTTP at start up.
366
+ # May be one of [auto|prepend|chain|disabled].
367
+ # instrumentation.net_http: auto
368
+
369
+ # Controls auto-instrumentation of Puma::Rack::URLMap at start up.
370
+ # May be one of [auto|prepend|chain|disabled].
371
+ # instrumentation.puma_rack_urlmap: auto
372
+
373
+ # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks
374
+ # into the to_app method in Puma::Rack::Builder to find gems to instrument
375
+ # during application startup. May be one of [auto|prepend|chain|disabled].
376
+ # instrumentation.puma_rack: auto
377
+
378
+ # Controls auto-instrumentation of Rack::URLMap at start up.
379
+ # May be one of [auto|prepend|chain|disabled].
380
+ # instrumentation.rack_urlmap: auto
381
+
382
+ # Controls auto-instrumentation of Rack. When enabled, the agent hooks into the
383
+ # to_app method in Rack::Builder to find gems to instrument during application
384
+ # startup. May be one of [auto|prepend|chain|disabled].
385
+ # instrumentation.rack: auto
386
+
387
+ # Controls auto-instrumentation of rake at start up.
388
+ # May be one of [auto|prepend|chain|disabled].
389
+ # instrumentation.rake: auto
390
+
391
+ # Controls auto-instrumentation of Redis at start up.
392
+ # May be one of [auto|prepend|chain|disabled].
393
+ # instrumentation.redis: auto
394
+
395
+ # Controls auto-instrumentation of resque at start up.
396
+ # May be one of [auto|prepend|chain|disabled].
397
+ # instrumentation.resque: auto
398
+
399
+ # Controls auto-instrumentation of Sinatra at start up.
400
+ # May be one of [auto|prepend|chain|disabled].
401
+ # instrumentation.sinatra: auto
402
+
403
+ # Controls auto-instrumentation of Tilt at start up.
404
+ # May be one of [auto|prepend|chain|disabled].
405
+ # instrumentation.tilt: auto
406
+
407
+ # Controls auto-instrumentation of Typhoeus at start up.
408
+ # May be one of [auto|prepend|chain|disabled].
409
+ # instrumentation.typhoeus: auto
410
+
411
+ # Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asynchronous transaction.
412
+ # May be one of [auto|prepend|chain|disabled].
413
+ # instrumentation.thread: auto
414
+
415
+ # Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application.
416
+ # instrumentation.thread.tracing: false
417
+
418
+ # Controls auto-instrumentation of gRPC clients at start up.
419
+ # May be one of [auto|prepend|chain|disabled].
420
+ # instrumentation.grpc_client: auto
421
+
422
+ # Controls auto-instrumentation of gRPC servers at start up.
423
+ # May be one of [auto|prepend|chain|disabled].
424
+ # instrumentation.grpc_server: auto
425
+
426
+ # Specifies a list of hostname patterns separated by commas that will match
427
+ # gRPC hostnames that traffic is to be ignored by New Relic for.
428
+ # New Relic's gRPC client instrumentation will ignore traffic streamed to a
429
+ # host matching any of these patterns, and New Relic's gRPC server
430
+ # instrumentation will ignore traffic for a server running on a host whose
431
+ # hostname matches any of these patterns. By default, no traffic is ignored
432
+ # when gRPC instrumentation is itself enabled.
433
+ # For example, "private.com$,exception.*"
434
+ # instrumentation.grpc.host_denylist: ""
435
+
436
+ # A dictionary of label names and values that will be applied to the data sent
437
+ # from this agent. May also be expressed asa semicolon-delimited ; string of
438
+ # colon-separated : pairs.
439
+ # For example,<var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var>.
440
+ # labels: ""
441
+
442
+ # Defines a name for the log file.
443
+ # log_file_name: "newrelic_agent.log"
381
444
 
382
- # Controls auto-instrumentation of resque at start up.
383
- # May be one of [auto|prepend|chain|disabled].
384
- # instrumentation.resque: auto
445
+ # Defines a path to the agent log file, excluding the filename.
446
+ # log_file_path: "log/"
385
447
 
386
- # Controls auto-instrumentation of Sinatra at start up.
387
- # May be one of [auto|prepend|chain|disabled].
388
- # instrumentation.sinatra: auto
448
+ # Specifies a marshaller for transmitting data to the New Relic collector.
449
+ # Currently json is the only valid value for this setting.
450
+ # marshaller: json
389
451
 
390
- # Controls auto-instrumentation of Tilt at start up.
391
- # May be one of [auto|prepend|chain|disabled].
392
- # instrumentation.tilt: auto
452
+ # If true, the agent will collect metadata about messages and attach them as
453
+ # segment parameters.
454
+ # message_tracer.segment_parameters.enabled: true
393
455
 
394
- # Controls auto-instrumentation of Typhoeus at start up.
395
- # May be one of [auto|prepend|chain|disabled].
396
- # instrumentation.typhoeus: auto
456
+ # If true, the agent captures Mongo queries in transaction traces.
457
+ # mongo.capture_queries: true
458
+
459
+ # If true, the agent obfuscates Mongo queries in transaction traces.
460
+ # mongo.obfuscate_queries: true
461
+
462
+ # When true, the agent transmits data about your app to the New Relic collector.
463
+ # monitor_mode: true
397
464
 
398
- # Controls auto-instrumentation of the Thread class at start up to allow the agent to correctly nest spans inside of an asyncronous transaction.
399
- # May be one of [auto|prepend|chain|disabled].
400
- # instrumentation.thread: auto
465
+ # If true, uses Module#prepend rather than alias_method for Active Record
466
+ # instrumentation.
467
+ # prepend_active_record_instrumentation: false
401
468
 
402
- # Controls auto-instrumentation of the Thread class at start up to automatically add tracing to all Threads created in the application.
403
- # instrumentation.thread.tracing: false
469
+ # Specify a custom host name for display in the New Relic UI
470
+ # Be be aware that you cannot rename a hostname, so please rename
471
+ # process_host.display_name: "default hostname"
404
472
 
405
- # A dictionary of label names and values that will be applied to the data sent
406
- # from this agent. May also be expressed asa semicolon-delimited ; string of
407
- # colon-separated : pairs.
408
- # For example,<var>Server</var>:<var>One</var>;<var>Data Center</var>:<var>Primary</var>.
409
- # labels: ""
473
+ # Defines a host for communicating with the New Relic collector via a proxy
474
+ # server.
475
+ # proxy_host: nil
410
476
 
411
- # Defines a name for the log file.
412
- # log_file_name: "newrelic_agent.log"
477
+ # Defines a password for communicating with the New Relic collector via a proxy
478
+ # server.
479
+ # proxy_pass: nil
413
480
 
414
- # Defines a path to the agent log file, excluding the filename.
415
- # log_file_path: "log/"
481
+ # Defines a port for communicating with the New Relic collector via a proxy
482
+ # server.
483
+ # proxy_port: nil
416
484
 
417
- # Specifies a marshaller for transmitting data to the New Relic collector.
418
- # Currently json is the only valid value for this setting.
419
- # marshaller: json
485
+ # Defines a user for communicating with the New Relic collector via a proxy
486
+ # server.
487
+ # proxy_user: nil
420
488
 
421
- # If true, the agent will collect metadata about messages and attach them as
422
- # segment parameters.
423
- # message_tracer.segment_parameters.enabled: true
489
+ # Timeout for waiting on connect to complete before a rake task
490
+ # rake.connect_timeout: 10
424
491
 
425
- # If true, the agent captures Mongo queries in transaction traces.
426
- # mongo.capture_queries: true
492
+ # Specify an array of Rake tasks to automatically instrument.
493
+ # This configuration option converts the Array to a RegEx list.
494
+ # If you'd like to allow all tasks by default, use `rake.tasks: [.+]`.
495
+ # Rake tasks will not be instrumented unless they're added to this list.
496
+ # For more information, visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].
497
+ # rake.tasks: []
427
498
 
428
- # If true, the agent obfuscates Mongo queries in transaction traces.
429
- # mongo.obfuscate_queries: true
499
+ # Define transactions you want the agent to ignore, by specifying a list of
500
+ # patterns matching the URI you want to ignore.
501
+ # rules.ignore_url_regexes: []
430
502
 
431
- # When true, the agent transmits data about your app to the New Relic collector.
432
- # monitor_mode: true
503
+ # Applies Language Agent Security Policy settings.
504
+ # security_policies_token: ""
433
505
 
434
- # If true, uses Module#prepend rather than alias_method for Active Record
435
- # instrumentation.
436
- # prepend_active_record_instrumentation: false
506
+ # If true, enables the exit handler that sends data to the New Relic collector
507
+ # before shutting down.
508
+ # send_data_on_exit: true
437
509
 
438
- # Specify a custom host name for display in the New Relic UI
439
- # Be be aware that you cannot rename a hostname, so please rename
440
- # process_host.display_name: "default hostname"
510
+ # If true, the agent collects slow SQL queries.
511
+ # slow_sql.enabled: false
441
512
 
442
- # Defines a host for communicating with the New Relic collector via a proxy
443
- # server.
444
- # proxy_host: nil
513
+ # If true, the agent collects explain plans in slow SQL queries. If this setting
514
+ # is omitted, the transaction_tracer.explain.enabled setting will be applied as
515
+ # the default setting for explain plans in slow SQL as well.
516
+ # slow_sql.explain_enabled: false
445
517
 
446
- # Defines a password for communicating with the New Relic collector via a proxy
447
- # server.
448
- # proxy_pass: nil
518
+ # Specify a threshold in seconds. The agent collects slow SQL queries and
519
+ # explain plans that exceed this threshold.
520
+ # slow_sql.explain_threshold: 1.0
449
521
 
450
- # Defines a port for communicating with the New Relic collector via a proxy
451
- # server.
452
- # proxy_port: nil
522
+ # Defines an obfuscation level for slow SQL queries.
523
+ # Valid options are obfuscated, raw, or none.
524
+ # slow_sql.record_sql: none
453
525
 
454
- # Defines a user for communicating with the New Relic collector via a proxy
455
- # server.
456
- # proxy_user: nil
526
+ # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation
527
+ # of similar queries.
528
+ # slow_sql.use_longer_sql_id: false
457
529
 
458
- # Timeout for waiting on connect to complete before a rake task
459
- # rake.connect_timeout: 10
530
+ # If true, the agent captures attributes on span events.
531
+ # span_events_attributes.enabled: true
460
532
 
461
- # Specify an array of Rake tasks to automatically instrument.
462
- # This configuration option converts the Array to a RegEx list.
463
- # If you'd like to allow all tasks by default, use `rake.tasks: [.+]`.
464
- # Rake tasks will not be instrumented unless they're added to this list.
465
- # For more information, visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].
466
- # rake.tasks: []
533
+ # Defines the maximum number of span events reported from a single harvest.
534
+ # This can be any integer between 1 and 10000. Increasing this value may impact
535
+ # memory usage.
536
+ # span_events.max_samples_stored: 2000
467
537
 
468
- # Define transactions you want the agent to ignore, by specifying a list of
469
- # patterns matching the URI you want to ignore.
470
- # rules.ignore_url_regexes: []
538
+ # Prefix of attributes to exclude from span events. Allows * as wildcard at end.
539
+ # span_events.attributes.exclude: []
471
540
 
472
- # Applies Language Agent Security Policy settings.
473
- # security_policies_token: ""
541
+ # Prefix of attributes to include on span events. Allows * as wildcard at end.
542
+ # span_events.attributes.include: []
474
543
 
475
- # If true, enables the exit handler that sends data to the New Relic collector
476
- # before shutting down.
477
- # send_data_on_exit: true
544
+ # If true, enables span event sampling.
545
+ # span_events.enabled: true
478
546
 
479
- # If true, the agent collects slow SQL queries.
480
- # slow_sql.enabled: false
547
+ # Sets the maximum number of span events to buffer when streaming to the trace
548
+ # observer.
549
+ # span_events.queue_size: 10000
481
550
 
482
- # If true, the agent collects explain plans in slow SQL queries. If this setting
483
- # is omitted, the transaction_tracer.explain.enabled setting will be applied as
484
- # the default setting for explain plans in slow SQL as well.
485
- # slow_sql.explain_enabled: false
551
+ # Specify a list of exceptions you do not want the agent to strip when
552
+ # strip_exception_messages is true. Separate exceptions with a comma. For
553
+ # example, "ImportantException,PreserveMessageException".
554
+ # strip_exception_messages.allowed_classes: ""
486
555
 
487
- # Specify a threshold in seconds. The agent collects slow SQL queries and
488
- # explain plans that exceed this threshold.
489
- # slow_sql.explain_threshold: 1.0
556
+ # If true, the agent strips messages from all exceptions except those in the
557
+ # allowlist. Enabled automatically in high security mode.
558
+ # strip_exception_messages.enabled: true
490
559
 
491
- # Defines an obfuscation level for slow SQL queries.
492
- # Valid options are obfuscated, raw, or none.
493
- # slow_sql.record_sql: none
560
+ # When set to true, forces a synchronous connection to the New Relic collector
561
+ # during application startup. For very short-lived processes, this helps ensure # the New Relic agent has time to report.
562
+ # sync_startup: false
494
563
 
495
- # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation
496
- # of similar queries.
497
- # slow_sql.use_longer_sql_id: false
564
+ # If true, enables use of the thread profiler.
565
+ # thread_profiler.enabled: false
498
566
 
499
- # If true, the agent captures attributes on span events.
500
- # span_events_attributes.enabled: true
567
+ # Defines the maximum number of seconds the agent should spend attempting to
568
+ # connect to the collector.
569
+ # timeout: 120
501
570
 
502
- # Defines the maximum number of span events reported from a single harvest.
503
- # This can be any integer between 1 and 10000. Increasing this value may impact
504
- # memory usage.
505
- # span_events.max_samples_stored: 2000
571
+ # If true, the agent captures attributes from transaction events.
572
+ # transaction_events_attributes.enabled: false
506
573
 
507
- # Prefix of attributes to exclude from span events. Allows * as wildcard at end.
508
- # span_events.attributes.exclude: []
574
+ # Prefix of attributes to exclude from transaction events.
575
+ # Allows * as wildcard at end.
576
+ # transaction_events.attributes.exclude: []
509
577
 
510
- # Prefix of attributes to include on span events. Allows * as wildcard at end.
511
- # span_events.attributes.include: []
578
+ # Prefix of attributes to include in transaction events.
579
+ # Allows * as wildcard at end.
580
+ # transaction_events.attributes.include: []
512
581
 
513
- # If true, enables span event sampling.
514
- # span_events.enabled: true
582
+ # If true, the agent captures attributes on transaction segments.
583
+ # transaction_segments_attributes.enabled: true
515
584
 
516
- # Sets the maximum number of span events to buffer when streaming to the trace
517
- # observer.
518
- # span_events.queue_size: 10000
585
+ # Prefix of attributes to exclude from transaction segments.
586
+ # Allows * as wildcard at end.
587
+ # transaction_segments.attributes.exclude: []
519
588
 
520
- # Specify a list of exceptions you do not want the agent to strip when
521
- # strip_exception_messages is true. Separate exceptions with a comma. For
522
- # example, "ImportantException,PreserveMessageException".
523
- # strip_exception_messages.allowed_classes: ""
589
+ # Prefix of attributes to include on transaction segments.
590
+ # Allows * as wildcard at end.
591
+ # transaction_segments.attributes.include: []
524
592
 
525
- # If true, the agent strips messages from all exceptions except those in the
526
- # allowlist. Enabled automatically in high security mode.
527
- # strip_exception_messages.enabled: true
593
+ # If true, the agent captures attributes from transaction traces.
594
+ # transaction_tracer.attributes.enabled: false
528
595
 
529
- # When set to true, forces a synchronous connection to the New Relic collector
530
- # during application startup. For very short-lived processes, this helps ensure # the New Relic agent has time to report.
531
- # sync_startup: false
596
+ # Prefix of attributes to exclude from transaction traces.
597
+ # Allows * as wildcard at end.
598
+ # transaction_tracer.attributes.exclude: []
532
599
 
533
- # If true, enables use of the thread profiler.
534
- # thread_profiler.enabled: false
600
+ # Prefix of attributes to include in transaction traces.
601
+ # Allows * as wildcard at end.
602
+ # transaction_tracer.attributes.include: []
535
603
 
536
- # Defines the maximum number of seconds the agent should spend attempting to
537
- # connect to the collector.
538
- # timeout: 120
604
+ # If true, enables collection of transaction traces.
605
+ # transaction_tracer.enabled: true
539
606
 
540
- # If true, the agent captures attributes from transaction events.
541
- # transaction_events_attributes.enabled: false
607
+ # Threshold (in seconds) above which the agent will collect explain plans.
608
+ # Relevant only when explain.enabled is true.
609
+ # transaction_tracer.explain_threshold: 0.5
542
610
 
543
- # Prefix of attributes to exclude from transaction events.
544
- # Allows * as wildcard at end.
545
- # transaction_events.attributes.exclude: []
611
+ # If true, enables the collection of explain plans in transaction traces.
612
+ # This setting will also apply to explain plans in slow SQL traces if
613
+ # slow_sql.explain enabled is not set separately.
614
+ # transaction_tracer.explain.enabled: true
546
615
 
547
- # Prefix of attributes to include in transaction events.
548
- # Allows * as wildcard at end.
549
- # transaction_events.attributes.include: []
616
+ # Maximum number of transaction trace nodes to record in a single transaction
617
+ # trace.
618
+ # transaction_tracer.limit_segments: 4000
550
619
 
551
- # If true, the agent captures attributes on transaction segments.
552
- # transaction_segments_attributes.enabled: true
620
+ # If true, the agent records Redis command arguments in transaction traces.
621
+ # transaction_tracer.record_redis_arguments: false
553
622
 
554
- # Prefix of attributes to exclude from transaction segments.
555
- # Allows * as wildcard at end.
556
- # transaction_segments.attributes.exclude: []
623
+ # Obfuscation level for SQL queries reported in transaction trace nodes.
624
+ # By default, this is set to obfuscated, which strips out the numeric and string
625
+ # literals. If you do not want the agent to capture query information, set this
626
+ # to 'none'. If you want the agent to capture all query information in its
627
+ # original form, set this to 'raw'. When you enable high security mode this is
628
+ # automatically set to 'obfuscated'
629
+ # transaction_tracer.record_sql: 'obfuscated'
557
630
 
558
- # Prefix of attributes to include on transaction segments.
559
- # Allows * as wildcard at end.
560
- # transaction_segments.attributes.include: []
631
+ # Specify a threshold in seconds. The agent includes stack traces in transaction
632
+ # trace nodes when the stack trace duration exceeds this threshold.
633
+ # transaction_tracer.stack_trace_threshold: 0.5
561
634
 
562
- # If true, the agent captures attributes from transaction traces.
563
- # transaction_tracer.attributes.enabled: false
635
+ # Specify a threshold in seconds. Transactions with a duration longer than this
636
+ # threshold are eligible for transaction traces. Specify a float value or the
637
+ # string apdex_f.
638
+ # transaction_tracer.transaction_threshold: 1.0
564
639
 
565
- # Prefix of attributes to exclude from transaction traces.
566
- # Allows * as wildcard at end.
567
- # transaction_tracer.attributes.exclude: []
640
+ # If true, the agent automatically detects that it is running in an AWS
641
+ # environment.
642
+ # utilization.detect_aws: true
568
643
 
569
- # Prefix of attributes to include in transaction traces.
570
- # Allows * as wildcard at end.
571
- # transaction_tracer.attributes.include: []
644
+ # If true, the agent automatically detects that it is running in an Azure
645
+ # environment.
646
+ # utilization.detect_azure: true
572
647
 
573
- # If true, enables collection of transaction traces.
574
- # transaction_tracer.enabled: true
648
+ # If true, the agent automatically detects that it is running in Docker.
649
+ # utilization.detect_docker: true
575
650
 
576
- # Threshold (in seconds) above which the agent will collect explain plans.
577
- # Relevant only when explain.enabled is true.
578
- # transaction_tracer.explain_threshold: 0.5
651
+ # If true, the agent automatically detects that it is running in an Google Cloud
652
+ # Platform environment.
653
+ # utilization.detect_gcp: true
579
654
 
580
- # If true, enables the collection of explain plans in transaction traces.
581
- # This setting will also apply to explain plans in slow SQL traces if
582
- # slow_sql.explain enabled is not set separately.
583
- # transaction_tracer.explain.enabled: true
655
+ # If true, the agent automatically detects that it is running in Kubernetes.
656
+ # utilization.detect_kubernetes: true
584
657
 
585
- # Maximum number of transaction trace nodes to record in a single transaction
586
- # trace.
587
- # transaction_tracer.limit_segments: 4000
588
-
589
- # If true, the agent records Redis command arguments in transaction traces.
590
- # transaction_tracer.record_redis_arguments: false
591
-
592
- # Obfuscation level for SQL queries reported in transaction trace nodes.
593
- # By default, this is set to obfuscated, which strips out the numeric and string
594
- # literals. If you do not want the agent to capture query information, set this
595
- # to 'none'. If you want the agent to capture all query information in its
596
- # original form, set this to 'raw'. When you enable high security mode this is
597
- # automatically set to 'obfuscated'
598
- # transaction_tracer.record_sql: 'obfuscated'
599
-
600
- # Specify a threshold in seconds. The agent includes stack traces in transaction
601
- # trace nodes when the stack trace duration exceeds this threshold.
602
- # transaction_tracer.stack_trace_threshold: 0.5
603
-
604
- # Specify a threshold in seconds. Transactions with a duration longer than this
605
- # threshold are eligible for transaction traces. Specify a float value or the
606
- # string apdex_f.
607
- # transaction_tracer.transaction_threshold: 1.0
608
-
609
- # If true, the agent automatically detects that it is running in an AWS
610
- # environment.
611
- # utilization.detect_aws: true
612
-
613
- # If true, the agent automatically detects that it is running in an Azure
614
- # environment.
615
- # utilization.detect_azure: true
616
-
617
- # If true, the agent automatically detects that it is running in Docker.
618
- # utilization.detect_docker: true
619
-
620
- # If true, the agent automatically detects that it is running in an Google Cloud
621
- # Platform environment.
622
- # utilization.detect_gcp: true
623
-
624
- # If true, the agent automatically detects that it is running in Kubernetes.
625
- # utilization.detect_kubernetes: true
626
-
627
- # If true, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.
628
- # utilization.detect_pcf: true
658
+ # If true, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.
659
+ # utilization.detect_pcf: true
629
660
 
630
661
  # Environment-specific settings are in this section.
631
662
  # RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.