newrelic_rpm 9.23.0 → 10.0.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +136 -0
  3. data/README.md +0 -7
  4. data/lib/new_relic/agent/agent.rb +9 -4
  5. data/lib/new_relic/agent/configuration/default_source.rb +103 -181
  6. data/lib/new_relic/agent/configuration/environment_source.rb +7 -38
  7. data/lib/new_relic/agent/configuration/manager.rb +141 -59
  8. data/lib/new_relic/agent/configuration/sampler_config_validator.rb +54 -0
  9. data/lib/new_relic/agent/configuration/server_source.rb +0 -1
  10. data/lib/new_relic/agent/connect/response_handler.rb +0 -11
  11. data/lib/new_relic/agent/datastores.rb +13 -17
  12. data/lib/new_relic/agent/distributed_tracing.rb +0 -3
  13. data/lib/new_relic/agent/health_check.rb +1 -0
  14. data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
  15. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +2 -1
  16. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +1 -4
  17. data/lib/new_relic/agent/instrumentation/active_support.rb +8 -1
  18. data/lib/new_relic/agent/instrumentation/active_support_subscriber.rb +22 -14
  19. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +1 -4
  20. data/lib/new_relic/agent/instrumentation/bunny.rb +0 -1
  21. data/lib/new_relic/agent/instrumentation/curb/chain.rb +2 -2
  22. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +2 -3
  23. data/lib/new_relic/agent/instrumentation/curb.rb +0 -1
  24. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +1 -1
  25. data/lib/new_relic/agent/instrumentation/excon.rb +2 -3
  26. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +1 -2
  27. data/lib/new_relic/agent/instrumentation/httpclient.rb +0 -1
  28. data/lib/new_relic/agent/instrumentation/httprb.rb +0 -1
  29. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +0 -2
  30. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +0 -2
  31. data/lib/new_relic/agent/instrumentation/rack/helpers.rb +1 -3
  32. data/lib/new_relic/agent/instrumentation/typhoeus.rb +0 -1
  33. data/lib/new_relic/agent/llm/chat_completion_summary.rb +1 -8
  34. data/lib/new_relic/agent/llm/embedding.rb +1 -8
  35. data/lib/new_relic/agent/messaging.rb +12 -5
  36. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -2
  37. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +2 -1
  38. data/lib/new_relic/agent/monitors.rb +0 -3
  39. data/lib/new_relic/agent/new_relic_service/encoders.rb +0 -14
  40. data/lib/new_relic/agent/new_relic_service.rb +11 -49
  41. data/lib/new_relic/agent/opentelemetry/trace/span.rb +41 -0
  42. data/lib/new_relic/agent/opentelemetry/trace/tracer.rb +16 -7
  43. data/lib/new_relic/agent/opentelemetry_bridge.rb +9 -5
  44. data/lib/new_relic/agent/serverless_handler.rb +2 -2
  45. data/lib/new_relic/agent/span_event_primitive.rb +1 -1
  46. data/lib/new_relic/agent/sql_sampler.rb +0 -31
  47. data/lib/new_relic/agent/stats_engine.rb +1 -0
  48. data/lib/new_relic/agent/transaction/distributed_tracer.rb +12 -56
  49. data/lib/new_relic/agent/transaction/distributed_tracing.rb +11 -19
  50. data/lib/new_relic/agent/transaction/external_request_segment.rb +1 -131
  51. data/lib/new_relic/agent/transaction/message_broker_segment.rb +0 -2
  52. data/lib/new_relic/agent/transaction/trace_context.rb +33 -11
  53. data/lib/new_relic/agent/transaction.rb +35 -4
  54. data/lib/new_relic/agent/transaction_error_primitive.rb +0 -8
  55. data/lib/new_relic/agent/transaction_event_primitive.rb +0 -14
  56. data/lib/new_relic/agent/utilization/gcp.rb +2 -0
  57. data/lib/new_relic/agent.rb +11 -3
  58. data/lib/new_relic/cli/command.rb +2 -11
  59. data/lib/new_relic/control/instance_methods.rb +2 -15
  60. data/lib/new_relic/control/private_instance_methods.rb +2 -4
  61. data/lib/new_relic/control/server_methods.rb +0 -6
  62. data/lib/new_relic/helper.rb +21 -2
  63. data/lib/new_relic/language_support.rb +3 -34
  64. data/lib/new_relic/supportability_helper.rb +0 -4
  65. data/lib/new_relic/version.rb +2 -2
  66. data/lib/tasks/helpers/newrelicyml.rb +2 -2
  67. data/lib/tasks/helpers/version_bump.rb +1 -2
  68. data/newrelic.yml +25 -28
  69. data/newrelic_rpm.gemspec +10 -9
  70. metadata +27 -26
  71. data/bin/newrelic +0 -8
  72. data/lib/new_relic/agent/configuration/security_policy_source.rb +0 -246
  73. data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +0 -44
  74. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +0 -253
  75. data/lib/new_relic/agent/external.rb +0 -112
  76. data/lib/new_relic/agent/monitors/cross_app_monitor.rb +0 -117
  77. data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +0 -61
  78. data/lib/new_relic/cli/commands/deployments.rb +0 -206
  79. data/lib/new_relic/recipes/capistrano3.rb +0 -23
  80. data/lib/new_relic/recipes/capistrano_legacy.rb +0 -95
  81. data/lib/new_relic/recipes/helpers/send_deployment.rb +0 -70
  82. data/lib/new_relic/recipes.rb +0 -24
  83. data/recipes/newrelic.rb +0 -10
