newrelic_rpm 9.1.0 → 9.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +27 -0
  3. data/CHANGELOG.md +841 -7
  4. data/CONTRIBUTING.md +2 -9
  5. data/README.md +25 -22
  6. data/Rakefile +2 -2
  7. data/bin/newrelic +3 -9
  8. data/bin/newrelic_rpm +15 -0
  9. data/init.rb +2 -2
  10. data/lib/boot/strap.rb +102 -0
  11. data/lib/new_relic/agent/agent.rb +11 -2
  12. data/lib/new_relic/agent/agent_helpers/connect.rb +13 -8
  13. data/lib/new_relic/agent/agent_helpers/harvest.rb +3 -0
  14. data/lib/new_relic/agent/agent_helpers/shutdown.rb +4 -1
  15. data/lib/new_relic/agent/agent_helpers/special_startup.rb +1 -1
  16. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +4 -3
  17. data/lib/new_relic/agent/agent_helpers/startup.rb +11 -3
  18. data/lib/new_relic/agent/agent_logger.rb +3 -1
  19. data/lib/new_relic/agent/attribute_filter.rb +3 -3
  20. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  21. data/lib/new_relic/agent/aws.rb +68 -0
  22. data/lib/new_relic/agent/configuration/default_source.rb +918 -166
  23. data/lib/new_relic/agent/configuration/environment_source.rb +15 -3
  24. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -0
  25. data/lib/new_relic/agent/configuration/manager.rb +72 -11
  26. data/lib/new_relic/agent/configuration/security_policy_source.rb +11 -0
  27. data/lib/new_relic/agent/configuration/yaml_source.rb +22 -2
  28. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  29. data/lib/new_relic/agent/custom_event_aggregator.rb +27 -1
  30. data/lib/new_relic/agent/database/obfuscation_helpers.rb +11 -11
  31. data/lib/new_relic/agent/database/obfuscator.rb +1 -0
  32. data/lib/new_relic/agent/database.rb +41 -1
  33. data/lib/new_relic/agent/database_adapter.rb +1 -1
  34. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
  35. data/lib/new_relic/agent/datastores/redis.rb +1 -1
  36. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +1 -1
  37. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +4 -8
  38. data/lib/new_relic/agent/distributed_tracing.rb +5 -3
  39. data/lib/new_relic/agent/error_collector.rb +40 -11
  40. data/lib/new_relic/agent/event_loop.rb +1 -1
  41. data/lib/new_relic/agent/external.rb +2 -0
  42. data/lib/new_relic/agent/harvester.rb +1 -1
  43. data/lib/new_relic/agent/health_check.rb +136 -0
  44. data/lib/new_relic/agent/http_clients/abstract.rb +4 -0
  45. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +80 -0
  46. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +1 -3
  47. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +109 -0
  48. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +0 -3
  49. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +1 -3
  50. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +0 -3
  51. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +91 -0
  52. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +1 -4
  53. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +0 -3
  54. data/lib/new_relic/agent/http_clients/uri_util.rb +1 -1
  55. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +1 -1
  56. data/lib/new_relic/agent/instrumentation/action_dispatch.rb +1 -1
  57. data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +1 -1
  58. data/lib/new_relic/agent/instrumentation/action_mailbox.rb +1 -1
  59. data/lib/new_relic/agent/instrumentation/action_mailer.rb +1 -1
  60. data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
  61. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +6 -2
  62. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -16
  63. data/lib/new_relic/agent/instrumentation/active_record.rb +8 -13
  64. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +8 -5
  65. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +13 -10
  66. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  67. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +9 -16
  68. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  69. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +17 -0
  70. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  71. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +21 -0
  72. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
  73. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -3
  74. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  75. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  76. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  77. data/lib/new_relic/agent/instrumentation/async_http.rb +27 -0
  78. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/chain.rb +21 -0
  79. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb +66 -0
  80. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/prepend.rb +15 -0
  81. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose.rb +22 -0
  82. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/chain.rb +21 -0
  83. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/instrumentation.rb +91 -0
  84. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/prepend.rb +15 -0
  85. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis.rb +22 -0
  86. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/chain.rb +33 -0
  87. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/instrumentation.rb +93 -0
  88. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/prepend.rb +23 -0
  89. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda.rb +23 -0
  90. data/lib/new_relic/agent/instrumentation/aws_sqs/chain.rb +37 -0
  91. data/lib/new_relic/agent/instrumentation/aws_sqs/instrumentation.rb +67 -0
  92. data/lib/new_relic/agent/instrumentation/aws_sqs/prepend.rb +21 -0
  93. data/lib/new_relic/agent/instrumentation/aws_sqs.rb +23 -0
  94. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  95. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +23 -0
  96. data/lib/new_relic/agent/instrumentation/bunny.rb +4 -5
  97. data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +1 -1
  98. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +3 -4
  99. data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +1 -1
  100. data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +2 -3
  101. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +5 -2
  102. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +4 -0
  103. data/lib/new_relic/agent/instrumentation/curb.rb +4 -5
  104. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -0
  105. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +3 -0
  106. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +0 -23
  107. data/lib/new_relic/agent/instrumentation/dynamodb/chain.rb +27 -0
  108. data/lib/new_relic/agent/instrumentation/dynamodb/instrumentation.rb +64 -0
  109. data/lib/new_relic/agent/instrumentation/dynamodb/prepend.rb +19 -0
  110. data/lib/new_relic/agent/instrumentation/dynamodb.rb +23 -0
  111. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +2 -3
  112. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +65 -10
  113. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +2 -4
  114. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  115. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  116. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  117. data/lib/new_relic/agent/instrumentation/ethon.rb +35 -0
  118. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -0
  119. data/lib/new_relic/agent/instrumentation/excon.rb +1 -17
  120. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +11 -4
  121. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +2 -6
  122. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +10 -3
  123. data/lib/new_relic/agent/instrumentation/fiber.rb +1 -3
  124. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -3
  125. data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
  126. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +1 -1
  127. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +5 -2
  128. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +1 -1
  129. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +1 -1
  130. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +5 -1
  131. data/lib/new_relic/agent/instrumentation/grpc_client.rb +2 -2
  132. data/lib/new_relic/agent/instrumentation/grpc_server.rb +2 -2
  133. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
  134. data/lib/new_relic/agent/instrumentation/httpclient.rb +1 -5
  135. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
  136. data/lib/new_relic/agent/instrumentation/httprb.rb +0 -1
  137. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  138. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  139. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  140. data/lib/new_relic/agent/instrumentation/httpx.rb +23 -0
  141. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
  142. data/lib/new_relic/agent/instrumentation/logger.rb +1 -3
  143. data/lib/new_relic/agent/instrumentation/logstasher/chain.rb +21 -0
  144. data/lib/new_relic/agent/instrumentation/logstasher/instrumentation.rb +24 -0
  145. data/lib/new_relic/agent/instrumentation/logstasher/prepend.rb +13 -0
  146. data/lib/new_relic/agent/instrumentation/logstasher.rb +25 -0
  147. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +4 -2
  148. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +2 -2
  149. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +13 -4
  150. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +4 -2
  151. data/lib/new_relic/agent/instrumentation/memcache.rb +4 -5
  152. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +3 -5
  153. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +13 -3
  154. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -1
  155. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +4 -2
  156. data/lib/new_relic/agent/instrumentation/opensearch/chain.rb +21 -0
  157. data/lib/new_relic/agent/instrumentation/opensearch/instrumentation.rb +66 -0
  158. data/lib/new_relic/agent/instrumentation/opensearch/prepend.rb +13 -0
  159. data/lib/new_relic/agent/instrumentation/opensearch.rb +23 -0
  160. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +4 -0
  161. data/lib/new_relic/agent/instrumentation/padrino.rb +3 -3
  162. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  163. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +9 -0
  164. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
  165. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +1 -1
  166. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +10 -5
  167. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +4 -0
  168. data/lib/new_relic/agent/instrumentation/rake.rb +1 -2
  169. data/lib/new_relic/agent/instrumentation/rdkafka/chain.rb +72 -0
  170. data/lib/new_relic/agent/instrumentation/rdkafka/instrumentation.rb +70 -0
  171. data/lib/new_relic/agent/instrumentation/rdkafka/prepend.rb +67 -0
  172. data/lib/new_relic/agent/instrumentation/rdkafka.rb +25 -0
  173. data/lib/new_relic/agent/instrumentation/redis/cluster_middleware.rb +26 -0
  174. data/lib/new_relic/agent/instrumentation/redis/constants.rb +2 -2
  175. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +18 -11
  176. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +3 -0
  177. data/lib/new_relic/agent/instrumentation/redis.rb +11 -5
  178. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
  179. data/lib/new_relic/agent/instrumentation/resque.rb +8 -6
  180. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  181. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  182. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
  183. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  184. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
  185. data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
  186. data/lib/new_relic/agent/instrumentation/ruby_kafka/chain.rb +55 -0
  187. data/lib/new_relic/agent/instrumentation/ruby_kafka/instrumentation.rb +67 -0
  188. data/lib/new_relic/agent/instrumentation/ruby_kafka/prepend.rb +60 -0
  189. data/lib/new_relic/agent/instrumentation/ruby_kafka.rb +25 -0
  190. data/lib/new_relic/agent/instrumentation/ruby_openai/chain.rb +36 -0
  191. data/lib/new_relic/agent/instrumentation/ruby_openai/instrumentation.rb +196 -0
  192. data/lib/new_relic/agent/instrumentation/ruby_openai/prepend.rb +20 -0
  193. data/lib/new_relic/agent/instrumentation/ruby_openai.rb +35 -0
  194. data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
  195. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
  196. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delay_extensions.rb +24 -0
  197. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +2 -2
  198. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
  199. data/lib/new_relic/agent/instrumentation/sidekiq.rb +13 -16
  200. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  201. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +4 -0
  202. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -3
  203. data/lib/new_relic/agent/instrumentation/sinatra.rb +3 -19
  204. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  205. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +98 -0
  206. data/lib/new_relic/agent/instrumentation/thread/chain.rb +1 -1
  207. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +1 -5
  208. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +1 -1
  209. data/lib/new_relic/agent/instrumentation/thread.rb +0 -2
  210. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +4 -0
  211. data/lib/new_relic/agent/instrumentation/tilt.rb +0 -4
  212. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +7 -3
  213. data/lib/new_relic/agent/instrumentation/typhoeus.rb +0 -1
  214. data/lib/new_relic/agent/instrumentation/view_component/chain.rb +21 -0
  215. data/lib/new_relic/agent/instrumentation/view_component/instrumentation.rb +45 -0
  216. data/lib/{tasks/instrumentation_generator/templates/instrumentation.tt → new_relic/agent/instrumentation/view_component/prepend.rb} +4 -4
  217. data/lib/new_relic/agent/instrumentation/view_component.rb +24 -0
  218. data/lib/new_relic/agent/javascript_instrumentor.rb +2 -4
  219. data/lib/new_relic/agent/llm/chat_completion_message.rb +25 -0
  220. data/lib/new_relic/agent/llm/chat_completion_summary.rb +66 -0
  221. data/lib/new_relic/agent/llm/embedding.rb +60 -0
  222. data/lib/new_relic/agent/llm/llm_event.rb +95 -0
  223. data/lib/new_relic/agent/llm/response_headers.rb +80 -0
  224. data/lib/new_relic/agent/llm.rb +49 -0
  225. data/lib/new_relic/agent/local_log_decorator.rb +20 -3
  226. data/lib/new_relic/agent/log_event_aggregator.rb +149 -26
  227. data/lib/new_relic/agent/log_event_attributes.rb +115 -0
  228. data/lib/new_relic/agent/logging.rb +5 -5
  229. data/lib/new_relic/agent/messaging.rb +18 -7
  230. data/lib/new_relic/agent/method_tracer.rb +4 -1
  231. data/lib/new_relic/agent/method_tracer_helpers.rb +26 -5
  232. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
  233. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
  234. data/lib/new_relic/agent/new_relic_service/encoders.rb +2 -2
  235. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  236. data/lib/new_relic/agent/new_relic_service.rb +61 -28
  237. data/lib/new_relic/agent/obfuscator.rb +0 -2
  238. data/lib/new_relic/agent/opentelemetry/context/propagation/trace_propagator.rb +66 -0
  239. data/lib/new_relic/agent/opentelemetry/context/propagation.rb +15 -0
  240. data/lib/{tasks/instrumentation_generator/templates/Envfile.tt → new_relic/agent/opentelemetry/context.rb} +9 -5
  241. data/lib/new_relic/agent/opentelemetry/trace/span.rb +31 -0
  242. data/lib/new_relic/agent/opentelemetry/trace/tracer.rb +129 -0
  243. data/lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb +18 -0
  244. data/lib/new_relic/agent/opentelemetry/trace.rb +15 -0
  245. data/lib/new_relic/agent/opentelemetry/transaction_patch.rb +69 -0
  246. data/lib/new_relic/agent/opentelemetry_bridge.rb +32 -0
  247. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  248. data/lib/new_relic/agent/pipe_channel_manager.rb +2 -2
  249. data/lib/new_relic/agent/pipe_service.rb +1 -1
  250. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -2
  251. data/lib/new_relic/agent/rules_engine.rb +1 -1
  252. data/lib/new_relic/agent/sampler.rb +1 -0
  253. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  254. data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
  255. data/lib/new_relic/agent/serverless_handler.rb +406 -0
  256. data/lib/new_relic/agent/serverless_handler_event_sources.json +155 -0
  257. data/lib/new_relic/agent/serverless_handler_event_sources.rb +49 -0
  258. data/lib/new_relic/agent/span_event_primitive.rb +32 -15
  259. data/lib/new_relic/agent/sql_sampler.rb +0 -1
  260. data/lib/new_relic/agent/system_info.rb +40 -0
  261. data/lib/new_relic/agent/threading/agent_thread.rb +1 -2
  262. data/lib/new_relic/agent/threading/backtrace_node.rb +10 -1
  263. data/lib/new_relic/agent/tracer.rb +16 -16
  264. data/lib/new_relic/agent/transaction/abstract_segment.rb +103 -41
  265. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  266. data/lib/new_relic/agent/transaction/distributed_tracer.rb +3 -3
  267. data/lib/new_relic/agent/transaction/distributed_tracing.rb +7 -8
  268. data/lib/new_relic/agent/transaction/external_request_segment.rb +5 -12
  269. data/lib/new_relic/agent/transaction/message_broker_segment.rb +5 -3
  270. data/lib/new_relic/agent/transaction/request_attributes.rb +54 -11
  271. data/lib/new_relic/agent/transaction/trace_context.rb +34 -5
  272. data/lib/new_relic/agent/transaction/tracing.rb +20 -4
  273. data/lib/new_relic/agent/transaction.rb +38 -13
  274. data/lib/new_relic/agent/transaction_error_primitive.rb +39 -19
  275. data/lib/new_relic/agent/transaction_event_primitive.rb +19 -0
  276. data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
  277. data/lib/new_relic/agent/utilization/ecs.rb +22 -0
  278. data/lib/new_relic/agent/utilization/ecs_v4.rb +22 -0
  279. data/lib/new_relic/agent/utilization/gcp.rb +1 -3
  280. data/lib/new_relic/agent/utilization/vendor.rb +5 -7
  281. data/lib/new_relic/agent/utilization_data.rb +40 -5
  282. data/lib/new_relic/agent/vm/{mri_vm.rb → c_ruby_vm.rb} +10 -18
  283. data/lib/new_relic/agent/vm.rb +2 -2
  284. data/lib/new_relic/agent/worker_loop.rb +1 -1
  285. data/lib/new_relic/agent.rb +286 -17
  286. data/lib/new_relic/base64.rb +25 -0
  287. data/lib/new_relic/cli/command.rb +6 -3
  288. data/lib/new_relic/constants.rb +8 -0
  289. data/lib/new_relic/control/class_methods.rb +1 -7
  290. data/lib/new_relic/control/frameworks/grape.rb +14 -0
  291. data/lib/new_relic/control/frameworks/padrino.rb +14 -0
  292. data/lib/new_relic/control/frameworks/rails.rb +17 -5
  293. data/lib/new_relic/control/frameworks/rails4.rb +1 -3
  294. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  295. data/lib/new_relic/control/instance_methods.rb +13 -0
  296. data/lib/new_relic/control/instrumentation.rb +2 -16
  297. data/lib/new_relic/control/private_instance_methods.rb +4 -0
  298. data/lib/new_relic/control/security_interface.rb +57 -0
  299. data/lib/new_relic/control.rb +1 -1
  300. data/lib/new_relic/dependency_detection.rb +25 -13
  301. data/lib/new_relic/environment_report.rb +2 -2
  302. data/lib/new_relic/helper.rb +22 -0
  303. data/lib/new_relic/language_support.rb +12 -1
  304. data/lib/new_relic/latest_changes.rb +1 -1
  305. data/lib/new_relic/local_environment.rb +31 -18
  306. data/lib/new_relic/noticed_error.rb +5 -2
  307. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  308. data/lib/new_relic/rack/agent_middleware.rb +0 -16
  309. data/lib/new_relic/rack/browser_monitoring.rb +29 -13
  310. data/lib/new_relic/supportability_helper.rb +5 -1
  311. data/lib/new_relic/thread_local_storage.rb +31 -0
  312. data/lib/new_relic/traced_thread.rb +2 -3
  313. data/lib/new_relic/version.rb +1 -1
  314. data/lib/sequel/extensions/new_relic_instrumentation.rb +4 -3
  315. data/lib/tasks/bump_version.rake +21 -0
  316. data/lib/tasks/config.rake +11 -5
  317. data/lib/tasks/coverage_report.rake +1 -1
  318. data/lib/tasks/gha.rake +31 -0
  319. data/lib/tasks/helpers/config.html.erb +94 -0
  320. data/lib/tasks/helpers/format.rb +11 -7
  321. data/lib/tasks/helpers/newrelicyml.rb +211 -0
  322. data/lib/tasks/helpers/version_bump.rb +62 -0
  323. data/lib/tasks/newrelic.rb +1 -0
  324. data/lib/tasks/newrelicyml.rake +13 -0
  325. data/lib/tasks/tests.rake +71 -0
  326. data/newrelic.yml +657 -251
  327. data/newrelic_rpm.gemspec +17 -10
  328. data/test/agent_helper.rb +38 -4
  329. metadata +230 -44
  330. data/.gitignore +0 -43
  331. data/.project +0 -23
  332. data/.rubocop.yml +0 -1909
  333. data/.rubocop_todo.yml +0 -61
  334. data/.simplecov +0 -15
  335. data/.snyk +0 -11
  336. data/.yardopts +0 -27
  337. data/Brewfile +0 -12
  338. data/DOCKER.md +0 -167
  339. data/Dockerfile +0 -10
  340. data/Guardfile +0 -26
  341. data/bin/newrelic_cmd +0 -6
  342. data/config/database.yml +0 -5
  343. data/config.dot +0 -278
  344. data/docker-compose.yml +0 -107
  345. data/lefthook.yml +0 -9
  346. data/lib/new_relic/agent/range_extensions.rb +0 -27
  347. data/lib/tasks/helpers/removers.rb +0 -33
  348. data/lib/tasks/instrumentation_generator/README.md +0 -63
  349. data/lib/tasks/instrumentation_generator/TODO.md +0 -33
  350. data/lib/tasks/instrumentation_generator/instrumentation.thor +0 -121
  351. data/lib/tasks/instrumentation_generator/templates/chain.tt +0 -22
  352. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +0 -8
  353. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +0 -29
  354. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +0 -3
  355. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +0 -19
  356. data/lib/tasks/instrumentation_generator/templates/prepend.tt +0 -13
  357. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +0 -3
  358. data/lib/tasks/instrumentation_generator/templates/test.tt +0 -15
  359. data/lib/tasks/multiverse.rake +0 -6
  360. data/lib/tasks/multiverse.rb +0 -83
