newrelic_rpm 9.3.0 → 9.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +6 -1
  3. data/CHANGELOG.md +193 -6
  4. data/README.md +4 -0
  5. data/Rakefile +1 -1
  6. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  7. data/lib/new_relic/agent/configuration/default_source.rb +177 -34
  8. data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
  9. data/lib/new_relic/agent/distributed_tracing.rb +1 -1
  10. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +83 -0
  11. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +111 -0
  12. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +93 -0
  13. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +1 -1
  14. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +1 -2
  15. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  16. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +13 -0
  17. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  18. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +23 -0
  19. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
  20. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -1
  21. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  22. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  23. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  24. data/lib/new_relic/agent/instrumentation/async_http.rb +26 -0
  25. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +9 -0
  26. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +2 -2
  27. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -2
  28. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +4 -0
  29. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +3 -0
  30. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +4 -1
  31. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  32. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  33. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  34. data/lib/new_relic/agent/instrumentation/ethon.rb +39 -0
  35. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -0
  36. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -0
  37. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +4 -0
  38. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +4 -0
  39. data/lib/new_relic/agent/instrumentation/grpc_client.rb +1 -1
  40. data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
  41. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
  42. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
  43. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  44. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  45. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  46. data/lib/new_relic/agent/instrumentation/httpx.rb +27 -0
  47. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
  48. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +9 -0
  49. data/lib/new_relic/agent/instrumentation/memcache.rb +2 -2
  50. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +1 -3
  51. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +5 -1
  52. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +4 -0
  53. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +4 -0
  54. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  55. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +6 -0
  56. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
  57. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +1 -0
  58. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +4 -0
  59. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +4 -0
  60. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
  61. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  62. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  63. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
  64. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  65. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
  66. data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
  67. data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
  68. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
  69. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
  70. data/lib/new_relic/agent/instrumentation/sidekiq.rb +5 -3
  71. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +4 -0
  72. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -3
  73. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  74. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +77 -0
  75. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +4 -0
  76. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +5 -1
  77. data/lib/new_relic/agent/log_event_attributes.rb +1 -1
  78. data/lib/new_relic/agent/messaging.rb +2 -2
  79. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
  80. data/lib/new_relic/agent/new_relic_service.rb +33 -17
  81. data/lib/new_relic/agent/pipe_service.rb +1 -1
  82. data/lib/new_relic/agent/rules_engine.rb +1 -1
  83. data/lib/new_relic/agent/span_event_primitive.rb +16 -4
  84. data/lib/new_relic/agent/system_info.rb +26 -0
  85. data/lib/new_relic/agent/tracer.rb +5 -6
  86. data/lib/new_relic/agent/transaction/abstract_segment.rb +55 -0
  87. data/lib/new_relic/agent/transaction/external_request_segment.rb +5 -2
  88. data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -2
  89. data/lib/new_relic/agent/transaction/request_attributes.rb +46 -10
  90. data/lib/new_relic/agent/transaction.rb +30 -6
  91. data/lib/new_relic/agent/transaction_error_primitive.rb +16 -0
  92. data/lib/new_relic/agent/transaction_event_primitive.rb +19 -0
  93. data/lib/new_relic/agent/utilization/gcp.rb +1 -3
  94. data/lib/new_relic/agent/utilization/vendor.rb +5 -7
  95. data/lib/new_relic/agent.rb +19 -3
  96. data/lib/new_relic/cli/command.rb +1 -0
  97. data/lib/new_relic/constants.rb +3 -0
  98. data/lib/new_relic/control/class_methods.rb +1 -7
  99. data/lib/new_relic/control/frameworks/rails.rb +14 -2
  100. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  101. data/lib/new_relic/language_support.rb +9 -0
  102. data/lib/new_relic/noticed_error.rb +5 -2
  103. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  104. data/lib/new_relic/rack/agent_middleware.rb +0 -16
  105. data/lib/new_relic/rack/browser_monitoring.rb +1 -1
  106. data/lib/new_relic/supportability_helper.rb +1 -0
  107. data/lib/new_relic/version.rb +1 -1
  108. data/lib/tasks/bump_version.rake +1 -1
  109. data/lib/tasks/config.rake +3 -2
  110. data/lib/tasks/helpers/config.html.erb +93 -0
  111. data/lib/tasks/helpers/format.rb +11 -7
  112. data/lib/tasks/helpers/version_bump.rb +2 -2
  113. data/lib/tasks/instrumentation_generator/instrumentation.thor +3 -3
  114. data/lib/tasks/newrelicyml.rake +1 -1
  115. data/lib/tasks/tests.rake +71 -0
  116. data/newrelic.yml +103 -31
  117. data/newrelic_rpm.gemspec +12 -6
  118. data/test/agent_helper.rb +1027 -0
  119. metadata +63 -8
  120. data/lib/tasks/helpers/removers.rb +0 -33
  121. data/lib/tasks/multiverse.rake +0 -6
  122. data/lib/tasks/multiverse.rb +0 -76
