newrelic_rpm 9.5.0 → 9.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +154 -7
  3. data/CONTRIBUTING.md +0 -7
  4. data/README.md +1 -1
  5. data/Rakefile +1 -1
  6. data/bin/newrelic +2 -9
  7. data/bin/newrelic_rpm +15 -0
  8. data/init.rb +2 -2
  9. data/lib/new_relic/agent/agent.rb +1 -1
  10. data/lib/new_relic/agent/agent_helpers/shutdown.rb +1 -1
  11. data/lib/new_relic/agent/agent_helpers/special_startup.rb +1 -1
  12. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +2 -2
  13. data/lib/new_relic/agent/agent_helpers/startup.rb +2 -2
  14. data/lib/new_relic/agent/attribute_filter.rb +3 -3
  15. data/lib/new_relic/agent/configuration/default_source.rb +131 -36
  16. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -0
  17. data/lib/new_relic/agent/configuration/manager.rb +13 -9
  18. data/lib/new_relic/agent/configuration/security_policy_source.rb +11 -0
  19. data/lib/new_relic/agent/custom_event_aggregator.rb +27 -1
  20. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
  21. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +3 -3
  22. data/lib/new_relic/agent/error_collector.rb +2 -0
  23. data/lib/new_relic/agent/event_loop.rb +1 -1
  24. data/lib/new_relic/agent/http_clients/abstract.rb +4 -0
  25. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +80 -0
  26. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +1 -3
  27. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +109 -0
  28. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +0 -3
  29. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +1 -3
  30. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +0 -3
  31. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +91 -0
  32. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +1 -4
  33. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +0 -3
  34. data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -1
  35. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +1 -2
  36. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  37. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +17 -0
  38. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  39. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +23 -0
  40. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -1
  41. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  42. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  43. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  44. data/lib/new_relic/agent/instrumentation/async_http.rb +28 -0
  45. data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +1 -0
  46. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +1 -1
  47. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  48. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  49. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  50. data/lib/new_relic/agent/instrumentation/ethon.rb +39 -0
  51. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +1 -4
  52. data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
  53. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  54. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  55. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  56. data/lib/new_relic/agent/instrumentation/httpx.rb +27 -0
  57. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +1 -3
  58. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +7 -1
  59. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +1 -0
  60. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  61. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +12 -0
  62. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +1 -2
  63. data/lib/new_relic/agent/instrumentation/roda.rb +2 -0
  64. data/lib/new_relic/agent/instrumentation/ruby_openai/chain.rb +36 -0
  65. data/lib/new_relic/agent/instrumentation/ruby_openai/instrumentation.rb +197 -0
  66. data/lib/new_relic/agent/instrumentation/ruby_openai/prepend.rb +20 -0
  67. data/lib/new_relic/agent/instrumentation/ruby_openai.rb +35 -0
  68. data/lib/new_relic/agent/instrumentation/sidekiq.rb +3 -1
  69. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  70. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -3
  71. data/lib/new_relic/agent/instrumentation/sinatra.rb +1 -1
  72. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +1 -4
  73. data/lib/new_relic/agent/instrumentation/view_component/chain.rb +21 -0
  74. data/lib/new_relic/agent/instrumentation/view_component/instrumentation.rb +39 -0
  75. data/lib/new_relic/agent/instrumentation/view_component/prepend.rb +13 -0
  76. data/lib/new_relic/agent/instrumentation/view_component.rb +26 -0
  77. data/lib/new_relic/agent/javascript_instrumentor.rb +0 -1
  78. data/lib/new_relic/agent/llm/chat_completion_message.rb +25 -0
  79. data/lib/new_relic/agent/llm/chat_completion_summary.rb +66 -0
  80. data/lib/new_relic/agent/llm/embedding.rb +60 -0
  81. data/lib/new_relic/agent/llm/llm_event.rb +95 -0
  82. data/lib/new_relic/agent/llm/response_headers.rb +80 -0
  83. data/lib/new_relic/agent/llm.rb +49 -0
  84. data/lib/new_relic/agent/messaging.rb +2 -2
  85. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
  86. data/lib/new_relic/agent/new_relic_service/encoders.rb +2 -2
  87. data/lib/new_relic/agent/new_relic_service.rb +8 -6
  88. data/lib/new_relic/agent/obfuscator.rb +0 -2
  89. data/lib/new_relic/agent/pipe_channel_manager.rb +2 -2
  90. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -2
  91. data/lib/new_relic/agent/rules_engine.rb +1 -1
  92. data/lib/new_relic/agent/span_event_primitive.rb +16 -4
  93. data/lib/new_relic/agent/sql_sampler.rb +0 -1
  94. data/lib/new_relic/agent/system_info.rb +26 -0
  95. data/lib/new_relic/agent/threading/agent_thread.rb +1 -2
  96. data/lib/new_relic/agent/tracer.rb +9 -10
  97. data/lib/new_relic/agent/transaction/abstract_segment.rb +4 -1
  98. data/lib/new_relic/agent/transaction/external_request_segment.rb +5 -2
  99. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -2
  100. data/lib/new_relic/agent/transaction/request_attributes.rb +1 -3
  101. data/lib/new_relic/agent/transaction/tracing.rb +11 -1
  102. data/lib/new_relic/agent/transaction.rb +25 -2
  103. data/lib/new_relic/agent/transaction_error_primitive.rb +16 -0
  104. data/lib/new_relic/agent/transaction_event_primitive.rb +19 -0
  105. data/lib/new_relic/agent/utilization/gcp.rb +1 -3
  106. data/lib/new_relic/agent/vm/{mri_vm.rb → c_ruby_vm.rb} +7 -15
  107. data/lib/new_relic/agent/vm.rb +2 -2
  108. data/lib/new_relic/agent/worker_loop.rb +1 -1
  109. data/lib/new_relic/agent.rb +102 -7
  110. data/lib/new_relic/base64.rb +25 -0
  111. data/lib/new_relic/cli/command.rb +6 -4
  112. data/lib/new_relic/constants.rb +5 -0
  113. data/lib/new_relic/control/frameworks/rails.rb +17 -5
  114. data/lib/new_relic/control/instrumentation.rb +1 -1
  115. data/lib/new_relic/language_support.rb +4 -0
  116. data/lib/new_relic/local_environment.rb +22 -13
  117. data/lib/new_relic/rack/browser_monitoring.rb +8 -4
  118. data/lib/new_relic/supportability_helper.rb +3 -1
  119. data/lib/new_relic/thread_local_storage.rb +31 -0
  120. data/lib/new_relic/version.rb +1 -1
  121. data/lib/tasks/config.rake +1 -1
  122. data/lib/tasks/helpers/config.html.erb +6 -6
  123. data/lib/tasks/helpers/newrelicyml.rb +1 -1
  124. data/lib/tasks/instrumentation_generator/instrumentation.thor +3 -3
  125. data/lib/tasks/instrumentation_generator/templates/chain.tt +0 -1
  126. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +0 -1
  127. data/lib/tasks/tests.rake +71 -0
  128. data/newrelic.yml +76 -36
  129. data/newrelic_rpm.gemspec +5 -4
  130. data/test/agent_helper.rb +14 -2
  131. metadata +43 -7
  132. data/bin/newrelic_cmd +0 -7
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.5.0
4
+ version: 9.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanna McClure
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-09-12 00:00:00.000000000 Z
14
+ date: 2024-03-26 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -103,14 +103,14 @@ dependencies:
103
103
  requirements:
