newrelic_rpm 6.15.0 → 8.13.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (427) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -1
  3. data/.rubocop.yml +1817 -0
  4. data/.rubocop_todo.yml +59 -0
  5. data/.simplecov +15 -0
  6. data/.snyk +11 -0
  7. data/.yardopts +1 -0
  8. data/Brewfile +12 -0
  9. data/CHANGELOG.md +754 -40
  10. data/CONTRIBUTING.md +32 -5
  11. data/DOCKER.md +167 -0
  12. data/Dockerfile +10 -0
  13. data/Gemfile +0 -1
  14. data/Guardfile +9 -8
  15. data/LICENSE +0 -6
  16. data/README.md +21 -20
  17. data/Rakefile +27 -29
  18. data/THIRD_PARTY_NOTICES.md +14 -199
  19. data/Thorfile +5 -0
  20. data/bin/newrelic +3 -2
  21. data/bin/newrelic_cmd +1 -0
  22. data/bin/nrdebug +76 -53
  23. data/config.dot +5 -5
  24. data/docker-compose.yml +107 -0
  25. data/init.rb +4 -6
  26. data/install.rb +2 -2
  27. data/lefthook.yml +9 -0
  28. data/lib/new_relic/agent/adaptive_sampler.rb +13 -9
  29. data/lib/new_relic/agent/agent/shutdown.rb +35 -0
  30. data/lib/new_relic/agent/agent/special_startup.rb +72 -0
  31. data/lib/new_relic/agent/agent/start_worker_thread.rb +163 -0
  32. data/lib/new_relic/agent/agent/startup.rb +197 -0
  33. data/lib/new_relic/agent/agent.rb +178 -555
  34. data/lib/new_relic/agent/agent_logger.rb +23 -19
  35. data/lib/new_relic/agent/attribute_filter.rb +66 -47
  36. data/lib/new_relic/agent/attribute_processing.rb +7 -7
  37. data/lib/new_relic/agent/attributes.rb +5 -4
  38. data/lib/new_relic/agent/audit_logger.rb +8 -3
  39. data/lib/new_relic/agent/autostart.rb +20 -19
  40. data/lib/new_relic/agent/chained_call.rb +1 -1
  41. data/lib/new_relic/agent/commands/agent_command.rb +3 -3
  42. data/lib/new_relic/agent/commands/agent_command_router.rb +12 -11
  43. data/lib/new_relic/agent/commands/thread_profiler_session.rb +9 -7
  44. data/lib/new_relic/agent/configuration/default_source.rb +1728 -1194
  45. data/lib/new_relic/agent/configuration/dotted_hash.rb +6 -5
  46. data/lib/new_relic/agent/configuration/environment_source.rb +11 -9
  47. data/lib/new_relic/agent/configuration/event_harvest_config.rb +40 -17
  48. data/lib/new_relic/agent/configuration/high_security_source.rb +9 -8
  49. data/lib/new_relic/agent/configuration/manager.rb +82 -69
  50. data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
  51. data/lib/new_relic/agent/configuration/mask_defaults.rb +3 -3
  52. data/lib/new_relic/agent/configuration/security_policy_source.rb +90 -77
  53. data/lib/new_relic/agent/configuration/server_source.rb +21 -19
  54. data/lib/new_relic/agent/configuration/yaml_source.rb +31 -7
  55. data/lib/new_relic/agent/configuration.rb +1 -1
  56. data/lib/new_relic/agent/connect/request_builder.rb +18 -18
  57. data/lib/new_relic/agent/connect/response_handler.rb +5 -8
  58. data/lib/new_relic/agent/custom_event_aggregator.rb +14 -14
  59. data/lib/new_relic/agent/database/explain_plan_helpers.rb +4 -5
  60. data/lib/new_relic/agent/database/obfuscation_helpers.rb +14 -13
  61. data/lib/new_relic/agent/database/obfuscator.rb +2 -2
  62. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +3 -3
  63. data/lib/new_relic/agent/database.rb +53 -47
  64. data/lib/new_relic/agent/database_adapter.rb +3 -1
  65. data/lib/new_relic/agent/datastores/metric_helper.rb +17 -18
  66. data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +7 -6
  67. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +6 -10
  68. data/lib/new_relic/agent/datastores/mongo.rb +6 -11
  69. data/lib/new_relic/agent/datastores/nosql_obfuscator.rb +41 -0
  70. data/lib/new_relic/agent/datastores/redis.rb +5 -11
  71. data/lib/new_relic/agent/datastores.rb +11 -13
  72. data/lib/new_relic/agent/deprecator.rb +1 -1
  73. data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +10 -10
  74. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +39 -32
  75. data/lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb +22 -22
  76. data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +19 -19
  77. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +50 -52
  78. data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +5 -6
  79. data/lib/new_relic/agent/distributed_tracing/trace_context.rb +76 -77
  80. data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +39 -38
  81. data/lib/new_relic/agent/distributed_tracing.rb +32 -100
  82. data/lib/new_relic/agent/encoding_normalizer.rb +4 -2
  83. data/lib/new_relic/agent/error_collector.rb +73 -54
  84. data/lib/new_relic/agent/error_event_aggregator.rb +4 -5
  85. data/lib/new_relic/agent/error_filter.rb +174 -0
  86. data/lib/new_relic/agent/error_trace_aggregator.rb +4 -3
  87. data/lib/new_relic/agent/event_aggregator.rb +22 -21
  88. data/lib/new_relic/agent/event_buffer.rb +7 -8
  89. data/lib/new_relic/agent/event_listener.rb +1 -2
  90. data/lib/new_relic/agent/event_loop.rb +25 -23
  91. data/lib/new_relic/agent/external.rb +11 -44
  92. data/lib/new_relic/agent/guid_generator.rb +4 -11
  93. data/lib/new_relic/agent/harvester.rb +4 -5
  94. data/lib/new_relic/agent/heap.rb +6 -8
  95. data/lib/new_relic/agent/hostname.rb +20 -13
  96. data/lib/new_relic/agent/http_clients/abstract.rb +10 -11
  97. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +6 -11
  98. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +8 -9
  99. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +4 -5
  100. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +2 -4
  101. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +8 -4
  102. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +4 -5
  103. data/lib/new_relic/agent/http_clients/uri_util.rb +1 -3
  104. data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +8 -8
  105. data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +38 -31
  106. data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +12 -13
  107. data/lib/new_relic/agent/instrumentation/active_job.rb +14 -7
  108. data/lib/new_relic/agent/instrumentation/active_merchant.rb +20 -6
  109. data/lib/new_relic/agent/instrumentation/active_record.rb +29 -27
  110. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +71 -61
  111. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +31 -44
  112. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +4 -4
  113. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +27 -20
  114. data/lib/new_relic/agent/instrumentation/active_storage.rb +2 -2
  115. data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +18 -15
  116. data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +23 -0
  117. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +20 -0
  118. data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +12 -0
  119. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +24 -0
  120. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +18 -10
  121. data/lib/new_relic/agent/instrumentation/authlogic.rb +10 -2
  122. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +45 -0
  123. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +150 -0
  124. data/lib/new_relic/agent/instrumentation/bunny/prepend.rb +35 -0
  125. data/lib/new_relic/agent/instrumentation/bunny.rb +11 -154
  126. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +68 -58
  127. data/lib/new_relic/agent/instrumentation/curb/chain.rb +91 -0
  128. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +221 -0
  129. data/lib/new_relic/agent/instrumentation/curb/prepend.rb +61 -0
  130. data/lib/new_relic/agent/instrumentation/curb.rb +11 -243
  131. data/lib/new_relic/agent/instrumentation/data_mapper.rb +65 -54
  132. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +35 -0
  133. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +48 -0
  134. data/lib/new_relic/agent/instrumentation/delayed_job/prepend.rb +33 -0
  135. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +29 -53
  136. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +29 -0
  137. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +66 -0
  138. data/lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb +13 -0
  139. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +31 -0
  140. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +5 -5
  141. data/lib/new_relic/agent/instrumentation/excon.rb +22 -24
  142. data/lib/new_relic/agent/instrumentation/grape/chain.rb +24 -0
  143. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +100 -0
  144. data/lib/new_relic/agent/instrumentation/grape/prepend.rb +17 -0
  145. data/lib/new_relic/agent/instrumentation/grape.rb +11 -112
  146. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +97 -0
  147. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +89 -0
  148. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +111 -0
  149. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +30 -0
  150. data/lib/new_relic/agent/instrumentation/grpc/helper.rb +32 -0
  151. data/lib/new_relic/agent/instrumentation/grpc/server/chain.rb +69 -0
  152. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +134 -0
  153. data/lib/new_relic/agent/instrumentation/grpc/server/rpc_desc_prepend.rb +35 -0
  154. data/lib/new_relic/agent/instrumentation/grpc/server/rpc_server_prepend.rb +26 -0
  155. data/lib/new_relic/agent/instrumentation/grpc_client.rb +23 -0
  156. data/lib/new_relic/agent/instrumentation/grpc_server.rb +25 -0
  157. data/lib/new_relic/agent/instrumentation/httpclient/chain.rb +24 -0
  158. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +37 -0
  159. data/lib/new_relic/agent/instrumentation/httpclient/prepend.rb +15 -0
  160. data/lib/new_relic/agent/instrumentation/httpclient.rb +10 -32
  161. data/lib/new_relic/agent/instrumentation/httprb/chain.rb +22 -0
  162. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +30 -0
  163. data/lib/new_relic/agent/instrumentation/httprb/prepend.rb +15 -0
  164. data/lib/new_relic/agent/instrumentation/httprb.rb +29 -0
  165. data/lib/new_relic/agent/instrumentation/ignore_actions.rb +4 -5
  166. data/lib/new_relic/agent/instrumentation/logger/chain.rb +21 -0
  167. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +66 -0
  168. data/lib/new_relic/agent/instrumentation/logger/prepend.rb +13 -0
  169. data/lib/new_relic/agent/instrumentation/logger.rb +26 -0
  170. data/lib/new_relic/agent/instrumentation/memcache/chain.rb +15 -0
  171. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +57 -128
  172. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +59 -0
  173. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +90 -0
  174. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +101 -0
  175. data/lib/new_relic/agent/instrumentation/memcache.rb +56 -72
  176. data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +13 -12
  177. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +5 -7
  178. data/lib/new_relic/agent/instrumentation/mongo.rb +5 -136
  179. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +21 -18
  180. data/lib/new_relic/agent/instrumentation/net_http/chain.rb +24 -0
  181. data/lib/new_relic/agent/instrumentation/{net_prepend.rb → net_http/instrumentation.rb} +13 -13
  182. data/lib/new_relic/agent/instrumentation/net_http/prepend.rb +21 -0
  183. data/lib/new_relic/agent/instrumentation/net_http.rb +44 -0
  184. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +10 -9
  185. data/lib/new_relic/agent/instrumentation/padrino/chain.rb +38 -0
  186. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +28 -0
  187. data/lib/new_relic/agent/instrumentation/padrino/prepend.rb +20 -0
  188. data/lib/new_relic/agent/instrumentation/padrino.rb +20 -58
  189. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +3 -3
  190. data/lib/new_relic/agent/instrumentation/queue_time.rb +8 -9
  191. data/lib/new_relic/agent/instrumentation/rack/chain.rb +66 -0
  192. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +33 -0
  193. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +75 -0
  194. data/lib/new_relic/agent/instrumentation/rack/prepend.rb +43 -0
  195. data/lib/new_relic/agent/instrumentation/rack.rb +30 -140
  196. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +16 -52
  197. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
  198. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +5 -4
  199. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +3 -3
  200. data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +3 -2
  201. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +13 -3
  202. data/lib/new_relic/agent/instrumentation/rake/chain.rb +20 -0
  203. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +149 -0
  204. data/lib/new_relic/agent/instrumentation/rake/prepend.rb +14 -0
  205. data/lib/new_relic/agent/instrumentation/rake.rb +16 -157
  206. data/lib/new_relic/agent/instrumentation/redis/chain.rb +45 -0
  207. data/lib/new_relic/agent/instrumentation/redis/constants.rb +17 -0
  208. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +72 -0
  209. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +16 -0
  210. data/lib/new_relic/agent/instrumentation/redis/prepend.rb +29 -0
  211. data/lib/new_relic/agent/instrumentation/redis.rb +18 -107
  212. data/lib/new_relic/agent/instrumentation/resque/chain.rb +21 -0
  213. data/lib/new_relic/agent/instrumentation/resque/helper.rb +19 -0
  214. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +34 -0
  215. data/lib/new_relic/agent/instrumentation/resque/prepend.rb +15 -0
  216. data/lib/new_relic/agent/instrumentation/resque.rb +28 -39
  217. data/lib/new_relic/agent/instrumentation/sequel.rb +14 -16
  218. data/lib/new_relic/agent/instrumentation/sequel_helper.rb +2 -2
  219. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +20 -0
  220. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +30 -0
  221. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +37 -0
  222. data/lib/new_relic/agent/instrumentation/sidekiq.rb +23 -64
  223. data/lib/new_relic/agent/instrumentation/sinatra/chain.rb +55 -0
  224. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +30 -36
  225. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +125 -0
  226. data/lib/new_relic/agent/instrumentation/sinatra/prepend.rb +33 -0
  227. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +2 -2
  228. data/lib/new_relic/agent/instrumentation/sinatra.rb +34 -163
  229. data/lib/new_relic/agent/instrumentation/sunspot.rb +11 -3
  230. data/lib/new_relic/agent/instrumentation/thread/chain.rb +24 -0
  231. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +28 -0
  232. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +22 -0
  233. data/lib/new_relic/agent/instrumentation/thread.rb +20 -0
  234. data/lib/new_relic/agent/instrumentation/tilt/chain.rb +24 -0
  235. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +41 -0
  236. data/lib/new_relic/agent/instrumentation/tilt/prepend.rb +13 -0
  237. data/lib/new_relic/agent/instrumentation/tilt.rb +25 -0
  238. data/lib/new_relic/agent/instrumentation/typhoeus/chain.rb +22 -0
  239. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +80 -0
  240. data/lib/new_relic/agent/instrumentation/typhoeus/prepend.rb +14 -0
  241. data/lib/new_relic/agent/instrumentation/typhoeus.rb +12 -91
  242. data/lib/new_relic/agent/instrumentation.rb +1 -1
  243. data/lib/new_relic/agent/internal_agent_error.rb +2 -2
  244. data/lib/new_relic/agent/javascript_instrumentor.rb +47 -41
  245. data/lib/new_relic/agent/linking_metadata.rb +44 -0
  246. data/lib/new_relic/agent/local_log_decorator.rb +37 -0
  247. data/lib/new_relic/agent/log_event_aggregator.rb +235 -0
  248. data/lib/new_relic/agent/log_once.rb +1 -1
  249. data/lib/new_relic/agent/log_priority.rb +20 -0
  250. data/lib/new_relic/agent/logging.rb +24 -21
  251. data/lib/new_relic/agent/memory_logger.rb +2 -2
  252. data/lib/new_relic/agent/messaging.rb +65 -81
  253. data/lib/new_relic/agent/method_tracer.rb +154 -149
  254. data/lib/new_relic/agent/method_tracer_helpers.rb +85 -3
  255. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +25 -17
  256. data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +5 -4
  257. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -2
  258. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +6 -9
  259. data/lib/new_relic/agent/monitors.rb +6 -7
  260. data/lib/new_relic/agent/new_relic_service/encoders.rb +6 -6
  261. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +5 -5
  262. data/lib/new_relic/agent/new_relic_service/marshaller.rb +2 -2
  263. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +5 -4
  264. data/lib/new_relic/agent/new_relic_service.rb +248 -196
  265. data/lib/new_relic/agent/{noticible_error.rb → noticeable_error.rb} +2 -5
  266. data/lib/new_relic/agent/null_logger.rb +7 -3
  267. data/lib/new_relic/agent/obfuscator.rb +8 -10
  268. data/lib/new_relic/agent/parameter_filtering.rb +24 -10
  269. data/lib/new_relic/agent/payload_metric_mapping.rb +9 -10
  270. data/lib/new_relic/agent/pipe_channel_manager.rb +27 -17
  271. data/lib/new_relic/agent/pipe_service.rb +8 -5
  272. data/lib/new_relic/agent/prepend_supportability.rb +2 -2
  273. data/lib/new_relic/agent/priority_sampled_buffer.rb +8 -11
  274. data/lib/new_relic/agent/range_extensions.rb +8 -28
  275. data/lib/new_relic/agent/rules_engine/replacement_rule.rb +11 -11
  276. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +13 -13
  277. data/lib/new_relic/agent/rules_engine.rb +5 -4
  278. data/lib/new_relic/agent/sampler.rb +3 -4
  279. data/lib/new_relic/agent/sampler_collection.rb +3 -4
  280. data/lib/new_relic/agent/samplers/cpu_sampler.rb +3 -2
  281. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +12 -9
  282. data/lib/new_relic/agent/samplers/memory_sampler.rb +24 -13
  283. data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
  284. data/lib/new_relic/agent/samplers/vm_sampler.rb +21 -19
  285. data/lib/new_relic/agent/span_event_aggregator.rb +12 -12
  286. data/lib/new_relic/agent/span_event_primitive.rb +62 -56
  287. data/lib/new_relic/agent/sql_sampler.rb +18 -18
  288. data/lib/new_relic/agent/stats.rb +78 -41
  289. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +9 -11
  290. data/lib/new_relic/agent/stats_engine/stats_hash.rb +12 -13
  291. data/lib/new_relic/agent/stats_engine.rb +8 -8
  292. data/lib/new_relic/agent/synthetics_event_aggregator.rb +7 -8
  293. data/lib/new_relic/agent/system_info.rb +85 -65
  294. data/lib/new_relic/agent/threading/agent_thread.rb +18 -14
  295. data/lib/new_relic/agent/threading/backtrace_node.rb +12 -13
  296. data/lib/new_relic/agent/threading/backtrace_service.rb +14 -14
  297. data/lib/new_relic/agent/threading/thread_profile.rb +23 -23
  298. data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
  299. data/lib/new_relic/agent/tracer.rb +76 -85
  300. data/lib/new_relic/agent/transaction/abstract_segment.rb +103 -40
  301. data/lib/new_relic/agent/transaction/datastore_segment.rb +21 -17
  302. data/lib/new_relic/agent/transaction/distributed_tracer.rb +63 -56
  303. data/lib/new_relic/agent/transaction/distributed_tracing.rb +43 -44
  304. data/lib/new_relic/agent/transaction/external_request_segment.rb +44 -34
  305. data/lib/new_relic/agent/transaction/message_broker_segment.rb +31 -36
  306. data/lib/new_relic/agent/transaction/request_attributes.rb +35 -35
  307. data/lib/new_relic/agent/transaction/segment.rb +14 -10
  308. data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -3
  309. data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
  310. data/lib/new_relic/agent/transaction/trace.rb +15 -11
  311. data/lib/new_relic/agent/transaction/trace_builder.rb +10 -10
  312. data/lib/new_relic/agent/transaction/trace_context.rb +35 -35
  313. data/lib/new_relic/agent/transaction/trace_node.rb +25 -24
  314. data/lib/new_relic/agent/transaction/tracing.rb +14 -11
  315. data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +4 -4
  316. data/lib/new_relic/agent/transaction.rb +164 -145
  317. data/lib/new_relic/agent/transaction_error_primitive.rb +27 -25
  318. data/lib/new_relic/agent/transaction_event_aggregator.rb +12 -12
  319. data/lib/new_relic/agent/transaction_event_primitive.rb +32 -33
  320. data/lib/new_relic/agent/transaction_event_recorder.rb +16 -15
  321. data/lib/new_relic/agent/transaction_metrics.rb +10 -9
  322. data/lib/new_relic/agent/transaction_sampler.rb +5 -6
  323. data/lib/new_relic/agent/transaction_time_aggregator.rb +26 -25
  324. data/lib/new_relic/agent/utilization/aws.rb +33 -3
  325. data/lib/new_relic/agent/utilization/azure.rb +3 -3
  326. data/lib/new_relic/agent/utilization/gcp.rb +7 -7
  327. data/lib/new_relic/agent/utilization/pcf.rb +5 -4
  328. data/lib/new_relic/agent/utilization/vendor.rb +43 -28
  329. data/lib/new_relic/agent/utilization_data.rb +7 -5
  330. data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
  331. data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +2 -2
  332. data/lib/new_relic/agent/vm/mri_vm.rb +40 -15
  333. data/lib/new_relic/agent/vm/snapshot.rb +5 -5
  334. data/lib/new_relic/agent/vm.rb +1 -1
  335. data/lib/new_relic/agent/worker_loop.rb +10 -12
  336. data/lib/new_relic/agent.rb +64 -75
  337. data/lib/new_relic/cli/command.rb +20 -22
  338. data/lib/new_relic/cli/commands/deployments.rb +92 -42
  339. data/lib/new_relic/cli/commands/install.rb +12 -15
  340. data/lib/new_relic/coerce.rb +15 -13
  341. data/lib/new_relic/collection_helper.rb +50 -48
  342. data/lib/new_relic/constants.rb +1 -4
  343. data/lib/new_relic/control/class_methods.rb +3 -3
  344. data/lib/new_relic/control/frameworks/external.rb +2 -2
  345. data/lib/new_relic/control/frameworks/rails.rb +23 -17
  346. data/lib/new_relic/control/frameworks/rails3.rb +3 -4
  347. data/lib/new_relic/control/frameworks/rails4.rb +1 -1
  348. data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
  349. data/lib/new_relic/control/frameworks/ruby.rb +3 -3
  350. data/lib/new_relic/control/frameworks/sinatra.rb +7 -1
  351. data/lib/new_relic/control/frameworks.rb +1 -1
  352. data/lib/new_relic/control/instance_methods.rb +23 -45
  353. data/lib/new_relic/control/instrumentation.rb +39 -11
  354. data/lib/new_relic/control/private_instance_methods.rb +48 -0
  355. data/lib/new_relic/control/server_methods.rb +3 -4
  356. data/lib/new_relic/control.rb +1 -2
  357. data/lib/new_relic/delayed_job_injection.rb +1 -1
  358. data/lib/new_relic/dependency_detection.rb +126 -19
  359. data/lib/new_relic/environment_report.rb +40 -32
  360. data/lib/new_relic/helper.rb +48 -7
  361. data/lib/new_relic/language_support.rb +29 -5
  362. data/lib/new_relic/latest_changes.rb +7 -6
  363. data/lib/new_relic/local_environment.rb +24 -18
  364. data/lib/new_relic/metric_data.rb +31 -26
  365. data/lib/new_relic/metric_spec.rb +8 -6
  366. data/lib/new_relic/noticed_error.rb +22 -30
  367. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  368. data/lib/new_relic/rack/agent_middleware.rb +5 -3
  369. data/lib/new_relic/rack/browser_monitoring.rb +133 -123
  370. data/lib/new_relic/rack.rb +1 -1
  371. data/lib/new_relic/recipes/capistrano3.rb +3 -61
  372. data/lib/new_relic/recipes/capistrano_legacy.rb +23 -26
  373. data/lib/new_relic/recipes/helpers/send_deployment.rb +69 -0
  374. data/lib/new_relic/recipes.rb +1 -1
  375. data/lib/new_relic/supportability_helper.rb +9 -10
  376. data/lib/new_relic/traced_thread.rb +35 -0
  377. data/lib/new_relic/version.rb +6 -17
  378. data/lib/newrelic_rpm.rb +11 -35
  379. data/lib/sequel/extensions/newrelic_instrumentation.rb +12 -15
  380. data/lib/sequel/plugins/newrelic_instrumentation.rb +4 -10
  381. data/lib/tasks/all.rb +3 -3
  382. data/lib/tasks/config.rake +22 -117
  383. data/lib/tasks/coverage_report.rake +28 -0
  384. data/lib/tasks/helpers/config.html.erb +21 -0
  385. data/lib/tasks/{config.text.erb → helpers/config.text.erb} +0 -0
  386. data/lib/tasks/helpers/format.rb +123 -0
  387. data/lib/tasks/helpers/matches.rb +12 -0
  388. data/lib/tasks/helpers/prompt.rb +24 -0
  389. data/lib/tasks/helpers/removers.rb +33 -0
  390. data/lib/tasks/install.rake +4 -0
  391. data/lib/tasks/instrumentation_generator/README.md +63 -0
  392. data/lib/tasks/instrumentation_generator/TODO.md +33 -0
  393. data/lib/tasks/instrumentation_generator/instrumentation.thor +124 -0
  394. data/lib/tasks/instrumentation_generator/templates/Envfile.tt +9 -0
  395. data/lib/tasks/instrumentation_generator/templates/chain.tt +22 -0
  396. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +8 -0
  397. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +29 -0
  398. data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +13 -0
  399. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +3 -0
  400. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +19 -0
  401. data/lib/tasks/instrumentation_generator/templates/prepend.tt +13 -0
  402. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +3 -0
  403. data/lib/tasks/instrumentation_generator/templates/test.tt +15 -0
  404. data/lib/tasks/multiverse.rake +4 -0
  405. data/lib/tasks/multiverse.rb +5 -32
  406. data/lib/tasks/newrelic.rb +1 -1
  407. data/lib/tasks/tests.rake +10 -15
  408. data/newrelic.yml +648 -3
  409. data/newrelic_rpm.gemspec +25 -25
  410. data/recipes/newrelic.rb +2 -2
  411. data/test/agent_helper.rb +219 -178
  412. metadata +164 -122
  413. data/ROADMAP.md +0 -24
  414. data/bin/mongrel_rpm +0 -33
  415. data/cert/cacert.pem +0 -1177
  416. data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +0 -44
  417. data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +0 -53
  418. data/lib/new_relic/agent/instrumentation/excon/connection.rb +0 -49
  419. data/lib/new_relic/agent/instrumentation/http.rb +0 -49
  420. data/lib/new_relic/agent/instrumentation/merb/controller.rb +0 -44
  421. data/lib/new_relic/agent/instrumentation/merb/errors.rb +0 -33
  422. data/lib/new_relic/agent/instrumentation/net.rb +0 -70
  423. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +0 -125
  424. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +0 -46
  425. data/lib/new_relic/agent/supported_versions.rb +0 -275
  426. data/lib/new_relic/control/frameworks/merb.rb +0 -29
  427. data/lib/tasks/config.html.erb +0 -32