data/newrelic.yml CHANGED
@@ -33,6 +33,9 @@ common: &default_settings
33
33
  # - a.third.event
34
34
  # active_support_custom_events_names: []
35
35
 
36
+ # If true, enables capture of all HTTP request headers for all destinations.
37
+ # allow_all_headers: false
38
+
36
39
  # Your New Relic userKey. Required when using the New Relic REST API v2 to record
37
40
  # deployments using the newrelic deployments command.
38
41
  # api_key: ""
@@ -99,7 +102,7 @@ common: &default_settings
99
102
  # Specify a list of constants that should prevent the agent from starting
100
103
  # automatically. Separate individual constants with a comma ,. For example,
101
104
  # "Rails::Console,UninstrumentedBackgroundJob".
102
- # autostart.denylisted_constants: Rails::Console
105
+ # autostart.denylisted_constants: Rails::Command::ConsoleCommand,Rails::Command::CredentialsCommand,Rails::Command::Db::System::ChangeCommand,Rails::Command::DbConsoleCommand,Rails::Command::DestroyCommand,Rails::Command::DevCommand,Rails::Command::EncryptedCommand,Rails::Command::GenerateCommand,Rails::Command::InitializersCommand,Rails::Command::NotesCommand,Rails::Command::RoutesCommand,Rails::Command::SecretsCommand,Rails::Console,Rails::DBConsole
103
106
 
104
107
  # Defines a comma-delimited list of executables that the agent should not
105
108
  # instrument. For example, "rake,my_ruby_script.rb".
@@ -220,8 +223,15 @@ common: &default_settings
220
223
 
221
224
  # If true, the agent won't wrap third-party middlewares in instrumentation
222
225
  # (regardless of whether they are installed via Rack::Builder or Rails).
226
+ # When middleware instrumentation is disabled, if an application is using
227
+ # middleware that could alter the response code, the HTTP status code reported on
228
+ # the transaction may not reflect the altered value.
223
229
  # disable_middleware_instrumentation: false
224
230
 
231
+ # If true, disables agent middleware for Roda. This middleware is responsible for
232
+ # advanced feature support such as page load timing and error collection.
233
+ # disable_roda_auto_middleware: false
234
+
225
235
  # If true, disables the collection of sampler metrics. Sampler metrics are metrics
226
236
  # that are not event-based (such as CPU time or memory usage).
227
237
  # disable_samplers: false
@@ -364,39 +374,51 @@ common: &default_settings
364
374
  # Configures the TCP/IP port for the trace observer Host
365
375
  # infinite_tracing.trace_observer.port: 443
366
376
 
377
+ # Controls auto-instrumentation of ActiveSupport::BroadcastLogger at start up. May
378
+ # be one of: auto, prepend, chain, disabled. Used in Rails versions >= 7.1.
379
+ # instrumentation.active_support_broadcast_logger: auto
380
+
367
381
  # Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one