@@ -55,7 +55,6 @@ module NewRelic
55
55
  require 'new_relic/agent/rules_engine'
56
56
  require 'new_relic/agent/http_clients/uri_util'
57
57
  require 'new_relic/agent/system_info'
58
- require 'new_relic/agent/external'
59
58
  require 'new_relic/agent/deprecator'
60
59
  require 'new_relic/agent/logging'
61
60
  require 'new_relic/agent/distributed_tracing'
@@ -117,6 +116,9 @@ module NewRelic
117
116
  # been configured for
118
117
  AUTOMATIC_TRACER_MAX_ATTEMPTS = 60 # 60 = try about twice a second for 30 seconds
119
118
 
119
+ # Event types must consist of only alphanumeric characters, '_', ':', or ' '.
120
+ VALID_CUSTOM_EVENT_TYPE = /\A[\w: ]+\z/
121
+
120
122
  attr_reader :error_group_callback
121
123
  attr_reader :llm_token_count_callback
122
124
 
@@ -329,8 +331,10 @@ module NewRelic
329
331
 
330
332
  # Increment a simple counter metric.
331
333
  #
332
- # +metric_name+ should follow a slash separated path convention. Application
333
- # specific metrics should begin with "Custom/".
334
+ # +metric_name+ should be a String that follows a slash separated
335
+ # path convention. Application specific metrics should begin with
336
+ # "Custom/".
337
+ # +amount+ (optional) should be a Numeric value to increment. Defaults to 1.
334
338
  #
335
339
  # This method is safe to use from any thread.
336
340
  #
@@ -483,6 +487,10 @@ module NewRelic
483
487
  # @api public
484
488
  #
485
489
  def record_custom_event(event_type, event_attrs)
490
+ unless event_type.to_s.match?(VALID_CUSTOM_EVENT_TYPE)
491
+ raise ArgumentError, "Invalid event_type: '#{event_type}'. Event types must consist of only alphanumeric characters, '_', ':', or ' '."
492
+ end
493
+
486
494
  record_api_supportability_metric(:record_custom_event)
487
495
 
488
496
  if agent && NewRelic::Agent.config[:'custom_insights_events.enabled']
@@ -4,9 +4,8 @@
4
4
 
5
5
  require 'optparse'
6
6
 
7
- # Run the command given by the first argument. Right
8
- # now all we have is deployments. We hope to have other
9
- # kinds of events here later.
7
+ # Run the command given by the first argument.
8
+ # Commands can be found in the commands/ directory.
10
9
  $LOAD_PATH << "#{File.dirname(__FILE__)}/.."
11
10
  module NewRelic
12
11
  module Cli
@@ -61,20 +60,12 @@ module NewRelic
61
60
  options = ARGV.options do |opts|
62
61
  script_name = File.basename($0)
63
62
 
64
- # TODO: MAJOR VERSION - remove newrelic, deprecated since version x.xx
65
- if /newrelic$/.match?(script_name)
66
- $stdout.puts "warning: the 'newrelic' script has been renamed 'newrelic_rpm'"
67
- script_name = 'newrelic_rpm'
68
- end
69
-
70
63
  opts.banner = "Usage: #{script_name} [ #{@command_names.join(' | ')} ] [options]"
