newrelic_rpm 9.17.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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +1 -0
  3. data/CHANGELOG.md +105 -1
  4. data/lib/new_relic/agent/agent.rb +2 -0
  5. data/lib/new_relic/agent/agent_helpers/connect.rb +3 -3
  6. data/lib/new_relic/agent/agent_helpers/harvest.rb +3 -3
  7. data/lib/new_relic/agent/agent_helpers/shutdown.rb +1 -1
  8. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +1 -1
  9. data/lib/new_relic/agent/agent_helpers/startup.rb +4 -4
  10. data/lib/new_relic/agent/configuration/default_source.rb +145 -120
  11. data/lib/new_relic/agent/configuration/manager.rb +5 -2
  12. data/lib/new_relic/agent/configuration/yaml_source.rb +4 -4
  13. data/lib/new_relic/agent/database.rb +1 -1
  14. data/lib/new_relic/agent/database_adapter.rb +1 -1
  15. data/lib/new_relic/agent/datastores/redis.rb +1 -1
  16. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +1 -1
  17. data/lib/new_relic/agent/distributed_tracing.rb +2 -0
  18. data/lib/new_relic/agent/external.rb +2 -0
  19. data/lib/new_relic/agent/http_clients/uri_util.rb +1 -1
  20. data/lib/new_relic/agent/instrumentation/action_dispatch.rb +1 -1
  21. data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +1 -1
  22. data/lib/new_relic/agent/instrumentation/action_mailbox.rb +1 -1
  23. data/lib/new_relic/agent/instrumentation/action_mailer.rb +1 -1
  24. data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
  25. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +6 -2
  26. data/lib/new_relic/agent/instrumentation/active_record.rb +6 -4
  27. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +2 -2
  28. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +11 -9
  29. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  30. data/lib/new_relic/agent/instrumentation/async_http.rb +1 -1
  31. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/instrumentation.rb +1 -1
  32. data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +1 -1
  33. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +4 -0
  34. data/lib/new_relic/agent/instrumentation/curb.rb +1 -1
  35. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +1 -2
  36. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +1 -0
  37. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +1 -1
  38. data/lib/new_relic/agent/instrumentation/ethon.rb +1 -1
  39. data/lib/new_relic/agent/instrumentation/excon.rb +1 -1
  40. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +1 -1
  41. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +1 -1
  42. data/lib/new_relic/agent/instrumentation/httpclient.rb +1 -4
  43. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +1 -1
  44. data/lib/new_relic/agent/instrumentation/httpx.rb +1 -1
  45. data/lib/new_relic/agent/instrumentation/logstasher.rb +1 -1
  46. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +1 -1
  47. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +2 -2
  48. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +1 -1
  49. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +1 -1
  50. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +1 -1
  51. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +3 -3
  52. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -1
  53. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +0 -2
  54. data/lib/new_relic/agent/instrumentation/rake.rb +1 -1
  55. data/lib/new_relic/agent/instrumentation/rdkafka/chain.rb +2 -2
  56. data/lib/new_relic/agent/instrumentation/rdkafka/prepend.rb +2 -2
  57. data/lib/new_relic/agent/instrumentation/redis/constants.rb +2 -2
  58. data/lib/new_relic/agent/instrumentation/resque.rb +2 -2
  59. data/lib/new_relic/agent/instrumentation/roda.rb +1 -1
  60. data/lib/new_relic/agent/instrumentation/ruby_kafka/prepend.rb +1 -1
  61. data/lib/new_relic/agent/instrumentation/ruby_openai.rb +2 -2
  62. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delay_extensions.rb +24 -0
  63. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +1 -1
  64. data/lib/new_relic/agent/instrumentation/sidekiq.rb +9 -1
  65. data/lib/new_relic/agent/instrumentation/stripe.rb +1 -1
  66. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +2 -2
  67. data/lib/new_relic/agent/llm/chat_completion_summary.rb +1 -1
  68. data/lib/new_relic/agent/llm/embedding.rb +1 -1
  69. data/lib/new_relic/agent/local_log_decorator.rb +1 -1
  70. data/lib/new_relic/agent/logging.rb +1 -1
  71. data/lib/new_relic/agent/messaging.rb +5 -0
  72. data/lib/new_relic/agent/method_tracer.rb +3 -0
  73. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
  74. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +1 -1
  75. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  76. data/lib/new_relic/agent/new_relic_service.rb +2 -2
  77. data/lib/new_relic/agent/opentelemetry/context/propagation/trace_propagator.rb +66 -0
  78. data/lib/new_relic/agent/opentelemetry/context/propagation.rb +15 -0
  79. data/lib/{tasks/instrumentation_generator/templates/Envfile.tt → new_relic/agent/opentelemetry/context.rb} +9 -5
  80. data/lib/new_relic/agent/opentelemetry/trace/span.rb +31 -0
  81. data/lib/new_relic/agent/opentelemetry/trace/tracer.rb +129 -0
  82. data/lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb +18 -0
  83. data/lib/new_relic/agent/opentelemetry/trace.rb +15 -0
  84. data/lib/new_relic/agent/opentelemetry/transaction_patch.rb +69 -0
  85. data/lib/new_relic/agent/opentelemetry_bridge.rb +32 -0
  86. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  87. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  88. data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
  89. data/lib/new_relic/agent/serverless_handler.rb +7 -1
  90. data/lib/new_relic/agent/span_event_primitive.rb +8 -1
  91. data/lib/new_relic/agent/tracer.rb +1 -1
  92. data/lib/new_relic/agent/transaction/abstract_segment.rb +2 -1
  93. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  94. data/lib/new_relic/agent/transaction/distributed_tracer.rb +3 -3
  95. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -1
  96. data/lib/new_relic/agent/transaction/request_attributes.rb +1 -6
  97. data/lib/new_relic/agent/transaction/trace_context.rb +33 -4
  98. data/lib/new_relic/agent/transaction/tracing.rb +3 -3
  99. data/lib/new_relic/agent/transaction.rb +2 -1
  100. data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
  101. data/lib/new_relic/agent/utilization/ecs.rb +22 -0
  102. data/lib/new_relic/agent/utilization/ecs_v4.rb +22 -0
  103. data/lib/new_relic/agent/utilization_data.rb +40 -5
  104. data/lib/new_relic/agent/vm/c_ruby_vm.rb +3 -3
  105. data/lib/new_relic/agent.rb +28 -0
  106. data/lib/new_relic/constants.rb +1 -0
  107. data/lib/new_relic/control/instance_methods.rb +5 -0
  108. data/lib/new_relic/control/instrumentation.rb +1 -1
  109. data/lib/new_relic/dependency_detection.rb +0 -1
  110. data/lib/new_relic/helper.rb +7 -0
  111. data/lib/new_relic/version.rb +1 -1
  112. data/lib/sequel/extensions/new_relic_instrumentation.rb +1 -1
  113. data/lib/tasks/helpers/newrelicyml.rb +6 -2
  114. data/newrelic.yml +80 -43
  115. data/newrelic_rpm.gemspec +1 -1
  116. metadata +17 -19
  117. data/lib/tasks/instrumentation_generator/README.md +0 -63
  118. data/lib/tasks/instrumentation_generator/TODO.md +0 -33
  119. data/lib/tasks/instrumentation_generator/instrumentation.thor +0 -130
  120. data/lib/tasks/instrumentation_generator/templates/chain.tt +0 -21
  121. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +0 -7
  122. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +0 -32
  123. data/lib/tasks/instrumentation_generator/templates/instrumentation.tt +0 -13
  124. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +0 -3
  125. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +0 -19
  126. data/lib/tasks/instrumentation_generator/templates/prepend.tt +0 -13
  127. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +0 -3
  128. data/lib/tasks/instrumentation_generator/templates/test.tt +0 -15