368
- # of: auto, prepend, chain, disabled.
382
+ # of: auto, prepend, chain, disabled. Used in Rails versions below 7.1.
369
383
  # instrumentation.active_support_logger: auto
370
384
 
371
- # Controls auto-instrumentation of bunny at start up. May be one of: auto,
385
+ # Controls auto-instrumentation of Async::HTTP at start up. May be one of: auto,
386
+ # prepend, chain, disabled.
387
+ # instrumentation.async_http: auto
388
+
389
+ # Controls auto-instrumentation of bunny at start-up. May be one of: auto,
372
390
  # prepend, chain, disabled.
373
391
  # instrumentation.bunny: auto
374
392
 
375
- # Controls auto-instrumentation of the concurrent-ruby library at start up. May be
393
+ # Controls auto-instrumentation of the concurrent-ruby library at start-up. May be
376
394
  # one of: auto, prepend, chain, disabled.
377
395
  # instrumentation.concurrent_ruby: auto
378
396
 
379
- # Controls auto-instrumentation of Curb at start up. May be one of: auto, prepend,
397
+ # Controls auto-instrumentation of Curb at start-up. May be one of: auto, prepend,
380
398
  # chain, disabled.
381
399
  # instrumentation.curb: auto
382
400
 
383
- # Controls auto-instrumentation of Delayed Job at start up. May be one of: auto,
401
+ # Controls auto-instrumentation of Delayed Job at start-up. May be one of: auto,
384
402
  # prepend, chain, disabled.
385
403
  # instrumentation.delayed_job: auto
386
404
 
387
- # Controls auto-instrumentation of the elasticsearch library at start up. May be
405
+ # Controls auto-instrumentation of the elasticsearch library at start-up. May be
388
406
  # one of: auto, prepend, chain, disabled.
389
407
  # instrumentation.elasticsearch: auto
390
408
 
391
- # Controls auto-instrumentation of Excon at start up. May be one of: enabled,
409
+ # Controls auto-instrumentation of ethon at start up. May be one of
410
+ # [auto|prepend|chain|disabled]
411
+ # instrumentation.ethon: auto
412
+
413
+ # Controls auto-instrumentation of Excon at start-up. May be one of: enabled,
392
414
  # disabled.
393
415
  # instrumentation.excon: enabled
394
416
 
395
- # Controls auto-instrumentation of the Fiber class at start up. May be one of:
417
+ # Controls auto-instrumentation of the Fiber class at start-up. May be one of:
396
418
  # auto, prepend, chain, disabled.
397
419
  # instrumentation.fiber: auto
398
420
 
399
- # Controls auto-instrumentation of Grape at start up. May be one of: auto,
421
+ # Controls auto-instrumentation of Grape at start-up. May be one of: auto,
400
422
  # prepend, chain, disabled.
401
423
  # instrumentation.grape: auto
402
424
 
@@ -409,43 +431,47 @@ common: &default_settings
409
431
  # example, "private.com$,exception.*"
410
432
  # instrumentation.grpc.host_denylist: []
411
433
 
412
- # Controls auto-instrumentation of gRPC clients at start up. May be one of: auto,
434
+ # Controls auto-instrumentation of gRPC clients at start-up. May be one of: auto,
413
435
  # prepend, chain, disabled.
414
436
  # instrumentation.grpc_client: auto
415
437
 
416
- # Controls auto-instrumentation of gRPC servers at start up. May be one of: auto,
438
+ # Controls auto-instrumentation of gRPC servers at start-up. May be one of: auto,
417
439
  # prepend, chain, disabled.
418
440
  # instrumentation.grpc_server: auto
419
441
 
420
- # Controls auto-instrumentation of HTTPClient at start up. May be one of: auto,
442
+ # Controls auto-instrumentation of HTTPClient at start-up. May be one of: auto,
421
443
  # prepend, chain, disabled.