metadata CHANGED
@@ -1,89 +1,90 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.15.0
4
+ version: 8.13.1
5
5
  platform: ruby
6
6
  authors:
7
- - Rachel Klein
8
7
  - Tanna McClure
9
- - Michael Lang
8
+ - Kayla Reopelle
9
+ - James Bunch
10
+ - Hannah Ramadan
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2021-01-19 00:00:00.000000000 Z
14
+ date: 2022-11-21 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
- name: rake
17
+ name: bundler
17
18
  requirement: !ruby/object:Gem::Requirement
18
19
  requirements:
19
- - - '='
20
+ - - ">="
20
21
  - !ruby/object:Gem::Version
21
- version: 12.3.3
22
+ version: '0'
22
23
  type: :development
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
26
  requirements:
26
- - - '='
27
+ - - ">="
27
28
  - !ruby/object:Gem::Version
28
- version: 12.3.3
29
+ version: '0'
29
30
  - !ruby/object:Gem::Dependency
30
- name: rb-inotify
31
+ name: minitest
31
32
  requirement: !ruby/object:Gem::Requirement
32
33
  requirements:
33
34
  - - '='
34
35
  - !ruby/object:Gem::Version
35
- version: 0.9.10
36
+ version: 5.3.3
36
37
  type: :development