104
104
  - - '='
105
105
  - !ruby/object:Gem::Version
106
- version: '1.54'
106
+ version: 1.57.2
107
107
  type: :development
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - '='
112
112
  - !ruby/object:Gem::Version
113
- version: '1.54'
113
+ version: 1.57.2
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: rubocop-ast
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -218,7 +218,7 @@ description: |
218
218
  https://github.com/newrelic/newrelic-ruby-agent/
219
219
  email: support@newrelic.com
220
220
  executables:
221
- - newrelic_cmd
221
+ - newrelic_rpm
222
222
  - newrelic
223
223
  - nrdebug
224
224
  extensions: []
@@ -239,7 +239,7 @@ files:
239
239
  - THIRD_PARTY_NOTICES.md
240
240
  - Thorfile
241
241
  - bin/newrelic
242
- - bin/newrelic_cmd
242
+ - bin/newrelic_rpm
243
243
  - bin/nrdebug
244
244
  - init.rb
245
245
  - install.rb
@@ -317,10 +317,13 @@ files:
317
317
  - lib/new_relic/agent/heap.rb
318
318
  - lib/new_relic/agent/hostname.rb
319
319
  - lib/new_relic/agent/http_clients/abstract.rb
320
+ - lib/new_relic/agent/http_clients/async_http_wrappers.rb
320
321
  - lib/new_relic/agent/http_clients/curb_wrappers.rb