data/.rubocop_todo.yml DELETED
@@ -1,61 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2023-02-02 15:27:55 UTC using RuboCop version 1.44.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: 422
10
- # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
11
- Metrics/AbcSize:
12
- Max: 40
13
- Exclude:
14
- - infinite_tracing/test/**/*
15
- - lib/new_relic/cli/commands/deployments.rb
16
- - test/**/*
17
-
18
- # This cop supports safe autocorrection (--autocorrect).
19
- Minitest/AssertInDelta:
20
- Enabled: true
21
-
22
- # Offense count: 7
23
- Minitest/AssertRaisesCompoundBody:
24
- Exclude:
25
- - 'test/new_relic/agent/collector_response_code_test.rb'
26
- - 'test/new_relic/agent/new_relic_service_test.rb'
27
- - 'test/new_relic/cli/commands/deployments_test.rb'
28
-
29
- # Offense count: 4
30
- Minitest/DuplicateTestRun:
31
- Exclude:
32
- - 'test/multiverse/suites/rails/error_tracing_test.rb'
33
- - 'test/multiverse/suites/sinatra/ignoring_test.rb'
34
-
35
- # Offense count: 1
36
- # This cop supports safe autocorrection (--autocorrect).
37
- Minitest/EmptyLineBeforeAssertionMethods:
38
- Exclude:
39
- - 'test/new_relic/agent_test.rb'
40
- - 'test/new_relic/cli/commands/deployments_test.rb'
41
-
42
- # Offense count: 269
43
- Minitest/MultipleAssertions:
44
- Max: 28
45
-
46
- # Offense count: 129
47
- # This cop supports safe autocorrection (--autocorrect).
48
- Minitest/RefutePredicate:
49
- Enabled: false
50
-
51
- # Offense count: 27
52
- # This cop supports safe autocorrection (--autocorrect).
53
- Minitest/TestMethodName:
54
- Enabled: false
55
-
56
- Style/ConcatArrayLiterals:
57
- Enabled: false
58
-
59
- Minitest/RefuteRespondTo:
60
- Exclude:
61
- - 'test/new_relic/cli/commands/deployments_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/bin/newrelic_cmd DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
- # This command has been renamed "newrelic"
4
- # executes one of the commands in the new_relic/commands directory
5
- # pass the name of the command as an argument
6
- load File.dirname(__FILE__) + '/newrelic'
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
- }