37
38
  prerelease: false
38
39
  version_requirements: !ruby/object:Gem::Requirement
39
40
  requirements:
40
41
  - - '='
41
42
  - !ruby/object:Gem::Version
42
- version: 0.9.10
43
+ version: 5.3.3
43
44
  - !ruby/object:Gem::Dependency
44
- name: listen
45
+ name: minitest-stub-const
45
46
  requirement: !ruby/object:Gem::Requirement
46
47
  requirements:
47
48
  - - '='
48
49
  - !ruby/object:Gem::Version
49
- version: 3.0.8
50
+ version: '0.6'
50
51
  type: :development
51
52
  prerelease: false
52
53
  version_requirements: !ruby/object:Gem::Requirement
53
54
  requirements:
54
55
  - - '='
55
56
  - !ruby/object:Gem::Version
56
- version: 3.0.8
57
+ version: '0.6'
57
58
  - !ruby/object:Gem::Dependency
58
- name: minitest
59
+ name: mocha
59
60
  requirement: !ruby/object:Gem::Requirement
60
61
  requirements:
61
- - - '='
62
+ - - "~>"
62
63
  - !ruby/object:Gem::Version
63
- version: 4.7.5
64
+ version: '1.16'
64
65
  type: :development
65
66
  prerelease: false