422
444
  # instrumentation.httpclient: auto
423
445
 
424
- # Controls auto-instrumentation of http.rb gem at start up. May be one of: auto,
446
+ # Controls auto-instrumentation of http.rb gem at start-up. May be one of: auto,
425
447
  # prepend, chain, disabled.
426
448
  # instrumentation.httprb: auto
427
449
 
428
- # Controls auto-instrumentation of Ruby standard library Logger at start up. May
450
+ # Controls auto-instrumentation of httpx at start up. May be one of
451
+ # [auto|prepend|chain|disabled]
452
+ # instrumentation.httpx: auto
453
+
454
+ # Controls auto-instrumentation of Ruby standard library Logger at start-up. May
429
455
  # be one of: auto, prepend, chain, disabled.
430
456
  # instrumentation.logger: auto
431
457
 
432
- # Controls auto-instrumentation of dalli gem for Memcache at start up. May be one
458
+ # Controls auto-instrumentation of dalli gem for Memcache at start-up. May be one
433
459
  # of: auto, prepend, chain, disabled.
434
460
  # instrumentation.memcache: auto
435
461
 
436
- # Controls auto-instrumentation of memcache-client gem for Memcache at start up.
462
+ # Controls auto-instrumentation of memcache-client gem for Memcache at start-up.
437
463
  # May be one of: auto, prepend, chain, disabled.
438
464
  # instrumentation.memcache_client: auto
439
465
 
440
- # Controls auto-instrumentation of memcached gem for Memcache at start up. May be
466
+ # Controls auto-instrumentation of memcached gem for Memcache at start-up. May be
441
467
  # one of: auto, prepend, chain, disabled.
442
468
  # instrumentation.memcached: auto
443
469
 
444
- # Controls auto-instrumentation of Mongo at start up. May be one of: enabled,
470
+ # Controls auto-instrumentation of Mongo at start-up. May be one of: enabled,
445
471
  # disabled.
446
472
  # instrumentation.mongo: enabled
447
473
 
448
- # Controls auto-instrumentation of Net::HTTP at start up. May be one of: auto,
474
+ # Controls auto-instrumentation of Net::HTTP at start-up. May be one of: auto,
449
475
  # prepend, chain, disabled.
450
476
  # instrumentation.net_http: auto
451
477
 
@@ -454,7 +480,7 @@ common: &default_settings
454
480
  # application startup. May be one of: auto, prepend, chain, disabled.
455
481
  # instrumentation.puma_rack: auto
456
482
 
457
- # Controls auto-instrumentation of Puma::Rack::URLMap at start up. May be one of:
483
+ # Controls auto-instrumentation of Puma::Rack::URLMap at start-up. May be one of:
458
484
  # auto, prepend, chain, disabled.
459
485
  # instrumentation.puma_rack_urlmap: auto
460
486
 
@@ -463,41 +489,49 @@ common: &default_settings
463
489
  # startup. May be one of: auto, prepend, chain, disabled.
464
490
  # instrumentation.rack: auto
465
491
 
466
- # Controls auto-instrumentation of Rack::URLMap at start up. May be one of: auto,
492
+ # Controls auto-instrumentation of Rack::URLMap at start-up. May be one of: auto,
467
493
  # prepend, chain, disabled.
468
494
  # instrumentation.rack_urlmap: auto
469
495
 
470
- # Controls auto-instrumentation of rake at start up. May be one of: auto, prepend,
496
+ # Controls auto-instrumentation of rake at start-up. May be one of: auto, prepend,
471
497
  # chain, disabled.
472
498
  # instrumentation.rake: auto
473
499
 
474
- # Controls auto-instrumentation of Redis at start up. May be one of: auto,
500
+ # Controls auto-instrumentation of Redis at start-up. May be one of: auto,
475
501
  # prepend, chain, disabled.
476
502
  # instrumentation.redis: auto