71
64
  opts.separator("use '#{script_name} <command> -h' to see detailed command options")
72
65
  opts
73
66
  end
74
67
  extra = options.order!
75
68
  command = extra.shift
76
- # just make it a little easier on them
77
- command = 'deployments' if command.include?('deploy')
78
69
  if command.nil?
79
70
  STDERR.puts options
80
71
  elsif !@command_names.include?(command)
@@ -99,10 +99,8 @@ module NewRelic
99
99
  manual = Agent::Configuration::ManualSource.new(options)
100
100
  Agent.config.replace_or_add_config(manual)
101
101
 
102
- # if manual config sees serverless mode enabled, then the proc
103
- # must have returned 'true'. don't bother with YAML and high security
104
- # in a serverless context
105
- return if Agent.config[:'serverless_mode.enabled']
102
+ # don't bother with YAML and high security in a serverless context
103
+ return if Agent.config[:'serverless_mode.enabled'] || env == 'serverless'
106
104
 
107
105
  yaml_source = Agent::Configuration::YamlSource.new(config_file_path, env)
108
106
  log_yaml_source_failures(yaml_source) if yaml_source.failed?
@@ -110,17 +108,6 @@ module NewRelic
110
108
  configure_high_security
111
109
  end
112
110
 
113
- def security_settings_valid?
114
- !Agent.config[:high_security] || Agent.config[:security_policies_token].empty?
115
- end
116
-
117
- def handle_invalid_security_settings
118
- NewRelic::Agent.logger.error('Security Policies and High Security Mode cannot both be present in the agent ' \
119
- 'configuration. If Security Policies have been set for your account, please ensure the ' \
120
- 'security_policies_token is set but high_security is disabled (default).')
121
- install_shim
122
- end
123
-
124
111
  # Install the real agent into the Agent module, and issue the start command.
125
112
  def start_agent
126
113
  @started_in_env = self.env
@@ -11,7 +11,7 @@ module NewRelic
11
11
  private
12
12
 
13
13
  def configure_high_security
14
- if security_settings_valid? && Agent.config[:high_security]
14
+ if Agent.config[:high_security]
15
15
  Agent.logger.info('Installing high security configuration based on local configuration')
16
16
  Agent.config.replace_or_add_config(Agent::Configuration::HighSecuritySource.new(Agent.config))
17
17
  end
@@ -32,9 +32,7 @@ module NewRelic
32
32
  end
33
33
 
34
34
  def init_instrumentation
35
- if !security_settings_valid?
36
- handle_invalid_security_settings
37
- elsif Agent.config[:agent_enabled] && !NewRelic::Agent.instance.started?
35
+ if Agent.config[:agent_enabled] && !NewRelic::Agent.instance.started?
38
36
  start_agent
39
37
  install_instrumentation
40
38
  elsif !Agent.config[:agent_enabled]
@@ -15,12 +15,6 @@ module NewRelic
15
15
  @remote_server ||= server_from_host(nil)
16
16
  end
17
17
 
18
- # the server we should contact for api requests, like uploading
19
- # deployments and the like
20
- def api_server
21
- @api_server ||= NewRelic::Control::Server.new(Agent.config[:api_host], Agent.config[:api_port])
22
- end
23
-
24
18
  def server_from_host(hostname = nil)
25
19
  NewRelic::Control::Server.new(hostname || Agent.config[:host], Agent.config[:port])
26
20
  end
@@ -84,12 +84,31 @@ module NewRelic
84
84
  end
85
85
 
86
86
  def version_satisfied?(left, operator, right)
87
- left = Gem::Version.new(left) unless left.is_a?(Gem::Version)
88
- right = Gem::Version.new(right) unless right.is_a?(Gem::Version)
87
+ left = normalize_version(left)
88
+ right = normalize_version(right)
89
89
 
90
90
  left.public_send(operator, right)
91
91
  end
92
92
 