66
67
  version_requirements: !ruby/object:Gem::Requirement
67
68
  requirements:
68
- - - '='
69
+ - - "~>"
69
70
  - !ruby/object:Gem::Version
70
- version: 4.7.5
71
+ version: '1.16'
71
72
  - !ruby/object:Gem::Dependency
72
- name: mocha
73
+ name: rake
73
74
  requirement: !ruby/object:Gem::Requirement
74
75
  requirements:
75
- - - "~>"
76
+ - - '='
76
77
  - !ruby/object:Gem::Version
77
- version: 1.9.0
78
+ version: 12.3.3
78
79
  type: :development
79
80
  prerelease: false
80
81
  version_requirements: !ruby/object:Gem::Requirement
81
82
  requirements:
82
- - - "~>"
83
+ - - '='
83
84
  - !ruby/object:Gem::Version
84
- version: 1.9.0
85
+ version: 12.3.3
85
86
  - !ruby/object:Gem::Dependency
86
- name: yard
87
+ name: simplecov
87
88
  requirement: !ruby/object:Gem::Requirement
88
89
  requirements:
89
90
  - - ">="
@@ -97,89 +98,19 @@ dependencies:
97
98
  - !ruby/object:Gem::Version
98
99
  version: '0'
99
100
  - !ruby/object:Gem::Dependency
