newrelic_rpm 8.15.0 → 9.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (342) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +26 -0
  3. data/CHANGELOG.md +538 -44
  4. data/CONTRIBUTING.md +1 -1
  5. data/Gemfile +1 -1
  6. data/README.md +11 -6
  7. data/Rakefile +9 -9
  8. data/Thorfile +1 -1
  9. data/bin/newrelic +1 -0
  10. data/bin/newrelic_cmd +1 -0
  11. data/bin/nrdebug +36 -36
  12. data/init.rb +1 -1
  13. data/lib/new_relic/agent/agent.rb +3 -16
  14. data/lib/new_relic/agent/agent_helpers/connect.rb +5 -10
  15. data/lib/new_relic/agent/agent_helpers/harvest.rb +4 -4
  16. data/lib/new_relic/agent/agent_helpers/shutdown.rb +5 -5
  17. data/lib/new_relic/agent/agent_helpers/special_startup.rb +3 -4
  18. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +47 -39
  19. data/lib/new_relic/agent/agent_helpers/startup.rb +13 -13
  20. data/lib/new_relic/agent/agent_helpers/transmit.rb +6 -6
  21. data/lib/new_relic/agent/agent_logger.rb +9 -9
  22. data/lib/new_relic/agent/attribute_filter.rb +2 -4
  23. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  24. data/lib/new_relic/agent/attribute_processing.rb +2 -2
  25. data/lib/new_relic/agent/audit_logger.rb +5 -5
  26. data/lib/new_relic/agent/autostart.rb +1 -1
  27. data/lib/new_relic/agent/commands/agent_command.rb +2 -2
  28. data/lib/new_relic/agent/commands/agent_command_router.rb +5 -4
  29. data/lib/new_relic/agent/commands/thread_profiler_session.rb +8 -8
  30. data/lib/new_relic/agent/configuration/default_source.rb +428 -586
  31. data/lib/new_relic/agent/configuration/environment_source.rb +2 -2
  32. data/lib/new_relic/agent/configuration/high_security_source.rb +3 -5
  33. data/lib/new_relic/agent/configuration/manager.rb +16 -2
  34. data/lib/new_relic/agent/configuration/security_policy_source.rb +10 -26
  35. data/lib/new_relic/agent/configuration/server_source.rb +24 -24
  36. data/lib/new_relic/agent/configuration/yaml_source.rb +17 -4
  37. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  38. data/lib/new_relic/agent/connect/response_handler.rb +1 -1
  39. data/lib/new_relic/agent/custom_event_aggregator.rb +4 -4
  40. data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
  41. data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
  42. data/lib/new_relic/agent/database/obfuscator.rb +2 -2
  43. data/lib/new_relic/agent/database.rb +4 -18
  44. data/lib/new_relic/agent/datastores/metric_helper.rb +5 -5
  45. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +11 -11
  46. data/lib/new_relic/agent/datastores/redis.rb +6 -6
  47. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +8 -10
  48. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +10 -10
  49. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +7 -7
  50. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +1 -1
  51. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +6 -6
  52. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +7 -7
  53. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +4 -4
  54. data/lib/new_relic/agent/distributed_tracing.rb +6 -6
  55. data/lib/new_relic/agent/error_collector.rb +36 -8
  56. data/lib/new_relic/agent/error_filter.rb +5 -5
  57. data/lib/new_relic/agent/error_trace_aggregator.rb +5 -4
  58. data/lib/new_relic/agent/event_loop.rb +3 -3
  59. data/lib/new_relic/agent/external.rb +1 -1
  60. data/lib/new_relic/agent/harvester.rb +1 -3
  61. data/lib/new_relic/agent/heap.rb +2 -1
  62. data/lib/new_relic/agent/hostname.rb +1 -1
  63. data/lib/new_relic/agent/http_clients/abstract.rb +9 -21
  64. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +83 -0
  65. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +7 -3
  66. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +111 -0
  67. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +7 -5
  68. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +4 -0
  69. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +6 -2
  70. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +93 -0
  71. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +5 -1
  72. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +8 -5
  73. data/lib/new_relic/agent/http_clients/uri_util.rb +2 -2
  74. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +6 -19
  75. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +42 -0
  76. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +3 -2
  77. data/lib/new_relic/agent/instrumentation/action_dispatch.rb +31 -0
  78. data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +64 -0
  79. data/lib/new_relic/agent/instrumentation/action_mailbox.rb +30 -0
  80. data/lib/new_relic/agent/instrumentation/action_mailbox_subscriber.rb +33 -0
  81. data/lib/new_relic/agent/instrumentation/action_mailer.rb +30 -0
  82. data/lib/new_relic/agent/instrumentation/action_mailer_subscriber.rb +85 -0
  83. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +10 -10
  84. data/lib/new_relic/agent/instrumentation/active_job.rb +16 -3
  85. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +41 -0
  86. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -3
  87. data/lib/new_relic/agent/instrumentation/active_record.rb +4 -3
  88. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +38 -36
  89. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +5 -4
  90. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  91. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +3 -2
  92. data/lib/new_relic/agent/instrumentation/active_storage.rb +4 -0
  93. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +2 -30
  94. data/lib/new_relic/agent/instrumentation/active_support.rb +21 -6
  95. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  96. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +13 -0
  97. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  98. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +23 -0
  99. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
  100. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -1
  101. data/lib/new_relic/agent/instrumentation/active_support_subscriber.rb +41 -0
  102. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  103. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  104. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  105. data/lib/new_relic/agent/instrumentation/async_http.rb +26 -0
  106. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  107. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +12 -3
  108. data/lib/new_relic/agent/instrumentation/bunny.rb +1 -1
  109. data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +1 -1
  110. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +3 -4
  111. data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +1 -1
  112. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +7 -6
  113. data/lib/new_relic/agent/instrumentation/curb/chain.rb +1 -1
  114. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +9 -5
  115. data/lib/new_relic/agent/instrumentation/curb.rb +1 -1
  116. data/lib/new_relic/agent/instrumentation/custom_events.rb +12 -0
  117. data/lib/new_relic/agent/instrumentation/custom_events_subscriber.rb +2 -1
  118. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -0
  119. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +4 -1
  120. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +2 -1
  121. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +2 -2
  122. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +8 -4
  123. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +2 -2
  124. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  125. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  126. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  127. data/lib/new_relic/agent/instrumentation/ethon.rb +39 -0
  128. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +5 -1
  129. data/lib/new_relic/agent/instrumentation/excon.rb +3 -3
  130. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +27 -0
  131. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +23 -0
  132. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +25 -0
  133. data/lib/new_relic/agent/instrumentation/fiber.rb +25 -0
  134. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +8 -4
  135. data/lib/new_relic/agent/instrumentation/grape.rb +4 -4
  136. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +1 -1
  137. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +7 -2
  138. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +1 -1
  139. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +1 -1
  140. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +8 -4
  141. data/lib/new_relic/agent/instrumentation/grpc_client.rb +2 -2
  142. data/lib/new_relic/agent/instrumentation/grpc_server.rb +2 -2
  143. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
  144. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
  145. data/lib/new_relic/agent/instrumentation/httprb.rb +1 -1
  146. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  147. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  148. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  149. data/lib/new_relic/agent/instrumentation/httpx.rb +27 -0
  150. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
  151. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
  152. data/lib/new_relic/agent/instrumentation/logger.rb +1 -1
  153. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +3 -1
  154. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +14 -5
  155. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +3 -1
  156. data/lib/new_relic/agent/instrumentation/memcache.rb +12 -12
  157. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +3 -3
  158. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +1 -1
  159. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +6 -8
  160. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +5 -1
  161. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -2
  162. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +46 -1
  163. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +7 -3
  164. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +2 -2
  165. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  166. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +7 -1
  167. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +7 -2
  168. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  169. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +4 -4
  170. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +14 -1
  171. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +12 -15
  172. data/lib/new_relic/agent/instrumentation/rake.rb +3 -3
  173. data/lib/new_relic/agent/instrumentation/redis/constants.rb +1 -1
  174. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +6 -1
  175. data/lib/new_relic/agent/instrumentation/redis.rb +1 -1
  176. data/lib/new_relic/agent/instrumentation/resque/helper.rb +1 -1
  177. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
  178. data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
  179. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  180. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  181. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
  182. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  183. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
  184. data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
  185. data/lib/new_relic/agent/instrumentation/sequel.rb +8 -9
  186. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +10 -10
  187. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
  188. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +1 -1
  189. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
  190. data/lib/new_relic/agent/instrumentation/sidekiq.rb +6 -3
  191. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  192. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +10 -5
  193. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +2 -4
  194. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  195. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +77 -0
  196. data/lib/new_relic/agent/instrumentation/thread/chain.rb +1 -1
  197. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +3 -8
  198. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +1 -1
  199. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +6 -1
  200. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +10 -6
  201. data/lib/new_relic/agent/javascript_instrumentor.rb +29 -24
  202. data/lib/new_relic/agent/linking_metadata.rb +2 -2
  203. data/lib/new_relic/agent/log_event_aggregator.rb +64 -17
  204. data/lib/new_relic/agent/log_event_attributes.rb +115 -0
  205. data/lib/new_relic/agent/logging.rb +77 -37
  206. data/lib/new_relic/agent/messaging.rb +9 -7
  207. data/lib/new_relic/agent/method_tracer.rb +7 -7
  208. data/lib/new_relic/agent/method_tracer_helpers.rb +27 -6
  209. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +4 -5
  210. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -1
  211. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
  212. data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
  213. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  214. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +0 -1
  215. data/lib/new_relic/agent/new_relic_service.rb +47 -32
  216. data/lib/new_relic/agent/obfuscator.rb +1 -1
  217. data/lib/new_relic/agent/parameter_filtering.rb +6 -6
  218. data/lib/new_relic/agent/pipe_channel_manager.rb +7 -6
  219. data/lib/new_relic/agent/pipe_service.rb +5 -3
  220. data/lib/new_relic/agent/priority_sampled_buffer.rb +1 -1
  221. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +0 -1
  222. data/lib/new_relic/agent/rules_engine.rb +1 -1
  223. data/lib/new_relic/agent/sampler.rb +2 -1
  224. data/lib/new_relic/agent/sampler_collection.rb +1 -1
  225. data/lib/new_relic/agent/samplers/cpu_sampler.rb +5 -5
  226. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +9 -9
  227. data/lib/new_relic/agent/samplers/memory_sampler.rb +9 -9
  228. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  229. data/lib/new_relic/agent/span_event_aggregator.rb +4 -4
  230. data/lib/new_relic/agent/span_event_primitive.rb +18 -6
  231. data/lib/new_relic/agent/sql_sampler.rb +2 -2
  232. data/lib/new_relic/agent/stats.rb +1 -1
  233. data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
  234. data/lib/new_relic/agent/system_info.rb +36 -10
  235. data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
  236. data/lib/new_relic/agent/threading/backtrace_node.rb +3 -3
  237. data/lib/new_relic/agent/threading/backtrace_service.rb +3 -7
  238. data/lib/new_relic/agent/threading/thread_profile.rb +5 -5
  239. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  240. data/lib/new_relic/agent/tracer.rb +25 -16
  241. data/lib/new_relic/agent/transaction/abstract_segment.rb +109 -48
  242. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  243. data/lib/new_relic/agent/transaction/distributed_tracer.rb +7 -6
  244. data/lib/new_relic/agent/transaction/distributed_tracing.rb +13 -14
  245. data/lib/new_relic/agent/transaction/external_request_segment.rb +16 -13
  246. data/lib/new_relic/agent/transaction/message_broker_segment.rb +2 -3
  247. data/lib/new_relic/agent/transaction/request_attributes.rb +47 -11
  248. data/lib/new_relic/agent/transaction/segment.rb +1 -1
  249. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  250. data/lib/new_relic/agent/transaction/trace.rb +1 -1
  251. data/lib/new_relic/agent/transaction/trace_context.rb +4 -4
  252. data/lib/new_relic/agent/transaction/trace_node.rb +8 -7
  253. data/lib/new_relic/agent/transaction/tracing.rb +10 -4
  254. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
  255. data/lib/new_relic/agent/transaction.rb +90 -58
  256. data/lib/new_relic/agent/transaction_error_primitive.rb +21 -5
  257. data/lib/new_relic/agent/transaction_event_aggregator.rb +4 -4
  258. data/lib/new_relic/agent/transaction_event_primitive.rb +22 -3
  259. data/lib/new_relic/agent/transaction_sampler.rb +3 -3
  260. data/lib/new_relic/agent/transaction_time_aggregator.rb +7 -3
  261. data/lib/new_relic/agent/utilization/aws.rb +1 -1
  262. data/lib/new_relic/agent/utilization/azure.rb +3 -3
  263. data/lib/new_relic/agent/utilization/gcp.rb +4 -6
  264. data/lib/new_relic/agent/utilization/pcf.rb +1 -1
  265. data/lib/new_relic/agent/utilization/vendor.rb +6 -8
  266. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
  267. data/lib/new_relic/agent/vm/mri_vm.rb +9 -8
  268. data/lib/new_relic/agent/worker_loop.rb +1 -1
  269. data/lib/new_relic/agent.rb +133 -36
  270. data/lib/new_relic/cli/command.rb +4 -3
  271. data/lib/new_relic/cli/commands/deployments.rb +26 -25
  272. data/lib/new_relic/cli/commands/install.rb +23 -23
  273. data/lib/new_relic/collection_helper.rb +2 -2
  274. data/lib/new_relic/constants.rb +10 -8
  275. data/lib/new_relic/control/class_methods.rb +4 -10
  276. data/lib/new_relic/control/frameworks/rails.rb +44 -20
  277. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  278. data/lib/new_relic/control/instance_methods.rb +6 -6
  279. data/lib/new_relic/control/instrumentation.rb +1 -15
  280. data/lib/new_relic/control/private_instance_methods.rb +1 -1
  281. data/lib/new_relic/dependency_detection.rb +20 -18
  282. data/lib/new_relic/environment_report.rb +4 -4
  283. data/lib/new_relic/helper.rb +2 -1
  284. data/lib/new_relic/language_support.rb +10 -1
  285. data/lib/new_relic/latest_changes.rb +6 -6
  286. data/lib/new_relic/local_environment.rb +0 -10
  287. data/lib/new_relic/noticed_error.rb +25 -20
  288. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  289. data/lib/new_relic/rack/agent_middleware.rb +0 -16
  290. data/lib/new_relic/rack/browser_monitoring.rb +21 -17
  291. data/lib/new_relic/recipes/capistrano3.rb +1 -1
  292. data/lib/new_relic/recipes/capistrano_legacy.rb +6 -6
  293. data/lib/new_relic/recipes/helpers/send_deployment.rb +5 -5
  294. data/lib/new_relic/supportability_helper.rb +4 -1
  295. data/lib/new_relic/traced_thread.rb +2 -3
  296. data/lib/new_relic/version.rb +2 -2
  297. data/lib/newrelic_rpm.rb +4 -4
  298. data/lib/sequel/extensions/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +6 -6
  299. data/lib/sequel/plugins/{newrelic_instrumentation.rb → new_relic_instrumentation.rb} +4 -4
  300. data/lib/tasks/bump_version.rake +21 -0
  301. data/lib/tasks/config.rake +13 -12
  302. data/lib/tasks/coverage_report.rake +4 -4
  303. data/lib/tasks/helpers/config.html.erb +93 -0
  304. data/lib/tasks/helpers/format.rb +19 -15
  305. data/lib/tasks/helpers/newrelicyml.rb +144 -0
  306. data/lib/tasks/helpers/version_bump.rb +62 -0
  307. data/lib/tasks/install.rake +4 -4
  308. data/lib/tasks/instrumentation_generator/instrumentation.thor +16 -19
  309. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +1 -1
  310. data/lib/tasks/instrumentation_generator/templates/chain.tt +1 -1
  311. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +1 -1
  312. data/lib/tasks/newrelic.rb +1 -0
  313. data/lib/tasks/newrelicyml.rake +13 -0
  314. data/lib/tasks/tests.rake +77 -6
  315. data/newrelic.yml +393 -274
  316. data/newrelic_rpm.gemspec +41 -30
  317. data/test/agent_helper.rb +25 -24
  318. metadata +172 -35
  319. data/.gitignore +0 -42
  320. data/.project +0 -23
  321. data/.rubocop.yml +0 -1946
  322. data/.rubocop_todo.yml +0 -62
  323. data/.simplecov +0 -15
  324. data/.snyk +0 -11
  325. data/.yardopts +0 -27
  326. data/Brewfile +0 -12
  327. data/DOCKER.md +0 -167
  328. data/Dockerfile +0 -10
  329. data/Guardfile +0 -26
  330. data/config/database.yml +0 -5
  331. data/config.dot +0 -278
  332. data/docker-compose.yml +0 -107
  333. data/lefthook.yml +0 -9
  334. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +0 -83
  335. data/lib/new_relic/agent/instrumentation/authlogic.rb +0 -33
  336. data/lib/new_relic/agent/instrumentation/data_mapper.rb +0 -215
  337. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +0 -36
  338. data/lib/new_relic/agent/instrumentation/sunspot.rb +0 -41
  339. data/lib/new_relic/agent/range_extensions.rb +0 -27
  340. data/lib/tasks/helpers/removers.rb +0 -33
  341. data/lib/tasks/multiverse.rake +0 -6
  342. data/lib/tasks/multiverse.rb +0 -77