322
+ - lib/new_relic/agent/http_clients/ethon_wrappers.rb
321
323
  - lib/new_relic/agent/http_clients/excon_wrappers.rb
322
324
  - lib/new_relic/agent/http_clients/http_rb_wrappers.rb
323
325
  - lib/new_relic/agent/http_clients/httpclient_wrappers.rb
326
+ - lib/new_relic/agent/http_clients/httpx_wrappers.rb
324
327
  - lib/new_relic/agent/http_clients/net_http_wrappers.rb
325
328
  - lib/new_relic/agent/http_clients/typhoeus_wrappers.rb
326
329
  - lib/new_relic/agent/http_clients/uri_util.rb
@@ -346,11 +349,19 @@ files:
346
349
  - lib/new_relic/agent/instrumentation/active_storage.rb
347
350
  - lib/new_relic/agent/instrumentation/active_storage_subscriber.rb
348
351
  - lib/new_relic/agent/instrumentation/active_support.rb
352
+ - lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb
353
+ - lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb
354
+ - lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb
355
+ - lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb
349
356
  - lib/new_relic/agent/instrumentation/active_support_logger.rb
350
357
  - lib/new_relic/agent/instrumentation/active_support_logger/chain.rb
351
358
  - lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb
352
359
  - lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb
353
360
  - lib/new_relic/agent/instrumentation/active_support_subscriber.rb
361
+ - lib/new_relic/agent/instrumentation/async_http.rb
362
+ - lib/new_relic/agent/instrumentation/async_http/chain.rb
363
+ - lib/new_relic/agent/instrumentation/async_http/instrumentation.rb
364
+ - lib/new_relic/agent/instrumentation/async_http/prepend.rb
354
365
  - lib/new_relic/agent/instrumentation/bunny.rb
355
366
  - lib/new_relic/agent/instrumentation/bunny/chain.rb
356
367
  - lib/new_relic/agent/instrumentation/bunny/instrumentation.rb
@@ -374,6 +385,10 @@ files:
374
385
  - lib/new_relic/agent/instrumentation/elasticsearch/chain.rb
375
386
  - lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb
376
387
  - lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb
388
+ - lib/new_relic/agent/instrumentation/ethon.rb
389
+ - lib/new_relic/agent/instrumentation/ethon/chain.rb
390
+ - lib/new_relic/agent/instrumentation/ethon/instrumentation.rb
391
+ - lib/new_relic/agent/instrumentation/ethon/prepend.rb
377
392
  - lib/new_relic/agent/instrumentation/excon.rb
378
393
  - lib/new_relic/agent/instrumentation/excon/middleware.rb
379
394
  - lib/new_relic/agent/instrumentation/fiber.rb
@@ -403,6 +418,10 @@ files:
403
418
  - lib/new_relic/agent/instrumentation/httprb/chain.rb
404
419
  - lib/new_relic/agent/instrumentation/httprb/instrumentation.rb
405
420
  - lib/new_relic/agent/instrumentation/httprb/prepend.rb
421
+ - lib/new_relic/agent/instrumentation/httpx.rb
422
+ - lib/new_relic/agent/instrumentation/httpx/chain.rb
423
+ - lib/new_relic/agent/instrumentation/httpx/instrumentation.rb
424
+ - lib/new_relic/agent/instrumentation/httpx/prepend.rb
406
425
  - lib/new_relic/agent/instrumentation/ignore_actions.rb
407
426
  - lib/new_relic/agent/instrumentation/logger.rb
408
427
  - lib/new_relic/agent/instrumentation/logger/chain.rb