93
+ def normalize_version(version)
94
+ return Gem::Version.new('0') if version.nil? || version.to_s.empty?
95
+ return version if version.is_a?(Gem::Version)
96
+
97
+ Gem::Version.new(version.to_s)
98
+ end
99
+
100
+ def version_greater_than?(left, right)
101
+ version_satisfied?(left, :>, right)
102
+ end
103
+
104
+ def version_less_than?(left, right)
105
+ version_satisfied?(left, :<, right)
106
+ end
107
+
108
+ def version_equals?(left, right)
109
+ version_satisfied?(left, :==, right)
110
+ end
111
+
93
112
  # Bundler version 2.5.12 deprecated all_specs and added installed_specs.
94
113
  # To support newer Bundler versions, try to use installed_specs first,
95
114
  # then fall back to all_specs.
@@ -35,42 +35,11 @@ module NewRelic
35
35
  RUBY_ENGINE == 'jruby'
36
36
  end
37
37
 
38
- # TODO: OLD RUBIES - RUBY_VERSION < 2.6
39
- #
40
- # Ruby 2.6 introduced an improved version of `Object.const_get` that
41
- # respects the full namespace of the input and doesn't just grab the first
42
- # constant matching the string to the right of the last '::'.
43
- # Once we drop support for Ruby 2.5 and below, the only value this custom
44
- # method will provide beyond `Object.const_get` itself is to automatically
45
- # catch NameError.
46
- #
47
- # see: https://github.com/rails/rails/commit/7057ccf6565c1cb5354c1906880119276a9d15c0
48
- #
49
- # With Ruby 2.6+, this method can be defined like so:
50
- # def constantize(constant_as_string_or_symbol)
51
- # Object.const_get(constant_as_string_or_symbol)
52
- # rescue NameError
53
- # end
54
- #
55
38
  def constantize(const_name)
56
- const_name.to_s.sub(/\A::/, '').split('::').inject(Object) do |namespace, name|
57
- begin
58
- result = namespace.const_get(name)
39
+ return if const_name.nil?
59
40
 
60
- # const_get looks up the inheritance chain, so if it's a class
61
- # in the constant make sure we found the one in our namespace.
62
- #
63
- # Can't help if the constant isn't a class...
64
- if result.is_a?(Module)
65
- expected_name = "#{namespace}::#{name}".gsub(/^Object::/, '')
66
- return unless expected_name == result.to_s
67
- end
68
-
69
- result
70
- rescue NameError
71
- nil
72
- end
73
- end
41
+ Object.const_get(const_name)
42
+ rescue NameError
74
43
  end
75
44
 
76
45
  def camelize(string)
@@ -23,8 +23,6 @@ module NewRelic
23
23
  :disable_all_tracing,
24
24
  :disable_sql_recording,
25
25
  :drop_buffered_data,
26
- :get_request_metadata,
27
- :get_response_metadata,
28
26
  :get_transaction_name,
29
27
  :ignore_apdex,
30
28
  :ignore_enduser,
@@ -39,8 +37,6 @@ module NewRelic
39
37
  :notice_sql,
40
38
  :notice_statement,
41
39
  :perform_action_with_newrelic_trace,
42
- :process_request_metadata,
43
- :process_response_metadata,
44
40
  :record_custom_event,
45
41
  :record_metric,
46
42
  :record_llm_feedback_event,
@@ -5,8 +5,8 @@
5
5
 
6
6
  module NewRelic
7
7
  module VERSION # :nodoc:
8
- MAJOR = 9
9
- MINOR = 23
8
+ MAJOR = 10
9
+ MINOR = 0
10
10
  TINY = 0
11
11
 
12
12
  STRING = "#{MAJOR}.#{MINOR}.#{TINY}"
@@ -103,8 +103,8 @@ module NewRelicYML
103
103
 
104
104
  next unless public_config?(value) && !deprecated?(value)
105
105
 
106
- # TODO: OLD RUBIES < 2.6
107
- # Remove `to_s`. `start_with?` doesn't accept symbols in Ruby <2.6
106
+ # TODO: OLD RUBIES < 2.7
107
+ # Symbol doesn't have `start_with?`in Ruby <2.7. In 2.7+, change to key.start_with?('security.')
108
108
  if key.to_s.start_with?('security.')
109
109
  description, default = build_config(key, value)
110
110
  security_configs[key] = {description: description, default: default}
@@ -46,7 +46,7 @@ module VersionBump
46
46
  def self.determine_bump_type
47
47
  file = read_file('CHANGELOG.md')
48
48
  lines = file.split('## ')[1].split('- **')