@@ -1,19 +0,0 @@
1
- ---
2
- development:
3
- error_collector:
4
- enabled: true
5
- apdex_t: 0.5
6
- monitor_mode: true
7
- license_key: bootstrap_newrelic_admin_license_key_000
8
- instrumentation:
9
- <%= @snake_name %>: <%= @instrumentation_method_global_erb_snippet %>
10
- app_name: test
11
- log_level: debug
12
- host: 127.0.0.1
13
- api_host: 127.0.0.1
14
- transaction_trace:
15
- record_sql: obfuscated
16
- enabled: true
17
- stack_trace_threshold: 0.5
18
- transaction_threshold: 1.0
19
- capture_params: false
@@ -1,13 +0,0 @@
1
- # This file is distributed under New Relic's license terms.
2
- # See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
3
- # frozen_string_literal: true
4
-
5
- module NewRelic::Agent::Instrumentation
6
- module <%= @class_name %>::Prepend
7
- include NewRelic::Agent::Instrumentation::<%= @class_name %>
8
-
9
- def <%= @method.downcase %><%= "(#{@args})" unless @args.empty? %>
10
- <%= @method.downcase %>_with_new_relic<%= "(#{@args})" unless @args.empty? %> { super }
11
- end
12
- end
13
- end
@@ -1,3 +0,0 @@
1
- def <%= @method.downcase %><%= "(#{@args})" unless @args.empty? %>
2
- <%= @method.downcase %>_with_new_relic<%= "(#{@args})" unless @args.empty? %> { super }
3
- end
@@ -1,15 +0,0 @@
1
- # This file is distributed under New Relic's license terms.
2
- # See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
3
- # frozen_string_literal: true
4
-
5
- class <%= @class_name %>InstrumentationTest < Minitest::Test
6
- def setup
7
- @stats_engine = NewRelic::Agent.instance.stats_engine
8
- end
9
-
10
- def teardown
11
- NewRelic::Agent.instance.stats_engine.clear_stats
12
- end
13
-
14
- # Add tests here
15
- end