data/.rubocop_todo.yml DELETED
@@ -1,62 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2022-10-03 22:57:47 UTC using RuboCop version 1.36.0.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 412
10
- # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
11
- Metrics/AbcSize:
12
- Max: 54
13
- Exclude:
14
- - test/**/*
15
- - infinite_tracing/test/**/*
16
-
17
- # This cop supports safe autocorrection (--autocorrect).
18
- Minitest/AssertInDelta:
19
- Enabled: true
20
-
21
- # Offense count: 7
22
- Minitest/AssertRaisesCompoundBody:
23
- Exclude:
24
- - 'test/new_relic/agent/collector_response_code_test.rb'
25
- - 'test/new_relic/agent/new_relic_service_test.rb'
26
- - 'test/new_relic/cli/commands/deployments_test.rb'
27
-
28
- # Offense count: 4
29
- Minitest/DuplicateTestRun:
30
- Exclude:
31
- - 'test/multiverse/suites/rails/error_tracing_test.rb'
32
- - 'test/multiverse/suites/sinatra/ignoring_test.rb'
33
-
34
- # Offense count: 263
35
- Minitest/MultipleAssertions:
36
- Max: 28
37
-
38
- # Offense count: 129
39
- # This cop supports safe autocorrection (--autocorrect).
40
- Minitest/RefutePredicate:
41
- Enabled: false
42
-
43
- # Offense count: 27
44
- # This cop supports safe autocorrection (--autocorrect).
45
- Minitest/TestMethodName:
46
- Enabled: false
47
-
48
- Style/ConcatArrayLiterals:
49
- Enabled: false
50
-
51
- Minitest/RefuteRespondTo:
52
- Exclude:
53
- - 'test/new_relic/cli/commands/deployments_test.rb'
54
-
55
- Minitest/EmptyLineBeforeAssertionMethods:
56
- Exclude:
57
- - 'test/new_relic/agent_test.rb'
58
- - 'test/new_relic/cli/commands/deployments_test.rb'
59
-
60
- Style/RedundantStringEscape:
61
- Exclude:
62
- - 'test/new_relic/agent/logging_test.rb'
data/.simplecov DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'securerandom'
3
-
4
- if ENV['CI']
5
- random = SecureRandom.uuid
6
- SimpleCov.command_name(random)
7
- SimpleCov.coverage_dir("coverage_#{random}")
8
- end
9
-
10
- SimpleCov.start do
11
- enable_coverage(:branch)
12
- SimpleCov.root(File.join(File.dirname(__FILE__), '/lib'))
13
- track_files("**/*.rb")
14
- formatter(SimpleCov::Formatter::SimpleFormatter) if ENV['CI']
15
- end
data/.snyk DELETED
@@ -1,11 +0,0 @@
1
- exclude:
2
- global:
3
- # The project Dockerfile is only used to orchestrate container usage for
4
- # local development with containers that are not to be exposed to the
5
- # outside world. We use vanilla "ruby" images and do not layer on any
6
- # additional software dependencies or configurations ourselves that would
7
- # change the original "ruby" images' security profile. We defer all
8
- # security mitigation for the images to the "ruby" image maintainers (who
9
- # themselves are periodically updating their base Ubuntu layers to mitigate
10
- # issues).
11
- - Dockerfile
data/.yardopts DELETED
@@ -1,27 +0,0 @@
1
- --non-transitive-tag api
2
- --api public
3
- lib/new_relic/agent.rb
4
- lib/new_relic/traced_thread.rb
5
- lib/new_relic/agent/method_tracer.rb
6
- lib/new_relic/agent/distributed_tracing.rb
7
- lib/new_relic/agent/distributed_trace_payload.rb
8
- lib/new_relic/agent/external.rb
9
- lib/new_relic/agent/instrumentation/controller_instrumentation.rb
10
- lib/new_relic/agent/instrumentation/rack.rb
11
- lib/new_relic/agent/instrumentation/metric_frame.rb
12
- lib/new_relic/agent/stats_engine/metric_stats.rb
13
- lib/new_relic/agent/datastores.rb
14
- lib/new_relic/agent/messaging.rb
15
- lib/new_relic/agent/sql_sampler.rb
16
- lib/new_relic/agent/tracer.rb
17
- lib/new_relic/agent/transaction.rb
18
- lib/new_relic/agent/transaction_sampler.rb
19
- lib/new_relic/rack/agent_hooks.rb
20
- lib/new_relic/rack/browser_monitoring.rb
21
- lib/new_relic/rack/error_collector.rb
22
- lib/new_relic/rack.rb
23
- lib/new_relic/agent/transaction/external_request_segment.rb
24
- -
25
- LICENSE
26
- CHANGELOG.md
27
- CONTRIBUTING.md
data/Brewfile DELETED
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
- brew 'elasticsearch'
3
- brew 'imagemagick'
4
- brew 'memcached'
5
- tap 'mongodb/brew'
6
- brew 'mongodb-community'
7
- brew 'mysql'
8
- brew 'openssl'
9
- brew 'pkg-config'
10
- brew 'postgresql'
11
- brew 'rabbitmq'
12
- brew 'redis'
data/DOCKER.md DELETED
@@ -1,167 +0,0 @@
1
- # Using Docker with the New Relic Ruby Agent
2
-
3
- These instructions will guide you through the process of setting up Docker for
4
- use with developing the New Relic Ruby Agent. The use of Docker containers can
5
- provide for a consistent experience free from machine specific issues.
6
-
7
- ## Quick Start
8
-
9
- ```shell
10
- # unit tests (Ruby only)
11
- $ docker build -t newrelic_rpm .
12
- $ docker run --rm newrelic_rpm
13
-
14
- # or
15
-
16
- # functional tests (MySQL, PostgreSQL, Redis, etc.)
17
- $ docker-compose up
18
- $ docker-compose exec app bundle exec rake test:all
19
- ```
20
-
21
-
22
- ## Install Docker
23
-
24
- You will need to have [Docker Desktop](https://www.docker.com/) installed and
25
- running on your machine.
26
-
27
- If you are using on macOS and using [Homebrew](https://brew.sh/), Docker can be
28
- installed as a cask via:
29
-
30
- ```shell
31
- $ brew install --cask docker
32
- ```
33
-
34
- and then launched via the `/Applications/Docker.app` launcher that is installed.
35
-
36
- For alternatives to using macOS with Homebrew, see Docker's
37
- [Get Started Guide](https://www.docker.com/get-started).
38
-
39
-
40
- ## Clone the project
41
-
42
- Use git to clone the [newrelic/newrelic-ruby-agent](https://github.com/newrelic/newrelic-ruby-agent)
43
- project.
44
-
45
- The [Dockerfile](Dockerfile) and [docker-compose.yml](docker-compose.yml)
46
- files are located in the root of the project, where this `DOCKER.md`
47
- document resides.
48
-
49
-
50
- ## Using just the Dockerfile (unit tests and standalone dev only)
51
-
52
- The project `Dockerfile` can be used by itself to run the project unit tests.
53
- Docker Compose and the project `docker-compose.yml` file will be needed to
54
- run functional tests which involve communicating with data systems such as
55
- PostgreSQL and Redis.
56
-
57
- To run the unit tests using `Dockerfile` by itself, first change
58
- directories to the root of the project, then build an image, and
59
- finally run a container from the image:
60
-
61
- ```shell
62
- $ cd /path/to/project/git/clone
63
- $ docker build -t newrelic_rpm .
64
- $ docker run --rm newrelic_rpm
65
- ```
66
-
67
- The `Dockerfile` specifies a default Ruby version to test with. To override this
68
- version, pass the `ruby_version` build arg like so when building the image:
69
-
70
- ```shell
71
- docker build --build-arg ruby_version=2.7 .
72
- ```
73
-
74
- **Legend:**
75
- * `build -t <TAG>` applies a tag to the image during building.
76
- * `.` indicates "here" and tells Docker that the `Dockerfile` file can be found
77
- in the current directory
78
- * `run --rm` tells Docker to remove the container after the tests complete.
79
- * `--build-arg ruby_version=<RUBY VERSION>` specifies that a given Ruby version should be used (use MAJOR.MINOR or optionally MAJOR.MINOR.PATCH)
80
-
81
-
82
- ## Using Docker Compose (for functional tests and developing with services)
83
-
84
- Docker Compose launches multiple containers simultaneously to support the
85
- running of the functional tests that require a variety of data handling
86
- server applications such as PostgreSQL, Redis, memcached, etc. Each one of
87
- these server applications uses its own container and then there's a Ruby
88
- container (referred to as the "app" container) that runs the Minitest tests
89
- while connecting to the other containers.
90
-
91
- In one shell session, change to the root of the project and then bring up all
92
- containers with Docker Compose:
93
-
94
- ```shell
95
- $ docker-compose up
96
- ```
97
-
98
- By default, `docker-compose` will use the default Ruby version specified in the
99
- `Dockerfile` file. To override this version with a custom desired version, set
100
- the `RUBY_VERSION` environment variable before calling `docker-compose`,
101
- like so:
102
-
103
- ```shell
104
- RUBY_VERSION=3.0 docker-compose up
105
- ```
106
-
107
- In a separate shell session (probably in a separate terminal split, tab, or
108
- window), execute the 'test:all' rake task to test all standard, environment,
109
- and multiverse tests:
110
-
111
- ```shell
112
- $ docker-compose exec app bundle exec rake test:all
113
- ```
114
-
115
- In lieu of running the tests, an interactive Bash shell can be
116
- launched against the running Ruby app container for development and/or
117
- debugging. While the `docker-compose up` shell session is still running,
118
- bring up an additional local shell session and run the following:
119
-
120
- ```shell
121
- $ docker-compose exec app bash
122
- ```
123
-
124
- You will be dropped at a Bash prompt as the "relic" user, with "ruby" and
125
- "bundle" in your PATH.
126
-
127
-
128
- ## Output
129
-
130
- When using Docker Compose, one shell session will produce STDOUT output that
131
- pertains to all of the services (MySQL, MongoDB, etc.) and the other shell
132
- session will produce STDOUT output related to the Ruby based functional tests.
133
- Both streams of output may provide information about any errors or warnings
134
- that take place.
135
-
136
-
137
- ## Cleanup
138
-
139
- If the project `Dockerfile` is being used without Docker Compose, then use
140
- `docker ps` to show information about containers and `docker images`
141
- for information about images. The `docker stop`, `docker kill`, `docker rm`
142
- and `docker rmi` commands can be used with the appropriate container and image
143
- ids. Run `docker --help` or read through the hosted [CLI documentation](https://docs.docker.com/engine/reference/commandline/docker/).
144
-
145
- When Docker Compose is used, invoking `ctrl-c` in the shell session that is
146
- running the `docker-compose up` command should suffice to prompt Docker Compose
147
- to shut down all running containers. Otherwise, `docker-compose down` can be
148
- ran after the `docker-compose up` process has been stopped. All relevant
149
- containers and images can then be optionally discarded using the `docker` CLI
150
- commands described in the previous paragraph.
151
-
152
- Use `docker ps -a` to show a list of all containers. Pass a container id to
153
- `docker rm` (ex: `docker rm 5c15ee2f1c4f`) to remove it.
154
-
155
- Use `docker images` to show a list of all images. Typically, you'll want to
156
- keep these images if you plan on running Docker with them again in the future.
157
- If you are done with them, you can pass an image id to `docker rmi` to remove
158
- an image (ex: `docker rmi 4253856b2570`).
159
-
160
- ## Questions, Feature Requests, Contributions, etc.
161
-
162
- The maintainers of New Relic's Ruby agent project are hopeful that the use of
163
- containers and these instructions can provide consistency and a lowered barrier
164
- of entry when it comes to providing contributions to the agent project itself.
165
-
166
- For questions, feature requests, proposals to support Podman, PRs to improve
167
- behavior or documentation, etc., please see [CONTRIBUTING.md](CONTRIBUTING.md).
data/Dockerfile DELETED
@@ -1,10 +0,0 @@
1
- ARG ruby_version=3.1
2
-
3
- FROM ruby:$ruby_version
4
-
5
- WORKDIR /usr/src/app
6
-
7
- COPY . .
8
- RUN bundle install
9
-
10
- CMD ["bundle", "exec", "rake"]
data/Guardfile DELETED
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
- require './test/multiverse/lib/multiverse/bundler_patch'
3
-
4
- test_folders = Dir.glob("test/new_relic/*").select { |f| File.directory?(f) }
5
- test_folders += Dir.glob("test/new_relic/**/*").select { |f| File.directory?(f) }
6
-
7
- rake_lib_path = Bundler.with_unbundled_env { `bundle exec gem which rake`.chomp.gsub("lib/rake.rb", "lib") }
8
- ruby_options = %(-w -I"#{rake_lib_path}" "#{rake_lib_path}/rake/rake_test_loader.rb")
9
-
10
- guard_options = {
11
- spring: "bundle exec ruby #{ruby_options} ",
12
- test_folders: ['test/new_relic'] + test_folders,
13
- all_after_pass: false,
14
- all_on_start: false
15
- }
16
-
17
- guard :minitest, guard_options do
18
- watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
19
- watch(%r{^test/.+_test\.rb$})
20
- watch(%r{^test/rum/.*}) { "test/new_relic/rack/browser_monitoring_test.rb" }
21
- watch(%r{^test/fixtures/cross_agent_tests/distributed_tracing/(.+).json}) { |m| "test/new_relic/agent/distributed_tracing/#{m[1]}_cross_agent_test.rb" }
22
- watch('test/test_helper.rb') { "test/new_relic" }
23
- watch('test/agent_helper.rb') { "test/new_relic" }
24
- watch('lib/new_relic/agent/configuration/default_source.rb') { "test/new_relic/agent/configuration/orphan_configuration_test.rb" }
25
- watch(%r{^lib/new_relic/agent/transaction/(.+).rb}) { |m| "test/new_relic/agent/distributed_tracing/#{m[1]}_cross_agent_test.rb" }
26
- end
data/config/database.yml DELETED
@@ -1,5 +0,0 @@
1
- # This config is used when setting up a basic rails environment for running the
2
- # unit tests.
3
- test:
4
- database: ':memory:'
5
- adapter: 'sqlite3'
data/config.dot DELETED
@@ -1,278 +0,0 @@
1
- digraph AgentEnabled {
2
- node[color=green]
3
- "[agent_enabled]"
4
- "[monitor_mode]"
5
- "[slow_sql.explain_threshold]"
6
- "[slow_sql.stack_trace_threshold]"
7
- "[slow_sql.explain_enabled]"
8
- "[slow_sql.enabled]"
9
- "[slow_sql.record_sql]"
10
- "[transaction_tracer.limit_segments]"
11
- "[transaction_tracer.stack_trace_threshold]"
12
- "[transaction_tracer.explain_threshold]"
13
- "[transaction_tracer.explain_enabled]"
14
- "[transaction_tracer.transaction_threshold]"
15
- "[transaction_tracer.record_sql]"
16
- "[transaction_tracer.random_sample]"
17
- "[transaction_tracer.enabled]"
18
- "[error_collector.capture_source]"
19
- "[error_collector.enabled]"
20
- "[error_collector.ignore_errors]"
21
- "[error_collector.max_backtrace_frames]"
22
- "[browser_monitoring.auto_instrument]"
23
- "[license_key]"
24
- "[verify_certificate]"
25
- "[api_host]"
26
- "[api_port]"
27
- "[proxy_host]"
28
- "[proxy_port]"
29
- "[proxy_user]"
30
- "[proxy_pass]"
31
- "[host]"
32
- "[port]"
33
- "[timeout]"
34
- "[log_level]"
35
- "[apdex_t]"
36
- "[capture_params]"
37
- "[app_name]"
38
- "[multi_homed]"
39
- "[disable_samplers]"
40
- "[log_file_name]"
41
- "[log_file_path]"
42
- "[dispatcher]"
43
- "[force_send]"
44
- "[textmate]"
45
- "[max_payload_size_in_bytes]"
46
- "[sync_startup]"
47
- "[send_data_on_exit]"
48
- "[high_security]"
49
- "[validate_seed]"
50
- "[validate_token]"
51
- "[disable_backtrace_cleanup]"
52
- "[disable_activerecord_instrumentation]"
53
- "[disable_dj]"
54
- "[capture_memcache_keys]"
55
- "[disable_memcache_instrumentation]"
56
- "[disable_view_instrumentation]"
57
- "[disable_resque]"
58
-
59
- node[shape=box,color=orange]
60
- "Control#init_plugin"
61
- "Control#api_server"
62
- "Control#proxy_server"
63
- "Control#server_from_host"
64
- "Control#http_connection"
65
- "Control#set_log_level!"
66
- "Control#log_path"
67
- "Control#log_to_stdout?"
68
- "Control#convert_to_ip_address"
69
- "Control#server"
70
- "Control#setup_log"
71
- "Control#should_log?"
72
- "Control#log!"
73
-
74
- node[color=green]
75
- "Config#app_names"
76
-
77
- node[color=black]
78
- "Agent#initialize"
79
- "Agent#after_fork"
80
- "Agent#disabled?"
81
- "Agent#shutdown"
82
- "Agent#using_forking_dispatcher?"
83
- "Agent#has_license_key?"
84
- "Agent#correct_license_length"
85
- "Agent#apdex_f"
86
- "Agent#check_config_and_start_agent"
87
- "Agent#install_exit_handler"
88
- "Agent#log_app_names"
89
- "Agent#connect_settings"
90
- "Agent#log_seed_token"
91
- "Agent#log_error"
92
- "Agent#monitoring?"
93
- "Agent#check_transaction_sampler_status"
94
- "Agent#check_sql_sampler_status"
95
- "Agent#config_transaction_tracer"
96
- "Agent#set_sql_recording!"
97
- "Agent#already_started?"
98
- "Agent#log_connection"
99
- "Agent#manual_start"
100
-
101
- "MethodTracer#remove_method_tracer"
102
-
103
- "ErrorCollector#initialize"
104
- "ErrorCollector#request_params_from_opts"
105
-
106
- "ControllerInstrumentation#perform_action_with_newrelic_trace"
107
-
108
- "NewRelicService#initialize"
109
- "NewRelicService#check_post_size"
110
- "NewRelicService#connect"
111
- "NewRelicService#send_request"
112
-
113
- "SqlSampler#configure!"
114
-
115
- "TransactionSampler#configure!"
116
- "TransactionSampler#notice_push_scope"
117
- "TransactionSampler#capture_segment_trace"
118
- "TransactionSampler#store_segment_for_developer_mode"
119
-
120
- "NoticedError#initialize"
121
-
122
- "BeaconConfiguration#license_bytes"
123
-
124
- "ActiveRecord#depends_on"
125
- "DelayedJobInstrumentation#depends_on"
126
- "Memcache#memcache_key_snippet"
127
- "Memcache#depends_on"
128
- "Rails::ActionController#depends_on"
129
- "Rails3::ActionController#depends_on"
130
- "Resque#depends_on"
131
-
132
- "DelayedJobSampler#initialize"
133
- "DelayedJobInjection#depends_on"
134
-
135
- "MetricFrame.update_apdex"
136
-
137
- "TransactionInfo#force_persist_sample?"
138
- "TransactionInfo#include_guid?"
139
-
140
- "TransactionSampleBuilder#initialize"
141
- "TransactionSampleBuilder#set_transaction_info"
142
-
143
- "Rails#install_browser_monitoring"
144
- "Rails#log!"
145
- "Rails3#log!"
146
-
147
- "CollectionHelper#strip_nr_from_backtrace"
148
-
149
- "Deployments#initialize"
150
-
151
- #######
152
-
153
- "Control#init_plugin" -> "[agent_enabled]"
154
- "Control#init_plugin" -> "Control#setup_log"
155
- "Control#init_plugin" -> "[disable_samplers]"
156
- "Control#should_log?" -> "[agent_enabled]"
157
- "Control#api_server" -> "[api_host]"
158
- "Control#api_server" -> "[api_port]"
159
- "Control#proxy_server" -> "[proxy_host]"
160
- "Control#proxy_server" -> "[proxy_port]"
161
- "Control#proxy_server" -> "[proxy_user]"
162
- "Control#proxy_server" -> "[proxy_pass]"
163
- "Control#server_from_host" -> "[host]"
164
- "Control#server_from_host" -> "[port]"
165
- "Control#server_from_host" -> "Control#convert_to_ip_address"
166
- "Control#http_connection" -> "[verify_certificate]"
167
- "Control#http_connection" -> "Control#proxy_server"
168
- "Control#set_log_level!" -> "[log_level]"
169
- "Control#log_path" -> "[log_file_path]"
170
- "Control#log_path" -> "Control#log_to_stdout?"
171
- "Control#log_to_stdout?" -> "[log_file_path]"
172
- "Control#convert_to_ip_address" -> "[verify_certificate]"
173
- "Control#server" -> "Control#server_from_host"
174
- "Control#setup_log" -> "Control#set_log_level!"
175
- "Control#setup_log" -> "Control#log_path"
176
- "Control#setup_log" -> "Control#log_to_stdout?"
177
- "Control#setup_log" -> "[log_file_name]"
178
- "Control#log!" -> "Control#should_log?"
179
- "Control#log!" -> "Control#log_path"
180
-
181
- "Agent#initialize" -> "[monitor_mode]"
182
- "Agent#after_fork" -> "[agent_enabled]"
183
- "Agent#after_fork" -> "[monitor_mode]"
184
- "Agent#disabled?" -> "[agent_enabled]"
185
- "Agent#shutdown" -> "[force_send]"
186
- "Agent#shutdown" -> "[dispatcher]"
187
- "Agent#using_forking_dispatcher?" -> "[dispatcher]"
188
- "Agent#has_license_key?" -> "[license_key]"
189
- "Agent#correct_license_length" -> "[license_key]"
190
- "Agent#apdex_f" -> "[apdex_t]"
191
- "Agent#check_config_and_start_agent" -> "[sync_startup]"
192
- "Agent#install_exit_handler" -> "[send_data_on_exit]"
193
- "Agent#log_app_names" -> "Config#app_names"
194
- "Agent#connect_settings" -> "Config#app_names"
195
- "Agent#log_seed_token" -> "[validate_seed]"
196
- "Agent#log_seed_token" -> "[validate_token]"
197
- "Agent#validate_settings" -> "[validate_seed]"
198
- "Agent#validate_settings" -> "[validate_token]"
199
- "Agent#log_error" -> "Control#server"
200
- "Agent#monitoring?" -> "[monitor_mode]"
201
- "Agent#check_sql_sampler_status" -> "[slow_sql.enabled]"
202
- "Agent#check_sql_sampler_status" -> "[slow_sql.record_sql]"
203
- "Agent#check_sql_sampler_status" -> "[transaction_tracer.enabled]"
204
- "Agent#config_transaction_tracer" -> "[transaction_tracer.enabled]"
205
- "Agent#config_transaction_tracer" -> "[transaction_tracer.random_sample]"
206
- "Agent#config_transaction_tracer" -> "[transaction_tracer.transaction_threshold]"
207
- "Agent#set_sql_recording!" -> "[transaction_tracer.record_sql]"
208
- "Agent#already_started?" -> "Control#log!"
209
- "Agent#log_connection" -> "Control#log!"
210
- "Agent#manual_start" -> "Control#init_plugin"
211
-
212
- "MethodTracer#remove_method_tracer" -> "[agent_enabled]"
213
-
214
- "Rails#init_config" -> "[agent_enabled]"
215
-
216
- "ErrorCollector#initialize" -> "[error_collector.enabled]"
217
- "ErrorCollector#initialize" -> "[error_collector.capture_source]"
218
- "ErrorCollector#initialize" -> "[error_collector.ignore_errors]"
219
- "ErrorCollector#request_params_from_opts" -> "[capture_params]"
220
-
221
- "NewRelicService#initialize" -> "[timeout]"
222
- "NewRelicService#initialize" -> "[license_key]"
223
- "NewRelicService#initialize" -> "Control#server"
224
- "NewRelicService#check_post_size" -> "[max_payload_size_in_bytes]"
225
- "NewRelicService#connect" -> "Control#server_from_host"
226
- "NewRelicService#send_request" -> "Control#http_connection"
227
-
228
- "SqlSampler#configure!" -> "[slow_sql.explain_threshold]"
229
- "SqlSampler#configure!" -> "[slow_sql.explain_enabled]"
230
- "SqlSampler#configure!" -> "[slow_sql.stack_trace_threshold]"
231
- "SqlSampler#configure!" -> "[slow_sql.enabled]"
232
-
233
- "TransactionSampler#configure!" -> "[transaction_tracer.limit_segments]"
234
- "TransactionSampler#configure!" -> "[transaction_tracer.stack_trace_threshold]"
235
- "TransactionSampler#configure!" -> "[transaction_tracer.explain_threshold]"
236
- "TransactionSampler#configure!" -> "[transaction_tracer.explain_enabled]"
237
- "TransactionSampler#configure!" -> "[transaction_tracer.transaction_threshold]"
238
-
239
- "NoticedError#initialize" -> "[high_security]"
240
-
241
- "BeaconConfiguration#license_bytes" -> "[license_key]"
242
-
243
- "ActiveRecord#depends_on" -> "[disable_activerecord_instrumentation]"
244
-
245
- "DelayedJobInstrumentation#depends_on" -> "[disable_dj]"
246
-
247
- "Memcache#memcache_key_snippet" -> "[capture_memcache_keys]"
248
- "Memcache#depends_on" -> "[disable_memcache_instrumentation]"
249
-
250
- "Rails::ActionController#depends_on" -> "[disable_view_instrumentation]"
251
- "Rails3::ActionController#depends_on" -> "[disable_view_instrumentation]"
252
- "Resque#depends_on" -> "[disable_resque]"
253
-
254
- "DelayedJobSampler#initialize" -> "[disable_dj]"
255
- "DelayedJobInjection#depends_on" -> "[disable_dj]"
256
- "DelayedJobInjection#executes" -> "Control#init_plugin"
257
-
258
- "MetricFrame.update_apdex" -> "[apdex_t]"
259
-
260
- "TransactionInfo#force_persist_sample?" -> "[apdex_t]"
261
- "TransactionInfo#include_guid?" -> "[apdex_t]"
262
-
263
- "TransactionSampleBuilder#initialize" -> "[transaction_tracer.limit_segments]"
264
- "TransactionSampleBuilder#set_transaction_info" -> "[capture_params]"
265
-
266
- "Rails#install_browser_monitoring" -> "[browser_monitoring.auto_instrument]"
267
- "Rails#log!" -> "Control#should_log?"
268
- "Rails3#log!" -> "Control#should_log?"
269
-
270
- "CollectionHelper#strip_nr_from_backtrace" -> "[disable_backtrace_cleanup]"
271
-
272
- "Deployments#initialize" -> "Config#app_names"
273
- "Deployments#run" -> "Control#http_connection"
274
- "Deployments#run" -> "[license_key]"
275
- "Deployments#run" -> "Control#api_server"
276
-
277
- "Config#app_names" -> "[app_name]"
278
- }