49
- return MAJOR if lines.first.include?('Major version')
49
+ return MAJOR if lines.any? { |line| line.include?('Breaking Change:') }
50
50
  return MINOR if lines.any? { |line| line.include?('Feature:') }
51
51
 
52
52
  TINY
@@ -56,7 +56,6 @@ module VersionBump
56
56
  def self.update_changelog(version)
57
57
  file = read_file('CHANGELOG.md')
58
58
  file.gsub!('## dev', "## v#{version}")
59
- file.gsub!('Version <dev>', "Version #{version}")
60
59
  write_file('CHANGELOG.md', file)
61
60
  end
62
61
  end
data/newrelic.yml CHANGED
@@ -52,11 +52,6 @@ common: &default_settings
52
52
  # If true, enables capture of all HTTP request headers for all destinations.
53
53
  # allow_all_headers: false
54
54
 
55
- # # DEPRECATED: The api_key config setting is now deprecated. Its only use was
56
- # for the newrelic deployments command, which is being removed in agent version
57
- # 10.0.0.
58
- # api_key: ""
59
-
60
55
  # If true, enables log decoration and the collection of log events and metrics.
61
56
  # application_logging.enabled: true
62
57
 
@@ -332,20 +327,8 @@ common: &default_settings
332
327
  # disable_sidekiq: false
333
328
 
334
329
  # If true, disables agent middleware for Sinatra. This middleware is responsible
335
- # for advanced feature support such as cross application tracing, page load
336
- # timing, and error collection.
337
- #
338
- # Cross application tracing is deprecated in favor of distributed tracing.
339
- # Distributed tracing is on by default for Ruby agent versions 8.0.0 and above.
340
- # Middlewares are not required to support distributed tracing.
341
- #
342
- # To continue using cross application tracing, update the following options in
343
- # your newrelic.yml configuration file:
344
- #
345
- # cross_application_tracer:
346
- # enabled: true
347
- # distributed_tracing:
348
- # enabled: false
330
+ # for advanced feature support such as distributed tracing, page load timing,
331
+ # and error collection.
349
332
  # disable_sinatra_auto_middleware: false
350
333
 
351
334
  # If true, disables view instrumentation.
@@ -361,14 +344,20 @@ common: &default_settings
361
344
  # distributed_tracing.enabled: true
362
345
 
363
346
  # This setting controls the behavior of transaction sampling when a remote
364
- # parent is not sampled and the trace flag is not set in the traceparent.
365
- # Available values are default, always_on, and always_off.
366
- # distributed_tracing.sampler.remote_parent_not_sampled: default
347
+ # parent is not sampled. Available values are adaptive (the default), always_on,
348
+ # always_off, and trace_id_ratio_based.
349
+ # distributed_tracing.sampler.remote_parent_not_sampled: adaptive
367
350
 
368
351
  # This setting controls the behavior of transaction sampling when a remote
369
- # parent is sampled and the trace flag is set in the traceparent. Available
370
- # values are default, always_on, and always_off.
371
- # distributed_tracing.sampler.remote_parent_sampled: default
352
+ # parent is sampled. Available values are adaptive (the default), always_on,
353
+ # always_off, and trace_id_ratio_based..
354
+ # distributed_tracing.sampler.remote_parent_sampled: adaptive
355
+
356
+ # This setting controls the behavior of transaction sampling for transactions
357
+ # without a remote parent, traces that originate within this instance of the New
358
+ # Relic agent. Available values are adaptive (the default), always_on,
359
+ # always_off, and trace_id_ratio_based.
360
+ # distributed_tracing.sampler.root: adaptive
372
361
 
373
362
  # If true, the agent captures the Elasticsearch cluster name in transaction
374
363
  # traces.
@@ -487,6 +476,17 @@ common: &default_settings
487
476
  # of: auto, prepend, chain, disabled. Used in Rails versions below 7.1.
488
477
  # instrumentation.active_support_logger: auto
489
478
 