477
503
 
478
- # Controls auto-instrumentation of resque at start up. May be one of: auto,
504
+ # Controls auto-instrumentation of resque at start-up. May be one of: auto,
479
505
  # prepend, chain, disabled.
480
506
  # instrumentation.resque: auto
481
507
 
482
- # Controls auto-instrumentation of Sinatra at start up. May be one of: auto,
508
+ # Controls auto-instrumentation of Roda at start-up. May be one of: auto, prepend,
509
+ # chain, disabled.
510
+ # instrumentation.roda: auto
511
+
512
+ # Controls auto-instrumentation of Sinatra at start-up. May be one of: auto,
483
513
  # prepend, chain, disabled.
484
514
  # instrumentation.sinatra: auto
485
515
 
486
- # Controls auto-instrumentation of the Thread class at start up to allow the agent
516
+ # Controls auto-instrumentation of Stripe at startup. May be one of: enabled,
517
+ # disabled.
518
+ # instrumentation.stripe: enabled
519
+
520
+ # Controls auto-instrumentation of the Thread class at start-up to allow the agent
487
521
  # to correctly nest spans inside of an asynchronous transaction. This does not
488
522
  # enable the agent to automatically trace all threads created (see
489
523
  # instrumentation.thread.tracing). May be one of: auto, prepend, chain, disabled.
490
524
  # instrumentation.thread: auto
491
525
 
492
- # Controls auto-instrumentation of the Thread class at start up to automatically
526
+ # Controls auto-instrumentation of the Thread class at start-up to automatically
493
527
  # add tracing to all Threads created in the application.
494
528
  # instrumentation.thread.tracing: true
495
529
 
496
- # Controls auto-instrumentation of the Tilt template rendering library at start
497
- # up. May be one of: auto, prepend, chain, disabled.
530
+ # Controls auto-instrumentation of the Tilt template rendering library at
531
+ # start-up. May be one of: auto, prepend, chain, disabled.
498
532
  # instrumentation.tilt: auto
499
533
 
500
- # Controls auto-instrumentation of Typhoeus at start up. May be one of: auto,
534
+ # Controls auto-instrumentation of Typhoeus at start-up. May be one of: auto,
501
535
  # prepend, chain, disabled.
502
536
  # instrumentation.typhoeus: auto
503
537
 
@@ -574,6 +608,26 @@ common: &default_settings
574
608
  # before shutting down.
575
609
  # send_data_on_exit: true
576
610
 
611
+ # An array of strings that will collectively serve as a denylist for filtering
612
+ # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
613
+ # arguments, 'job.sidekiq.args.*' must be added to the separate
614
+ # :'attributes.include' configuration option. Each string in this array will be
615
+ # turned into a regular expression via Regexp.new to permit advanced matching. For
616
+ # job argument hashes, if either a key or value matches the pair will be excluded.
617
+ # All matching job argument array elements and job argument scalars will be
618
+ # excluded.
619
+ # sidekiq.args.exclude: []
620
+
621
+ # An array of strings that will collectively serve as an allowlist for filtering
622
+ # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
623
+ # arguments, 'job.sidekiq.args.*' must be added to the separate
624
+ # :'attributes.include' configuration option. Each string in this array will be
625
+ # turned into a regular expression via Regexp.new to permit advanced matching. For
626
+ # job argument hashes, if either a key or value matches the pair will be included.
627
+ # All matching job argument array elements and job argument scalars will be
628
+ # included.
629
+ # sidekiq.args.include: []
630
+
577
631
  # If true, the agent collects slow SQL queries.
578
632
  # slow_sql.enabled: true
579
633
 
@@ -623,6 +677,24 @@ common: &default_settings
623
677
  # allowlist. Enabled automatically in high security mode.
624
678
  # strip_exception_messages.enabled: false
625
679
 