100
- name: pry-nav
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: 0.3.0
106
- type: :development
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - "~>"
111
- - !ruby/object:Gem::Version
112
- version: 0.3.0
113
- - !ruby/object:Gem::Dependency
114
- name: pry-stack_explorer
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: 0.4.9
120
- type: :development
121
- prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: 0.4.9
127
- - !ruby/object:Gem::Dependency
128
- name: guard
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: 2.16.0
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: 2.16.0
141
- - !ruby/object:Gem::Dependency
142
- name: guard-minitest
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: 2.4.0
148
- type: :development
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
153
- - !ruby/object:Gem::Version
154
- version: 2.4.0
155
- - !ruby/object:Gem::Dependency
156
- name: hometown
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: 0.2.5
162
- type: :development
163
- prerelease: false
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - "~>"
167
- - !ruby/object:Gem::Version
168
- version: 0.2.5
169
- - !ruby/object:Gem::Dependency
170
- name: bundler
101
+ name: yard
171
102
  requirement: !ruby/object:Gem::Requirement
172
103
  requirements:
173
- - - ">="
104
+ - - ">"
174
105
  - !ruby/object:Gem::Version
175
- version: '0'
106
+ version: 0.9.26
176
107
  type: :development
177
108
  prerelease: false
178
109
  version_requirements: !ruby/object:Gem::Requirement
179
110
  requirements:
180
- - - ">="
111
+ - - ">"
181
112
  - !ruby/object:Gem::Version
182
- version: '0'
113
+ version: 0.9.26
183
114
  description: |
184
115
  New Relic is a performance management system, developed by New Relic,