479
+ # An allowlist array of Active Support notifications events specific to the
480
+ # Active Support library itself that the agent should subscribe to. The Active
481
+ # Support library specific events focus primarily on caching. Any event name not
482
+ # included in this list will be ignored by the agent. Provide complete event
483
+ # names such as 'cache_fetch_hit.active_support'. Do not provide asterisks or
484
+ # regex patterns, and do not escape any characters with backslashes. For a
485
+ # complete list of all possible Active Support event names, see the list of
486
+ # caching names and the list of messages names from the official Rails
487
+ # documentation.
488
+ # instrumentation.active_support_notifications.active_support_events: ["cache_fetch_hit.active_support", "cache_generate.active_support", "cache_read.active_support", "cache_write.active_support", "cache_delete.active_support", "cache_exist?.active_support", "cache_read_multi.active_support", "cache_write_multi.active_support", "cache_delete_multi.active_support", "cache_delete_matched.active_support", "cache_cleanup.active_support", "cache_increment.active_support", "cache_decrement.active_support", "cache_prune.active_support", "message_serializer_fallback.active_support"]
489
+
490
490
  # Controls auto-instrumentation of Async::HTTP at start up. May be one of: auto,
491
491
  # prepend, chain, disabled.
492
492
  # instrumentation.async_http: auto
@@ -758,9 +758,6 @@ common: &default_settings
758
758
  # ignoring specific transactions.
759
759
  # rules.ignore_url_regexes: []
760
760
 
761
- # Applies Language Agent Security Policy settings.
762
- # security_policies_token: ""
763
-
764
761
  # If true, enables the exit handler that sends data to the New Relic collector
765
762
  # before shutting down.
766
763
  # send_data_on_exit: true
data/newrelic_rpm.gemspec CHANGED
@@ -8,7 +8,7 @@ require 'new_relic/latest_changes'
8
8
  Gem::Specification.new do |s|
9
9
  s.name = 'newrelic_rpm'
10
10
  s.version = NewRelic::VERSION::STRING
11
- s.required_ruby_version = '>= 2.4.0'
11
+ s.required_ruby_version = '>= 2.6.0'
12
12
  s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to?(:required_rubygems_version=)
13
13
  s.authors = ['Tanna McClure', 'Kayla Reopelle', 'Hannah Ramadan']
14
14
  s.licenses = ['Apache-2.0']