680
+ # An array of strings to specify which keys and/or values inside a Stripe event's
681
+ # user_data hash should
682
+ # not be reported to New Relic. Each string in this array will be turned into a
683
+ # regular expression via
684
+ # Regexp.new to permit advanced matching. For each hash pair, if either the key or
685
+ # value is matched the
686
+ # pair will not be reported. By default, no user_data is reported, so this option
687
+ # should only be used if
688
+ # the stripe.user_data.include option is being used.
689
+ # stripe.user_data.exclude: []
690
+
691
+ # An array of strings to specify which keys inside a Stripe event's user_data hash
692
+ # should be reported
693
+ # to New Relic. Each string in this array will be turned into a regular expression
694
+ # via Regexp.new to
695
+ # permit advanced matching. Setting the value to ["."] will report all user_data.
696
+ # stripe.user_data.include: []
697
+
626
698
  # When set to true, forces a synchronous connection to the New Relic collector
627
699
  # during application startup. For very short-lived processes, this helps ensure
628
700
  # the New Relic agent has time to report.
data/newrelic_rpm.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  https://github.com/newrelic/newrelic-ruby-agent/
22
22
  EOS
23
23
  s.email = 'support@newrelic.com'
24
+ # TODO: MAJOR VERSION - remove newrelic_cmd, deprecated since version 2.13
24
25
  s.executables = %w[newrelic_cmd newrelic nrdebug]
25
26
  s.extra_rdoc_files = [
26
27
  'CHANGELOG.md',
@@ -38,25 +39,30 @@ Gem::Specification.new do |s|
38
39
  'homepage_uri' => 'https://newrelic.com/ruby'
39
40
  }
40
41
 
41
- reject_list = File.read('./.build_ignore').split("\n")
42
+ reject_list = File.read(File.expand_path('../.build_ignore', __FILE__)).split("\n")
42
43
  file_list = `git ls-files -z`.split("\x0").reject { |f| reject_list.any? { |rf| f.start_with?(rf) } }
43
- build_file_path = 'lib/new_relic/build.rb'
44
- file_list << build_file_path if File.exist?(build_file_path)
44
+ # test/agent_helper.rb is a requirement for the NewRelic::Agent.require_test_helper public API
45
+ test_helper_path = 'test/agent_helper.rb'
46
+ file_list << test_helper_path
45
47
  s.files = file_list
46
48
 
47
- s.homepage = 'https://github.com/newrelic/rpm'
49
+ s.homepage = 'https://github.com/newrelic/newrelic-ruby-agent'
48
50
  s.require_paths = ['lib']
49
51
  s.summary = 'New Relic Ruby Agent'
52
+
53
+ s.add_dependency 'base64'
54
+
50
55
  s.add_development_dependency 'bundler'
51
56
  s.add_development_dependency 'feedjira', '3.2.1' unless ENV['CI'] || RUBY_VERSION < '2.5' # for Gabby
52
57
  s.add_development_dependency 'httparty' unless ENV['CI'] # for perf tests and Gabby
53
58
  s.add_development_dependency 'minitest', "#{RUBY_VERSION >= '2.7.0' ? '5.3.3' : '4.7.5'}"
54
59
  s.add_development_dependency 'minitest-stub-const', '0.6'
55
60
  s.add_development_dependency 'mocha', '~> 1.16'
56
- s.add_development_dependency 'pry' unless ENV['CI']
61
+ s.add_development_dependency 'pry' if ENV['ENABLE_PRY']
62
+ s.add_development_dependency 'rack'
57
63
  s.add_development_dependency 'rake', '12.3.3'
58
64
 
59
- s.add_development_dependency 'rubocop', '1.51' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
65
+ s.add_development_dependency 'rubocop', '1.54' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
60
66
  s.add_development_dependency 'rubocop-ast', '1.28.1' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
61
67
  s.add_development_dependency 'rubocop-minitest', '0.27.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
62
68
  s.add_development_dependency 'rubocop-performance', '1.16.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'