185
116
  Inc (http://www.newrelic.com). New Relic provides you with deep
@@ -189,7 +120,6 @@ description: |
189
120
  https://github.com/newrelic/newrelic-ruby-agent/
190
121
  email: support@newrelic.com
191
122
  executables:
192
- - mongrel_rpm
193
123
  - newrelic_cmd
194
124
  - newrelic
195
125
  - nrdebug
@@ -203,28 +133,39 @@ extra_rdoc_files:
203
133
  files:
204
134
  - ".gitignore"
205
135
  - ".project"
136
+ - ".rubocop.yml"
137
+ - ".rubocop_todo.yml"
138
+ - ".simplecov"
139
+ - ".snyk"
206
140
  - ".yardopts"
141
+ - Brewfile
207
142
  - CHANGELOG.md
208
143
  - CONTRIBUTING.md
144
+ - DOCKER.md
145
+ - Dockerfile
209
146
  - Gemfile
210
147
  - Guardfile
211
148
  - LICENSE
212
149
  - README.md
213
- - ROADMAP.md
214
150
  - Rakefile
215
151
  - THIRD_PARTY_NOTICES.md
216
- - bin/mongrel_rpm
152
+ - Thorfile
217
153
  - bin/newrelic
218
154
  - bin/newrelic_cmd
219
155
  - bin/nrdebug
220
- - cert/cacert.pem
221
156
  - config.dot
222
157
  - config/database.yml
158
+ - docker-compose.yml
223
159
  - init.rb
224
160
  - install.rb
161
+ - lefthook.yml
225
162
  - lib/new_relic/agent.rb
226
163
  - lib/new_relic/agent/adaptive_sampler.rb
227
164
  - lib/new_relic/agent/agent.rb
165
+ - lib/new_relic/agent/agent/shutdown.rb
166
+ - lib/new_relic/agent/agent/special_startup.rb
167
+ - lib/new_relic/agent/agent/start_worker_thread.rb
168
+ - lib/new_relic/agent/agent/startup.rb
228
169
  - lib/new_relic/agent/agent_logger.rb
229
170
  - lib/new_relic/agent/attribute_filter.rb
230
171
  - lib/new_relic/agent/attribute_processing.rb
@@ -261,8 +202,7 @@ files:
261
202
  - lib/new_relic/agent/datastores/mongo.rb
262
203
  - lib/new_relic/agent/datastores/mongo/event_formatter.rb
263
204
  - lib/new_relic/agent/datastores/mongo/metric_translator.rb
264
- - lib/new_relic/agent/datastores/mongo/obfuscator.rb
265
- - lib/new_relic/agent/datastores/mongo/statement_formatter.rb
205
+ - lib/new_relic/agent/datastores/nosql_obfuscator.rb
266
206
  - lib/new_relic/agent/datastores/redis.rb
267
207
  - lib/new_relic/agent/deprecator.rb
268
208
  - lib/new_relic/agent/distributed_tracing.rb
@@ -277,6 +217,7 @@ files:
277
217
  - lib/new_relic/agent/encoding_normalizer.rb
278
218
  - lib/new_relic/agent/error_collector.rb
279
219
  - lib/new_relic/agent/error_event_aggregator.rb
220
+ - lib/new_relic/agent/error_filter.rb
280
221
  - lib/new_relic/agent/error_trace_aggregator.rb
281
222
  - lib/new_relic/agent/event_aggregator.rb
282
223
  - lib/new_relic/agent/event_buffer.rb
@@ -308,37 +249,86 @@ files:
308
249
  - lib/new_relic/agent/instrumentation/active_record_subscriber.rb
309
250
  - lib/new_relic/agent/instrumentation/active_storage.rb
310
251
  - lib/new_relic/agent/instrumentation/active_storage_subscriber.rb
252
+ - lib/new_relic/agent/instrumentation/active_support_logger.rb
253
+ - lib/new_relic/agent/instrumentation/active_support_logger/chain.rb
254
+ - lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb
255
+ - lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb
311
256
  - lib/new_relic/agent/instrumentation/acts_as_solr.rb
312
257
  - lib/new_relic/agent/instrumentation/authlogic.rb
313
258
  - lib/new_relic/agent/instrumentation/bunny.rb
259
+ - lib/new_relic/agent/instrumentation/bunny/chain.rb
260
+ - lib/new_relic/agent/instrumentation/bunny/instrumentation.rb
261
+ - lib/new_relic/agent/instrumentation/bunny/prepend.rb
314
262
  - lib/new_relic/agent/instrumentation/controller_instrumentation.rb
315
263
  - lib/new_relic/agent/instrumentation/curb.rb
264
+ - lib/new_relic/agent/instrumentation/curb/chain.rb
265
+ - lib/new_relic/agent/instrumentation/curb/instrumentation.rb
266
+ - lib/new_relic/agent/instrumentation/curb/prepend.rb
316
267
  - lib/new_relic/agent/instrumentation/data_mapper.rb
268
+ - lib/new_relic/agent/instrumentation/delayed_job/chain.rb
269
+ - lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb
270
+ - lib/new_relic/agent/instrumentation/delayed_job/prepend.rb
317
271
  - lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb
272
+ - lib/new_relic/agent/instrumentation/elasticsearch.rb
273
+ - lib/new_relic/agent/instrumentation/elasticsearch/chain.rb
274
+ - lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb
275
+ - lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb
318
276
  - lib/new_relic/agent/instrumentation/excon.rb
319
- - lib/new_relic/agent/instrumentation/excon/connection.rb
320
277
  - lib/new_relic/agent/instrumentation/excon/middleware.rb
321
278
  - lib/new_relic/agent/instrumentation/grape.rb
322
- - lib/new_relic/agent/instrumentation/http.rb
279
+ - lib/new_relic/agent/instrumentation/grape/chain.rb
280
+ - lib/new_relic/agent/instrumentation/grape/instrumentation.rb
281
+ - lib/new_relic/agent/instrumentation/grape/prepend.rb
282
+ - lib/new_relic/agent/instrumentation/grpc/client/chain.rb
283
+ - lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb
284
+ - lib/new_relic/agent/instrumentation/grpc/client/prepend.rb
285
+ - lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb
286
+ - lib/new_relic/agent/instrumentation/grpc/helper.rb
287
+ - lib/new_relic/agent/instrumentation/grpc/server/chain.rb
288
+ - lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb
289
+ - lib/new_relic/agent/instrumentation/grpc/server/rpc_desc_prepend.rb
290
+ - lib/new_relic/agent/instrumentation/grpc/server/rpc_server_prepend.rb
291
+ - lib/new_relic/agent/instrumentation/grpc_client.rb
292
+ - lib/new_relic/agent/instrumentation/grpc_server.rb
323
293
  - lib/new_relic/agent/instrumentation/httpclient.rb
294
+ - lib/new_relic/agent/instrumentation/httpclient/chain.rb
295
+ - lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb
296
+ - lib/new_relic/agent/instrumentation/httpclient/prepend.rb
297
+ - lib/new_relic/agent/instrumentation/httprb.rb
298
+ - lib/new_relic/agent/instrumentation/httprb/chain.rb
299
+ - lib/new_relic/agent/instrumentation/httprb/instrumentation.rb
300
+ - lib/new_relic/agent/instrumentation/httprb/prepend.rb
324
301
  - lib/new_relic/agent/instrumentation/ignore_actions.rb
302
+ - lib/new_relic/agent/instrumentation/logger.rb
303
+ - lib/new_relic/agent/instrumentation/logger/chain.rb
304
+ - lib/new_relic/agent/instrumentation/logger/instrumentation.rb
305
+ - lib/new_relic/agent/instrumentation/logger/prepend.rb
325
306
  - lib/new_relic/agent/instrumentation/memcache.rb
307
+ - lib/new_relic/agent/instrumentation/memcache/chain.rb
326
308
  - lib/new_relic/agent/instrumentation/memcache/dalli.rb
327
- - lib/new_relic/agent/instrumentation/merb/controller.rb
328
- - lib/new_relic/agent/instrumentation/merb/errors.rb
309
+ - lib/new_relic/agent/instrumentation/memcache/helper.rb
310
+ - lib/new_relic/agent/instrumentation/memcache/instrumentation.rb
311
+ - lib/new_relic/agent/instrumentation/memcache/prepend.rb
329
312
  - lib/new_relic/agent/instrumentation/middleware_proxy.rb
330
313
  - lib/new_relic/agent/instrumentation/middleware_tracing.rb
331
314
  - lib/new_relic/agent/instrumentation/mongo.rb
332
315
  - lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb
333
- - lib/new_relic/agent/instrumentation/net.rb
334
- - lib/new_relic/agent/instrumentation/net_prepend.rb
316
+ - lib/new_relic/agent/instrumentation/net_http.rb
317
+ - lib/new_relic/agent/instrumentation/net_http/chain.rb
318
+ - lib/new_relic/agent/instrumentation/net_http/instrumentation.rb
319
+ - lib/new_relic/agent/instrumentation/net_http/prepend.rb
335
320
  - lib/new_relic/agent/instrumentation/notifications_subscriber.rb
336
321
  - lib/new_relic/agent/instrumentation/padrino.rb
322
+ - lib/new_relic/agent/instrumentation/padrino/chain.rb
323
+ - lib/new_relic/agent/instrumentation/padrino/instrumentation.rb
324
+ - lib/new_relic/agent/instrumentation/padrino/prepend.rb
337
325
  - lib/new_relic/agent/instrumentation/passenger_instrumentation.rb
338
326
  - lib/new_relic/agent/instrumentation/queue_time.rb
339
327
  - lib/new_relic/agent/instrumentation/rack.rb
340
- - lib/new_relic/agent/instrumentation/rails/action_controller.rb
341
- - lib/new_relic/agent/instrumentation/rails/action_web_service.rb
328
+ - lib/new_relic/agent/instrumentation/rack/chain.rb
329
+ - lib/new_relic/agent/instrumentation/rack/helpers.rb
330
+ - lib/new_relic/agent/instrumentation/rack/instrumentation.rb
331
+ - lib/new_relic/agent/instrumentation/rack/prepend.rb
342
332
  - lib/new_relic/agent/instrumentation/rails3/action_controller.rb
343
333
  - lib/new_relic/agent/instrumentation/rails_middleware.rb
344
334
  - lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb
@@ -346,19 +336,52 @@ files:
346
336
  - lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb
347
337
  - lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb
348
338
  - lib/new_relic/agent/instrumentation/rake.rb
339
+ - lib/new_relic/agent/instrumentation/rake/chain.rb
340
+ - lib/new_relic/agent/instrumentation/rake/instrumentation.rb
341
+ - lib/new_relic/agent/instrumentation/rake/prepend.rb
349
342
  - lib/new_relic/agent/instrumentation/redis.rb
343
+ - lib/new_relic/agent/instrumentation/redis/chain.rb
344
+ - lib/new_relic/agent/instrumentation/redis/constants.rb
345
+ - lib/new_relic/agent/instrumentation/redis/instrumentation.rb
346
+ - lib/new_relic/agent/instrumentation/redis/middleware.rb
347
+ - lib/new_relic/agent/instrumentation/redis/prepend.rb
350
348
  - lib/new_relic/agent/instrumentation/resque.rb
349
+ - lib/new_relic/agent/instrumentation/resque/chain.rb
350
+ - lib/new_relic/agent/instrumentation/resque/helper.rb
351
+ - lib/new_relic/agent/instrumentation/resque/instrumentation.rb
352
+ - lib/new_relic/agent/instrumentation/resque/prepend.rb
351
353
  - lib/new_relic/agent/instrumentation/sequel.rb
352
354
  - lib/new_relic/agent/instrumentation/sequel_helper.rb
353
355
  - lib/new_relic/agent/instrumentation/sidekiq.rb
356
+ - lib/new_relic/agent/instrumentation/sidekiq/client.rb
357
+ - lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb
358
+ - lib/new_relic/agent/instrumentation/sidekiq/server.rb
354
359
  - lib/new_relic/agent/instrumentation/sinatra.rb
360
+ - lib/new_relic/agent/instrumentation/sinatra/chain.rb
355
361
  - lib/new_relic/agent/instrumentation/sinatra/ignorer.rb
362
+ - lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb
363
+ - lib/new_relic/agent/instrumentation/sinatra/prepend.rb
356
364
  - lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb
357
365
  - lib/new_relic/agent/instrumentation/sunspot.rb
366
+ - lib/new_relic/agent/instrumentation/thread.rb
367
+ - lib/new_relic/agent/instrumentation/thread/chain.rb
368
+ - lib/new_relic/agent/instrumentation/thread/instrumentation.rb
369
+ - lib/new_relic/agent/instrumentation/thread/prepend.rb
370
+ - lib/new_relic/agent/instrumentation/tilt.rb
371
+ - lib/new_relic/agent/instrumentation/tilt/chain.rb
372
+ - lib/new_relic/agent/instrumentation/tilt/instrumentation.rb
373
+ - lib/new_relic/agent/instrumentation/tilt/prepend.rb
358
374
  - lib/new_relic/agent/instrumentation/typhoeus.rb
375
+ - lib/new_relic/agent/instrumentation/typhoeus/chain.rb
376
+ - lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb
377
+ - lib/new_relic/agent/instrumentation/typhoeus/prepend.rb
359
378
  - lib/new_relic/agent/internal_agent_error.rb
360
379
  - lib/new_relic/agent/javascript_instrumentor.rb
380
+ - lib/new_relic/agent/linking_metadata.rb
381
+ - lib/new_relic/agent/local_log_decorator.rb
382
+ - lib/new_relic/agent/log_event_aggregator.rb
361
383
  - lib/new_relic/agent/log_once.rb
384
+ - lib/new_relic/agent/log_priority.rb
362
385
  - lib/new_relic/agent/logging.rb
363
386
  - lib/new_relic/agent/memory_logger.rb
364
387
  - lib/new_relic/agent/messaging.rb
@@ -374,7 +397,7 @@ files:
374
397
  - lib/new_relic/agent/new_relic_service/json_marshaller.rb
375
398
  - lib/new_relic/agent/new_relic_service/marshaller.rb
376
399
  - lib/new_relic/agent/new_relic_service/security_policy_settings.rb
377
- - lib/new_relic/agent/noticible_error.rb
400
+ - lib/new_relic/agent/noticeable_error.rb
378
401
  - lib/new_relic/agent/null_logger.rb
379
402
  - lib/new_relic/agent/obfuscator.rb
380
403
  - lib/new_relic/agent/parameter_filtering.rb
@@ -401,7 +424,6 @@ files:
401
424
  - lib/new_relic/agent/stats_engine.rb
402
425
  - lib/new_relic/agent/stats_engine/gc_profiler.rb
403
426
  - lib/new_relic/agent/stats_engine/stats_hash.rb
404
- - lib/new_relic/agent/supported_versions.rb
405
427
  - lib/new_relic/agent/synthetics_event_aggregator.rb
406
428
  - lib/new_relic/agent/system_info.rb
407
429
  - lib/new_relic/agent/threading/agent_thread.rb
@@ -456,7 +478,6 @@ files:
456
478
  - lib/new_relic/control/class_methods.rb
457
479
  - lib/new_relic/control/frameworks.rb
458
480
  - lib/new_relic/control/frameworks/external.rb
459
- - lib/new_relic/control/frameworks/merb.rb
460
481
  - lib/new_relic/control/frameworks/rails.rb
461
482
  - lib/new_relic/control/frameworks/rails3.rb
462
483
  - lib/new_relic/control/frameworks/rails4.rb
@@ -465,6 +486,7 @@ files:
465
486
  - lib/new_relic/control/frameworks/sinatra.rb
466
487
  - lib/new_relic/control/instance_methods.rb
467
488
  - lib/new_relic/control/instrumentation.rb
489
+ - lib/new_relic/control/private_instance_methods.rb
468
490
  - lib/new_relic/control/server_methods.rb
469
491
  - lib/new_relic/delayed_job_injection.rb
470
492
  - lib/new_relic/dependency_detection.rb
@@ -483,16 +505,36 @@ files:
483
505
  - lib/new_relic/recipes.rb
484
506
  - lib/new_relic/recipes/capistrano3.rb
485
507
  - lib/new_relic/recipes/capistrano_legacy.rb
508
+ - lib/new_relic/recipes/helpers/send_deployment.rb
486
509
  - lib/new_relic/supportability_helper.rb
510
+ - lib/new_relic/traced_thread.rb
487
511
  - lib/new_relic/version.rb
488
512
  - lib/newrelic_rpm.rb
489
513
  - lib/sequel/extensions/newrelic_instrumentation.rb
490
514
  - lib/sequel/plugins/newrelic_instrumentation.rb
491
515
  - lib/tasks/all.rb
492
- - lib/tasks/config.html.erb
493
516
  - lib/tasks/config.rake
494
- - lib/tasks/config.text.erb
517
+ - lib/tasks/coverage_report.rake
518
+ - lib/tasks/helpers/config.html.erb
519
+ - lib/tasks/helpers/config.text.erb
520
+ - lib/tasks/helpers/format.rb
521
+ - lib/tasks/helpers/matches.rb
522
+ - lib/tasks/helpers/prompt.rb
523
+ - lib/tasks/helpers/removers.rb
495
524
  - lib/tasks/install.rake
525
+ - lib/tasks/instrumentation_generator/README.md
526
+ - lib/tasks/instrumentation_generator/TODO.md
527
+ - lib/tasks/instrumentation_generator/instrumentation.thor
528
+ - lib/tasks/instrumentation_generator/templates/Envfile.tt
529
+ - lib/tasks/instrumentation_generator/templates/chain.tt
530
+ - lib/tasks/instrumentation_generator/templates/chain_method.tt
531
+ - lib/tasks/instrumentation_generator/templates/dependency_detection.tt
532
+ - lib/tasks/instrumentation_generator/templates/instrumentation.tt
533
+ - lib/tasks/instrumentation_generator/templates/instrumentation_method.tt
534
+ - lib/tasks/instrumentation_generator/templates/newrelic.yml.tt
535
+ - lib/tasks/instrumentation_generator/templates/prepend.tt
536
+ - lib/tasks/instrumentation_generator/templates/prepend_method.tt
537
+ - lib/tasks/instrumentation_generator/templates/test.tt
496
538
  - lib/tasks/multiverse.rake
497
539
  - lib/tasks/multiverse.rb
498
540
  - lib/tasks/newrelic.rb
@@ -518,14 +560,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
518
560
  requirements:
519
561
  - - ">="
520
562
  - !ruby/object:Gem::Version
521
- version: 2.0.0
563
+ version: 2.2.0
522
564
  required_rubygems_version: !ruby/object:Gem::Requirement
523
565
  requirements:
524
566
  - - ">"
525
567
  - !ruby/object:Gem::Version
526
568
  version: 1.3.1
527
569
  requirements: []
528
- rubygems_version: 3.1.4
570
+ rubygems_version: 3.1.6
529
571
  signing_key:
530
572
  specification_version: 4
531
573
  summary: New Relic Ruby Agent
data/ROADMAP.md DELETED
@@ -1,24 +0,0 @@
1
- # Ruby Agent Roadmap
2
-
3
- ## Product Vision
4
- The goal of the Ruby agent is to provide complete visibility into the health of your service. The agent provides metrics about the runtime health of your service and the process it runs in, and traces that show how specific requests are performing. It also provides information about the environment in which it is running, so you can identify issues with specific hosts, regions, deployments, and other facets.
5
-
6
- New Relic is moving toward OpenTelemetry. OpenTelemetry is a unified standard for service instrumentation. You will soon see an updated version of the agent that uses the OpenTelemetry SDK and auto-instrumentation as its foundation. OpenTelemetry will include a broad set of high-quality community-contributed instrumentation and a powerful vendor-neutral API for adding your own instrumentation.
7
-
8
-
9
- ## Roadmap
10
- ### Description
11
- This roadmap project is broken down into the following sections:
12
-
13
- - **Now**:
14
- - This section contains features that are currently in progress.
15
- - **Next**:
16
- - This section contains work planned within the next three months. These features may still be deprioritized and moved to Future.
17
- - **Future**:
18
- - This section is for ideas for future work that is aligned with the product vision and possible opportunities for community contribution. It contains a list of features that anyone can implement. No guarantees can be provided on if or when these features will be completed.
19
-
20
-
21
- **The roadmap project is found [here](https://github.com/orgs/newrelic/projects/12)**
22
-
23
- #### Disclaimers
24
- > This roadmap is subject to change at any time. Future items should not be considered commitments.
data/bin/mongrel_rpm DELETED
@@ -1,33 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require 'rack'
4
- require 'rack/handler/mongrel'
5
- require 'optparse'
6
-
7
- port = 3000
8
- options = { }
9
- appname = nil
10
- OptionParser.new do |opts|
11
- opts.banner = "Usage: #{File.basename($0)} [options] [app_name]"
12
- opts.on("-p", "--port=port", Integer, "default: #{port}") { | port | }
13
- opts.on("--[no-]logging", "turn off request logging" ) { | l | options[:logging] = l }
14
- opts.on("--license=license_key", "override license key" ) { | l | options[:license_key] = l }
15
- opts.on("--install", "install a newrelic.yml template" ) { | l | options[:install] = true }
16
- opts.separator ""
17
- opts.separator "app_name is the name of the application where the metrics will be stored"
18
- opts.separator ""
19
- # The rackup file references this var
20
- appname = opts.parse!(ARGV.clone).first
21
- end
22
-
23
- options[:app_name] = appname if appname
24
-
25
- ru_file = File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "new_relic", "rack", "mongrel_rpm.ru"))
26
- rackup_code = File.read ru_file
27
- builder = Rack::Builder.new { eval rackup_code, binding, ru_file }
28
-
29
- options = { :Host => '127.0.0.1', :Port => port }
30
- Rack::Handler::Mongrel.run(builder.to_app, options) do | server |
31
- NewRelic::Agent.logger.info "Started Mongrel listening for '#{NewRelic::Control.instance.app_names.join(" and ")}' data at #{server.host}:#{server.port}"
32
- end
33
-