@@ -21,8 +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, deprecated since version xxx.
25
- s.executables = %w[newrelic_rpm newrelic nrdebug]
24
+ s.executables = %w[newrelic_rpm nrdebug]
26
25
  s.extra_rdoc_files = [
27
26
  'CHANGELOG.md',
28
27
  'LICENSE',
@@ -50,8 +49,10 @@ Gem::Specification.new do |s|
50
49
  s.require_paths = ['lib']
51
50
  s.summary = 'New Relic Ruby Agent'
52
51
 
52
+ s.add_dependency 'logger'
53
+
53
54
  s.add_development_dependency 'bundler'
54
- s.add_development_dependency 'feedjira', '3.2.1' unless ENV['CI'] || RUBY_VERSION < '2.5' # for Gabby
55
+ s.add_development_dependency 'feedjira', '3.2.1' unless ENV['CI']
55
56
  s.add_development_dependency 'httparty' unless ENV['CI'] # for perf tests and Gabby
56
57
  s.add_development_dependency 'minitest', "#{RUBY_VERSION >= '2.7.0' ? '5.3.3' : '4.7.5'}"
57
58
  s.add_development_dependency 'minitest-stub-const', '0.6'
@@ -62,11 +63,11 @@ Gem::Specification.new do |s|
62
63
  s.add_development_dependency 'rack'
63
64
  s.add_development_dependency 'rake', '12.3.3'
64
65
 
65
- s.add_development_dependency 'rubocop', '1.57.2' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
66
- s.add_development_dependency 'rubocop-ast', '1.28.1' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
67
- s.add_development_dependency 'rubocop-minitest', '0.27.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
68
- s.add_development_dependency 'rubocop-performance', '1.16.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
69
- s.add_development_dependency 'rubocop-rake', '0.6.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
66
+ s.add_development_dependency 'rubocop', '1.81.7' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
67
+ s.add_development_dependency 'rubocop-ast', '1.47.1' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
68
+ s.add_development_dependency 'rubocop-minitest', '0.38.2' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
69
+ s.add_development_dependency 'rubocop-performance', '1.26.1' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
70
+ s.add_development_dependency 'rubocop-rake', '0.7.1' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
70
71
 
71
72
  s.add_development_dependency 'simplecov' if RUBY_VERSION >= '2.7.0'
72
73
  s.add_development_dependency 'thor' unless ENV['CI']
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.23.0
4
+ version: 10.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanna McClure
@@ -11,6 +11,20 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 1980-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: logger
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: bundler
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -129,70 +143,70 @@ dependencies:
129
143
  requirements:
130
144
  - - '='
131
145
  - !ruby/object:Gem::Version
132
- version: 1.57.2
146
+ version: 1.81.7
133
147
  type: :development
134
148
  prerelease: false
135
149
  version_requirements: !ruby/object:Gem::Requirement
136
150
  requirements:
137
151
  - - '='
138
152
  - !ruby/object:Gem::Version
139
- version: 1.57.2
153
+ version: 1.81.7
140
154
  - !ruby/object:Gem::Dependency
141
155
  name: rubocop-ast
142
156
  requirement: !ruby/object:Gem::Requirement
143
157
  requirements:
144
158
  - - '='
145
159
  - !ruby/object:Gem::Version
146
- version: 1.28.1
160
+ version: 1.47.1
147
161
  type: :development
148
162
  prerelease: false
149
163
  version_requirements: !ruby/object:Gem::Requirement
150
164
  requirements:
151
165
  - - '='
152
166
  - !ruby/object:Gem::Version
153
- version: 1.28.1
167
+ version: 1.47.1
154
168
  - !ruby/object:Gem::Dependency
155
169
  name: rubocop-minitest
156
170
  requirement: !ruby/object:Gem::Requirement
157
171
  requirements:
158
172
  - - '='
159
173
  - !ruby/object:Gem::Version
160
- version: 0.27.0
174
+ version: 0.38.2
161
175
  type: :development
162
176
  prerelease: false
163
177
  version_requirements: !ruby/object:Gem::Requirement
164
178
  requirements:
165
179
  - - '='
166
180
  - !ruby/object:Gem::Version
167
- version: 0.27.0
181
+ version: 0.38.2
168
182
  - !ruby/object:Gem::Dependency
169
183
  name: rubocop-performance
170
184
  requirement: !ruby/object:Gem::Requirement
171
185
  requirements:
172
186
  - - '='
173
187
  - !ruby/object:Gem::Version
174
- version: 1.16.0
188
+ version: 1.26.1
175
189
  type: :development
176
190
  prerelease: false
177
191
  version_requirements: !ruby/object:Gem::Requirement
178
192
  requirements:
179
193
  - - '='
180
194
  - !ruby/object:Gem::Version
181
- version: 1.16.0
195
+ version: 1.26.1
182
196
  - !ruby/object:Gem::Dependency
183
197
  name: rubocop-rake
184
198
  requirement: !ruby/object:Gem::Requirement
185
199
  requirements:
186
200
  - - '='
187
201
  - !ruby/object:Gem::Version
188
- version: 0.6.0
202
+ version: 0.7.1
189
203
  type: :development
190
204
  prerelease: false
191
205
  version_requirements: !ruby/object:Gem::Requirement
192
206
  requirements:
193
207
  - - '='
194
208
  - !ruby/object:Gem::Version
195
- version: 0.6.0
209
+ version: 0.7.1
196
210
  - !ruby/object:Gem::Dependency
197
211
  name: simplecov
198
212
  requirement: !ruby/object:Gem::Requirement
@@ -244,7 +258,6 @@ description: |
244
258
  https://github.com/newrelic/newrelic-ruby-agent/
245
259
  email: support@newrelic.com
246
260
  executables:
247
- - newrelic
248
261
  - newrelic_rpm
249
262
  - nrdebug
250
263
  extensions: []
@@ -264,7 +277,6 @@ files:
264
277
  - Rakefile
265
278
  - THIRD_PARTY_NOTICES.md
266
279
  - Thorfile
267
- - bin/newrelic
268
280
  - bin/newrelic_rpm
269
281
  - bin/nrdebug
270
282
  - init.rb
@@ -301,7 +313,7 @@ files:
301
313
  - lib/new_relic/agent/configuration/manager.rb
302
314
  - lib/new_relic/agent/configuration/manual_source.rb
303
315
  - lib/new_relic/agent/configuration/mask_defaults.rb
304
- - lib/new_relic/agent/configuration/security_policy_source.rb
316
+ - lib/new_relic/agent/configuration/sampler_config_validator.rb
305
317
  - lib/new_relic/agent/configuration/server_source.rb
306
318
  - lib/new_relic/agent/configuration/yaml_source.rb
307
319
  - lib/new_relic/agent/connect/request_builder.rb
@@ -322,8 +334,6 @@ files:
322
334
  - lib/new_relic/agent/datastores/redis.rb
323
335
  - lib/new_relic/agent/deprecator.rb
324
336
  - lib/new_relic/agent/distributed_tracing.rb
325
- - lib/new_relic/agent/distributed_tracing/cross_app_payload.rb
326
- - lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb
327
337
  - lib/new_relic/agent/distributed_tracing/distributed_trace_attributes.rb
328
338
  - lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb
329
339
  - lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb
@@ -339,7 +349,6 @@ files:
339
349
  - lib/new_relic/agent/event_buffer.rb
340
350
  - lib/new_relic/agent/event_listener.rb
341
351
  - lib/new_relic/agent/event_loop.rb
342
- - lib/new_relic/agent/external.rb
343
352
  - lib/new_relic/agent/guid_generator.rb
344
353
  - lib/new_relic/agent/harvester.rb
345
354
  - lib/new_relic/agent/health_check.rb
@@ -601,7 +610,6 @@ files:
601
610
  - lib/new_relic/agent/method_tracer.rb
602
611
  - lib/new_relic/agent/method_tracer_helpers.rb
603
612
  - lib/new_relic/agent/monitors.rb
604
- - lib/new_relic/agent/monitors/cross_app_monitor.rb
605
613
  - lib/new_relic/agent/monitors/distributed_tracing_monitor.rb
606
614
  - lib/new_relic/agent/monitors/inbound_request_monitor.rb
607
615
  - lib/new_relic/agent/monitors/synthetics_monitor.rb
@@ -609,7 +617,6 @@ files:
609
617
  - lib/new_relic/agent/new_relic_service/encoders.rb
610
618
  - lib/new_relic/agent/new_relic_service/json_marshaller.rb
611
619
  - lib/new_relic/agent/new_relic_service/marshaller.rb
612
- - lib/new_relic/agent/new_relic_service/security_policy_settings.rb
613
620
  - lib/new_relic/agent/noticeable_error.rb
614
621
  - lib/new_relic/agent/null_logger.rb
615
622
  - lib/new_relic/agent/obfuscator.rb
@@ -696,7 +703,6 @@ files:
696
703
  - lib/new_relic/agent/worker_loop.rb
697
704
  - lib/new_relic/base64.rb
698
705
  - lib/new_relic/cli/command.rb
699
- - lib/new_relic/cli/commands/deployments.rb
700
706
  - lib/new_relic/cli/commands/install.rb
701
707
  - lib/new_relic/coerce.rb
702
708
  - lib/new_relic/collection_helper.rb
@@ -733,10 +739,6 @@ files:
733
739
  - lib/new_relic/rack/agent_hooks.rb
734
740
  - lib/new_relic/rack/agent_middleware.rb
735
741
  - lib/new_relic/rack/browser_monitoring.rb
736
- - lib/new_relic/recipes.rb
737
- - lib/new_relic/recipes/capistrano3.rb
738
- - lib/new_relic/recipes/capistrano_legacy.rb
739
- - lib/new_relic/recipes/helpers/send_deployment.rb
740
742
  - lib/new_relic/supportability_helper.rb
741
743
  - lib/new_relic/thread_local_storage.rb
742
744
  - lib/new_relic/traced_thread.rb
@@ -762,7 +764,6 @@ files:
762
764
  - lib/tasks/tests.rake
763
765
  - newrelic.yml
764
766
  - newrelic_rpm.gemspec
765
- - recipes/newrelic.rb
766
767
  - test/agent_helper.rb
767
768
  homepage: https://github.com/newrelic/newrelic-ruby-agent
768
769
  licenses:
@@ -780,7 +781,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
780
781
  requirements:
781
782
  - - ">="
782
783
  - !ruby/object:Gem::Version
783
- version: 2.4.0
784
+ version: 2.6.0
784
785
  required_rubygems_version: !ruby/object:Gem::Requirement
785
786
  requirements:
786
787
  - - ">"
data/bin/newrelic DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- # This command has been renamed "newrelic_rpm"
5
- # executes one of the commands in the new_relic/commands directory
6
- # pass the name of the command as an argument
7
-
8
- load File.dirname(__FILE__) + '/newrelic_rpm'