@@ -457,9 +476,14 @@ files:
457
476
  - lib/new_relic/agent/instrumentation/resque/prepend.rb
458
477
  - lib/new_relic/agent/instrumentation/roda.rb
459
478
  - lib/new_relic/agent/instrumentation/roda/chain.rb
479
+ - lib/new_relic/agent/instrumentation/roda/ignorer.rb
460
480
  - lib/new_relic/agent/instrumentation/roda/instrumentation.rb
461
481
  - lib/new_relic/agent/instrumentation/roda/prepend.rb
462
482
  - lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb
483
+ - lib/new_relic/agent/instrumentation/ruby_openai.rb
484
+ - lib/new_relic/agent/instrumentation/ruby_openai/chain.rb
485
+ - lib/new_relic/agent/instrumentation/ruby_openai/instrumentation.rb
486
+ - lib/new_relic/agent/instrumentation/ruby_openai/prepend.rb
463
487
  - lib/new_relic/agent/instrumentation/sequel.rb
464
488
  - lib/new_relic/agent/instrumentation/sequel_helper.rb
465
489
  - lib/new_relic/agent/instrumentation/sidekiq.rb
@@ -486,9 +510,19 @@ files:
486
510
  - lib/new_relic/agent/instrumentation/typhoeus/chain.rb
487
511
  - lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb
488
512
  - lib/new_relic/agent/instrumentation/typhoeus/prepend.rb
513
+ - lib/new_relic/agent/instrumentation/view_component.rb
514
+ - lib/new_relic/agent/instrumentation/view_component/chain.rb
515
+ - lib/new_relic/agent/instrumentation/view_component/instrumentation.rb
516
+ - lib/new_relic/agent/instrumentation/view_component/prepend.rb
489
517
  - lib/new_relic/agent/internal_agent_error.rb
490
518
  - lib/new_relic/agent/javascript_instrumentor.rb
491
519
  - lib/new_relic/agent/linking_metadata.rb
520
+ - lib/new_relic/agent/llm.rb
521
+ - lib/new_relic/agent/llm/chat_completion_message.rb
522
+ - lib/new_relic/agent/llm/chat_completion_summary.rb
523
+ - lib/new_relic/agent/llm/embedding.rb
524
+ - lib/new_relic/agent/llm/llm_event.rb
525
+ - lib/new_relic/agent/llm/response_headers.rb
492
526
  - lib/new_relic/agent/local_log_decorator.rb
493
527
  - lib/new_relic/agent/log_event_aggregator.rb
494
528
  - lib/new_relic/agent/log_event_attributes.rb
@@ -574,11 +608,12 @@ files:
574
608
  - lib/new_relic/agent/utilization/vendor.rb
575
609
  - lib/new_relic/agent/utilization_data.rb
576
610
  - lib/new_relic/agent/vm.rb
611
+ - lib/new_relic/agent/vm/c_ruby_vm.rb
577
612
  - lib/new_relic/agent/vm/jruby_vm.rb
578
613
  - lib/new_relic/agent/vm/monotonic_gc_profiler.rb
579
- - lib/new_relic/agent/vm/mri_vm.rb
580
614
  - lib/new_relic/agent/vm/snapshot.rb
581
615
  - lib/new_relic/agent/worker_loop.rb
616
+ - lib/new_relic/base64.rb
582
617
  - lib/new_relic/cli/command.rb
583
618
  - lib/new_relic/cli/commands/deployments.rb
584
619
  - lib/new_relic/cli/commands/install.rb
@@ -619,6 +654,7 @@ files:
619
654
  - lib/new_relic/recipes/capistrano_legacy.rb
620
655
  - lib/new_relic/recipes/helpers/send_deployment.rb
621
656
  - lib/new_relic/supportability_helper.rb
657
+ - lib/new_relic/thread_local_storage.rb
622
658
  - lib/new_relic/traced_thread.rb
623
659
  - lib/new_relic/version.rb
624
660
  - lib/newrelic_rpm.rb
data/bin/newrelic_cmd DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- # This command has been renamed "newrelic"
5
- # executes one of the commands in the new_relic/commands directory
6
- # pass the name of the command as an argument
7
- load File.dirname(__FILE__) + '/newrelic'