newrelic_rpm 6.10.0.364 → 6.11.0.365

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e5ab7fd3bb77356673eb2437785714e3935f9bbc9a763254425166753470f79
4
- data.tar.gz: a0a8b207924ef308a1105783cfa373ca77ca91deeb046cdea632d48afe9e9906
3
+ metadata.gz: 5c57ffc3785e824375bddaddea5ff0a281b9b3e6bb1d9a8df8ec8ee4514b5f87
4
+ data.tar.gz: 72b4889613aca4855ebffc39a1c09419871560cbbe5d2311457ec53181d861ca
5
5
  SHA512:
6
- metadata.gz: cf2e4fc7fb9c35dd2d1392a9b47e3dea5c908230d59b616eb51d8f544560e736e9ac7256419c51751ee24627d1bf291f190f1bb8a3bf75436152ebba340b21ba
7
- data.tar.gz: 1a29679d374d033b649cfa5966aad2127374de42f0527bbdc4091ff8c73f061a0df0b6049561eec2c4fe4af752329a139a9e2764e910943d315b5137d2cd93ea
6
+ metadata.gz: 39bbe0afde8eb032928ee3582b5ceb0d6870be12f63c45785d575e93a2d1516bbc15c306bd82681535cde1816aed074dd23795af036eb409f53dfc2d20f5c66f
7
+ data.tar.gz: 2a59cdff3bbfe3fb18b1b028a1d64f9b8a452783277313ca78b964c8cf9d8a2362b8872e2405549a3a594c5b2fa20c8439df05e4a76d608b5f3f79d880577a29
data/.gitignore CHANGED
@@ -28,3 +28,5 @@ lib/new_relic/build.rb
28
28
  artifacts/
29
29
  test/performance/log/
30
30
  test/performance/script/log/
31
+ infinite_tracing/log/
32
+ infinite_tracing/test/new_relic/infinite_tracing/log
@@ -32,6 +32,7 @@ addons:
32
32
  apt:
33
33
  update: true
34
34
  packages:
35
+ - libgmp3-dev
35
36
  - openssl
36
37
  - libssl-dev
37
38
  - build-essential
@@ -95,6 +96,7 @@ env:
95
96
  - TYPE=FUNCTIONAL GROUP=sinatra
96
97
  - TYPE=FUNCTIONAL GROUP=rest
97
98
  - TYPE=FUNCTIONAL GROUP=background_2
99
+ - TYPE=FUNCTIONAL GROUP=infinite_tracing
98
100
  - TYPE=NULLVERSE
99
101
 
100
102
  matrix:
@@ -223,3 +225,17 @@ matrix:
223
225
  env: TYPE=UNIT ENVIRONMENT=rails60
224
226
  - rvm: jruby-9.2.6.0
225
227
  env: TYPE=UNIT ENVIRONMENT=rails52
228
+
229
+ # Excluding unsupported Rubies for grpc
230
+ - rvm: 2.0.0-p648
231
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
232
+ - rvm: 2.1.10
233
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
234
+ - rvm: 2.2.8
235
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
236
+ - rvm: 2.3.5
237
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
238
+ - rvm: 2.4.2
239
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
240
+ - rvm: jruby-9.2.6.0
241
+ env: TYPE=FUNCTIONAL GROUP=infinite_tracing
@@ -1,5 +1,44 @@
1
1
  # New Relic Ruby Agent Release Notes #
2
2
 
3
+ ## v6.11.0
4
+
5
+ * **Infinite Tracing**
6
+
7
+ This release adds support for [Infinite Tracing](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/enable-configure/enable-distributed-tracing). Infinite Tracing observes 100% of your distributed traces and provides visualizations for the most actionable data. With Infinite Tracing, you get examples of errors and long-running traces so you can better diagnose and troubleshoot your systems.
8
+
9
+ Configure your agent to send traces to a trace observer in New Relic Edge. View distributed traces through New Relic’s UI. There is no need to install a collector on your network.
10
+
11
+ Infinite Tracing is currently available on a sign-up basis. If you would like to participate, please contact your sales representative.
12
+
13
+ * **Bugfix: Cross Application Tracing (CAT) adds a missing field to response**
14
+
15
+ Previously, the Ruby agent's Cross Application Tracing header was missing a reserved field that would lead to an error
16
+ in the Go agent's processing of incoming headers from the Ruby agent. This fix adds that missing field to the headers, eliminating
17
+ the issue with traces involving the Ruby agent and the Go agent.
18
+
19
+ * **Bugfix: Environment Report now supports Rails >= 6.1**
20
+
21
+ Previously, users of Rails 6.1 would see the following deprecation warning appear when the Ruby agent attempted to
22
+ collect enviroment data: `DEPRECATION WARNING: [] is deprecated and will be removed from Rails 6.2`. These deprecation methods
23
+ no longer appear.
24
+
25
+ Thanks to Sébastien Dubois (sedubois) for reporting this issue and for the contribution!
26
+
27
+ * **Added distributed tracing to Sidekiq jobs**
28
+
29
+ Previously, Sidekiq jobs were not included in portions of <a href="https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing">distributed traces</a> captured by the Ruby agent. Now you can view distributed
30
+ traces that include Sidekiq jobs instrumented by the Ruby agent.
31
+
32
+ Thanks to andreaseger for the contribution!
33
+
34
+ * **Bugfix: Eliminate warnings appearing when using `add_method_tracer` with Ruby 2.7**
35
+
36
+ Previously, using `add_method_tracer` with Ruby 2.7 to trace a method that included keyword arguments resulted in warning messages:
37
+ `warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call`. These messages no
38
+ longer appear.
39
+
40
+ Thanks to Harm de Wit and Atsuo Fukaya for reporting the issue!
41
+
3
42
  ## v6.10.0
4
43
 
5
44
  * **Error attributes now added to each span that exits with an error or exception**
@@ -54,6 +93,7 @@
54
93
  qualified domain name, which is used to help link Ruby agent data with data from New Relic Infrastructure.
55
94
  This information is now successfully collected on various BSD distros and Solaris.
56
95
 
96
+
57
97
  ## v6.9.0
58
98
 
59
99
  * **Added support for W3C Trace Context, with easy upgrade from New Relic trace context**
data/Gemfile CHANGED
@@ -1,3 +1,7 @@
1
- source 'https://rubygems.org'
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+ # frozen_string_literal: true
2
5
 
3
- gemspec
6
+ source 'https://rubygems.org'
7
+ gemspec name: "newrelic_rpm"
data/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
1
  All components of this product are
2
- Copyright (c) 2008-2017 New Relic, Inc. All rights reserved.
2
+ Copyright (c) 2008-2020 New Relic, Inc. All rights reserved.
3
3
 
4
4
  Certain inventions disclosed in this file may be claimed within
5
5
  patents owned or patent applications filed by New Relic, Inc. or third
data/Rakefile CHANGED
@@ -113,6 +113,7 @@ namespace :cross_agent_tests do
113
113
  cross_agent_tests_upstream_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'cross_agent_tests'))
114
114
  cross_agent_tests_local_path = File.expand_path(File.join(File.dirname(__FILE__), 'test', 'fixtures', 'cross_agent_tests'))
115
115
 
116
+ # Note: before you pull, make sure your local repo is on the correct, synced branch!
116
117
  desc 'Pull latest changes from cross_agent_tests repo'
117
118
  task :pull do
118
119
  puts "Updating embedded cross_agent_tests from #{cross_agent_tests_upstream_path}..."
@@ -136,3 +137,4 @@ task :console do
136
137
  ARGV.clear
137
138
  Pry.start
138
139
  end
140
+
@@ -757,10 +757,8 @@ module NewRelic
757
757
  # /agents/agent-specs/Collector-Response-Handling.md, retry
758
758
  # connections after a specific backoff sequence to prevent
759
759
  # hammering the server.
760
- CONNECT_RETRY_PERIODS = [15, 15, 30, 60, 120, 300]
761
-
762
760
  def connect_retry_period
763
- CONNECT_RETRY_PERIODS[connect_attempts] || 300
761
+ NewRelic::CONNECT_RETRY_PERIODS[connect_attempts] || NewRelic::MAX_RETRY_PERIOD
764
762
  end
765
763
 
766
764
  def note_connect_failure
@@ -1921,6 +1921,14 @@ module NewRelic
1921
1921
  :allowed_from_server => true,
1922
1922
  :description => 'If <code>true</code>, enables span event sampling.'
1923
1923
  },
1924
+ :'span_events.queue_size' => {
1925
+ :default => 10_000,
1926
+ :public => true,
1927
+ :type => Integer,
1928
+ :allowed_from_server => false,
1929
+ :external => :infinite_tracing,
1930
+ :description => "Sets the maximum number of span events to buffer when streaming to the trace observer."
1931
+ },
1924
1932
  :'span_events.max_samples_stored' => {
1925
1933
  :default => 1000,
1926
1934
  :public => true,
@@ -1934,6 +1942,25 @@ module NewRelic
1934
1942
  :type => Boolean,
1935
1943
  :allowed_from_server => true,
1936
1944
  :description => "Allows newrelic distributed tracing headers to be suppressed on outbound requests."
1945
+ },
1946
+ :'infinite_tracing.trace_observer.host' => {
1947
+ :default => '',
1948
+ :public => true,
1949
+ :type => String,
1950
+ :allowed_from_server => false,
1951
+ :external => :infinite_tracing,
1952
+ :description => "Configures the hostname for the Trace Observer Host. " \
1953
+ "When configured, enables tail-based sampling by sending all recorded spans " \
1954
+ "to a Trace Observer for further sampling decisions, irrespective of any usual " \
1955
+ "agent sampling decision."
1956
+ },
1957
+ :'infinite_tracing.trace_observer.port' => {
1958
+ :default => 443,
1959
+ :public => true,
1960
+ :type => Integer,
1961
+ :allowed_from_server => false,
1962
+ :external => :infinite_tracing,
1963
+ :description => "Configures the TCP/IP port for the Trace Observer Host"
1937
1964
  }
1938
1965
  }.freeze
1939
1966
  end
@@ -11,7 +11,7 @@ module NewRelic
11
11
  :double_quotes => /"(?:[^"]|"")*?(?:\\".*|"(?!"))/,
12
12
  :dollar_quotes => /(\$(?!\d)[^$]*?\$).*?(?:\1|$)/,
13
13
  :uuids => /\{?(?:[0-9a-fA-F]\-*){32}\}?/,
14
- :numeric_literals => /\b-?(?:[0-9]+\.)?[0-9]+([eE][+-]?[0-9]+)?\b/,
14
+ :numeric_literals => /-?\b(?:[0-9]+\.)?[0-9]+([eE][+-]?[0-9]+)?\b/,
15
15
  :boolean_literals => /\b(?:true|false|null)\b/i,
16
16
  :hexadecimal_literals => /0x[0-9a-fA-F]+/,
17
17
  :comments => /(?:#|--).*?(?=\r|\n|$)/i,
@@ -29,7 +29,8 @@ module NewRelic
29
29
  queue_time_in_seconds.to_f,
30
30
  app_time_in_seconds.to_f,
31
31
  content_length,
32
- transaction.guid
32
+ transaction.guid,
33
+ false
33
34
  ]
34
35
  end
35
36
 
@@ -15,7 +15,7 @@ module NewRelic
15
15
  #
16
16
  # @api public
17
17
  class DistributedTracePayload
18
- extend Coerce
18
+ extend Coerce
19
19
 
20
20
  VERSION = [0, 1].freeze
21
21
  PARENT_TYPE = "App"
@@ -99,8 +99,7 @@ module NewRelic
99
99
  end
100
100
 
101
101
  def current_segment_id(transaction)
102
- if Agent.config[:'span_events.enabled'] && transaction.sampled? &&
103
- transaction.current_segment
102
+ if Agent.config[:'span_events.enabled'] && transaction.current_segment
104
103
  transaction.current_segment.guid
105
104
  end
106
105
  end
@@ -13,32 +13,48 @@ DependencyDetection.defer do
13
13
  end
14
14
 
15
15
  executes do
16
- class NewRelic::SidekiqInstrumentation
17
- include NewRelic::Agent::Instrumentation::ControllerInstrumentation
16
+ module NewRelic::SidekiqInstrumentation
17
+ class Server
18
+ include NewRelic::Agent::Instrumentation::ControllerInstrumentation
18
19
 
19
- # Client middleware has additional parameters, and our tests use the
20
- # middleware client-side to work inline.
21
- def call(worker, msg, queue, *_)
22
- trace_args = if worker.respond_to?(:newrelic_trace_args)
23
- worker.newrelic_trace_args(msg, queue)
24
- else
25
- self.class.default_trace_args(msg)
26
- end
20
+ # Client middleware has additional parameters, and our tests use the
21
+ # middleware client-side to work inline.
22
+ def call(worker, msg, queue, *_)
23
+ trace_args = if worker.respond_to?(:newrelic_trace_args)
24
+ worker.newrelic_trace_args(msg, queue)
25
+ else
26
+ self.class.default_trace_args(msg)
27
+ end
28
+ trace_headers = msg.delete(NewRelic::NEWRELIC_KEY)
29
+
30
+ perform_action_with_newrelic_trace(trace_args) do
31
+ NewRelic::Agent::Transaction.merge_untrusted_agent_attributes(msg['args'], :'job.sidekiq.args',
32
+ NewRelic::Agent::AttributeFilter::DST_NONE)
27
33
 
28
- perform_action_with_newrelic_trace(trace_args) do
29
- NewRelic::Agent::Transaction.merge_untrusted_agent_attributes(msg['args'], :'job.sidekiq.args',
30
- NewRelic::Agent::AttributeFilter::DST_NONE)
34
+ ::NewRelic::Agent::DistributedTracing::accept_distributed_trace_headers(trace_headers, "Other")
35
+ yield
36
+ end
37
+ end
31
38
 
32
- yield
39
+ def self.default_trace_args(msg)
40
+ {
41
+ :name => 'perform',
42
+ :class_name => msg['class'],
43
+ :category => 'OtherTransaction/SidekiqJob'
44
+ }
33
45
  end
34
46
  end
47
+ class Client
48
+ def call(_worker_class, job, *_)
49
+ job[NewRelic::NEWRELIC_KEY] = distributed_tracing_headers
50
+ yield
51
+ end
35
52
 
36
- def self.default_trace_args(msg)
37
- {
38
- :name => 'perform',
39
- :class_name => msg['class'],
40
- :category => 'OtherTransaction/SidekiqJob'
41
- }
53
+ def distributed_tracing_headers
54
+ headers = {}
55
+ ::NewRelic::Agent::DistributedTracing.insert_distributed_trace_headers(headers)
56
+ headers
57
+ end
42
58
  end
43
59
  end
44
60
 
@@ -52,13 +68,22 @@ DependencyDetection.defer do
52
68
  }
53
69
  rescue => e
54
70
  NewRelic::Agent.logger.error("Failure during deserializing YAML for Sidekiq::Extensions::DelayedClass", e)
55
- NewRelic::SidekiqInstrumentation.default_trace_args(msg)
71
+ NewRelic::SidekiqInstrumentation::Server.default_trace_args(msg)
56
72
  end
57
73
  end
58
74
 
75
+ Sidekiq.configure_client do |config|
76
+ config.client_middleware do |chain|
77
+ chain.add NewRelic::SidekiqInstrumentation::Client
78
+ end
79
+ end
80
+
59
81
  Sidekiq.configure_server do |config|
82
+ config.client_middleware do |chain|
83
+ chain.add NewRelic::SidekiqInstrumentation::Client
84
+ end
60
85
  config.server_middleware do |chain|
61
- chain.add NewRelic::SidekiqInstrumentation
86
+ chain.add NewRelic::SidekiqInstrumentation::Server
62
87
  end
63
88
 
64
89
  if config.respond_to?(:error_handlers)
@@ -178,15 +178,25 @@ module NewRelic
178
178
  header
179
179
  end
180
180
 
181
+ # Positional and Keyword arguments are separated beginning with Ruby 2.7
182
+ def arguments_for_ruby_version
183
+ if RUBY_VERSION < "2.7.0"
184
+ "(*args, &block)"
185
+ else
186
+ "(*args, **kwargs, &block)"
187
+ end
188
+ end
189
+
181
190
  # returns an eval-able string that contains the traced
182
191
  # method code used if the agent is not creating a scope for
183
192
  # use in scoped metrics.
184
193
  def method_without_push_scope(method_name, metric_name_code, options)
185
- "def #{_traced_method_name(method_name, metric_name_code)}(*args, &block)
194
+ arguments = arguments_for_ruby_version
195
+ "def #{_traced_method_name(method_name, metric_name_code)}#{arguments}
186
196
  #{assemble_code_header(method_name, metric_name_code, options)}
187
197
  t0 = Time.now
188
198
  begin
189
- #{_untraced_method_name(method_name, metric_name_code)}(*args, &block)\n
199
+ #{_untraced_method_name(method_name, metric_name_code)}#{arguments}\n
190
200
  ensure
191
201
  duration = (Time.now - t0).to_f
192
202
  NewRelic::Agent.record_metric(\"#{metric_name_code}\", duration)
@@ -198,11 +208,12 @@ module NewRelic
198
208
  # returns an eval-able string that contains the tracing code
199
209
  # for a fully traced metric including scoping
200
210
  def method_with_push_scope(method_name, metric_name_code, options)
201
- "def #{_traced_method_name(method_name, metric_name_code)}(*args, &block)
211
+ arguments = arguments_for_ruby_version
212
+ "def #{_traced_method_name(method_name, metric_name_code)}#{arguments}
202
213
  #{options[:code_header]}
203
214
  result = ::NewRelic::Agent::MethodTracerHelpers.trace_execution_scoped(\"#{metric_name_code}\",
204
215
  :metric => #{options[:metric]}) do
205
- #{_untraced_method_name(method_name, metric_name_code)}(*args, &block)
216
+ #{_untraced_method_name(method_name, metric_name_code)}#{arguments}
206
217
  end
207
218
  #{options[:code_footer]}
208
219
  result
@@ -65,7 +65,6 @@ module NewRelic
65
65
  # clear out our cached values whenever the run ID changes.
66
66
  #
67
67
  reset_remote_method_uris
68
-
69
68
  @agent_id = id
70
69
  end
71
70
 
@@ -118,13 +118,17 @@ module NewRelic
118
118
  TRACE_ID_KEY => segment.transaction.trace_id,
119
119
  GUID_KEY => segment.guid,
120
120
  TRANSACTION_ID_KEY => segment.transaction.guid,
121
- SAMPLED_KEY => segment.transaction.sampled?,
122
121
  PRIORITY_KEY => segment.transaction.priority,
123
122
  TIMESTAMP_KEY => milliseconds_since_epoch(segment),
124
123
  DURATION_KEY => segment.duration,
125
124
  NAME_KEY => segment.name
126
125
  }
127
126
 
127
+ # with infinite-tracing, transactions may or may not be sampled!
128
+ if segment.transaction.sampled?
129
+ intrinsics[SAMPLED_KEY] = true
130
+ end
131
+
128
132
  if segment.parent.nil?
129
133
  intrinsics[ENTRY_POINT_KEY] = true
130
134
  if txn = segment.transaction
@@ -170,11 +170,20 @@ module NewRelic
170
170
 
171
171
  container_id = case cpu_cgroup
172
172
  # docker native driver w/out systemd (fs)
173
- when /[0-9a-f]{64}/ then $&
173
+ when /[0-9a-f]{64,}/
174
+ if $&.length == 64
175
+ $&
176
+ else # container ID is too long
177
+ ::NewRelic::Agent.logger.debug("Ignoring docker ID of invalid length: '#{cpu_cgroup}'")
178
+ return
179
+ end
174
180
  # docker native driver with systemd
175
- when '/' then nil
181
+ when '/' then nil
176
182
  # in a cgroup, but we don't recognize its format
177
- when /docker/ then
183
+ when /docker\/.*[^0-9a-f]/ then
184
+ ::NewRelic::Agent.logger.debug("Cgroup indicates docker but container_id has invalid characters: '#{cpu_cgroup}'")
185
+ return
186
+ when /docker/ then
178
187
  ::NewRelic::Agent.logger.debug("Cgroup indicates docker but container_id unrecognized: '#{cpu_cgroup}'")
179
188
  ::NewRelic::Agent.increment_metric "Supportability/utilization/docker/error"
180
189
  return
@@ -31,4 +31,8 @@ module NewRelic
31
31
  HTTP_TRACEPARENT_KEY = "HTTP_#{TRACEPARENT_KEY.upcase}"
32
32
  HTTP_TRACESTATE_KEY = "HTTP_#{TRACESTATE_KEY.upcase}"
33
33
  HTTP_NEWRELIC_KEY = "HTTP_#{NEWRELIC_KEY.upcase}"
34
+
35
+ CONNECT_RETRY_PERIODS = [15, 15, 30, 60, 120, 300]
36
+ MIN_RETRY_PERIOD = 15
37
+ MAX_RETRY_PERIOD = 300
34
38
  end
@@ -70,7 +70,11 @@ module NewRelic
70
70
  report_on('OS version' ) { ::NewRelic::Agent::SystemInfo.os_version }
71
71
  report_on('OS' ) { ::NewRelic::Agent::SystemInfo.ruby_os_identifier }
72
72
  report_on('Database adapter' ) do
73
- ActiveRecord::Base.configurations[NewRelic::Control.instance.env]['adapter']
73
+ begin
74
+ ActiveRecord::Base.configurations.configs_for(env_name: NewRelic::Control.instance.env, spec_name: "primary").config['adapter']
75
+ rescue NoMethodError
76
+ ActiveRecord::Base.configurations[NewRelic::Control.instance.env]['adapter']
77
+ end
74
78
  end
75
79
  report_on('Framework' ) { Agent.config[:framework].to_s }
76
80
  report_on('Dispatcher' ) { Agent.config[:dispatcher].to_s }
@@ -11,7 +11,7 @@ module NewRelic
11
11
  end
12
12
 
13
13
  MAJOR = 6
14
- MINOR = 10
14
+ MINOR = 11
15
15
  TINY = 0
16
16
 
17
17
  begin
@@ -33,7 +33,7 @@ if defined? Rake::TestTask
33
33
 
34
34
  t.libs << "#{agent_home}/test"
35
35
  t.libs << "#{agent_home}/lib"
36
- t.pattern = Array(file_pattern).join(",")
36
+ t.pattern = Array(file_pattern)
37
37
  t.verbose = true
38
38
  end
39
39
 
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  New Relic is a performance management system, developed by New Relic,
18
18
  Inc (http://www.newrelic.com). New Relic provides you with deep
19
19
  information about the performance of your web application as it runs
20
- in production. The New Relic Ruby Agent is dual-purposed as a either a
20
+ in production. The New Relic Ruby agent is dual-purposed as a either a
21
21
  Gem or plugin, hosted on
22
22
  https://github.com/newrelic/rpm/
23
23
  EOS
@@ -38,7 +38,7 @@ EOS
38
38
  'source_code_uri' => 'https://github.com/newrelic/rpm'
39
39
  }
40
40
 
41
- file_list = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/(?!agent_helper.rb)}) }
41
+ file_list = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|infinite_tracing)/(?!agent_helper.rb)}) }
42
42
  build_file_path = 'lib/new_relic/build.rb'
43
43
  file_list << build_file_path if File.exist?(build_file_path)
44
44
  s.files = file_list
@@ -51,7 +51,7 @@ EOS
51
51
  s.add_development_dependency 'rake', '12.3.3'
52
52
  s.add_development_dependency 'rb-inotify', '0.9.10' # locked to support < Ruby 2.3 (and listen 3.0.8)
53
53
  s.add_development_dependency 'listen', '3.0.8' # locked to support < Ruby 2.3
54
- s.add_development_dependency 'minitest', '~> 4.7.5'
54
+ s.add_development_dependency 'minitest', '4.7.5'
55
55
  s.add_development_dependency 'mocha', '~> 1.9.0'
56
56
  s.add_development_dependency 'yard'
57
57
  s.add_development_dependency 'pry-nav', '~> 0.3.0'
@@ -855,7 +855,7 @@ def assert_event_attributes event, test_name, expected_attributes, non_expected_
855
855
  assert(incorrect_attributes.empty?, msg)
856
856
 
857
857
  non_expected_attributes.each do |name|
858
- assert_nil(event_attrs[name], "Found value '#{event_attrs[name]}' for attribute '#{name}', but expected nothing in #{test_name}")
858
+ refute event_attrs[name], "Found value '#{event_attrs[name]}' for attribute '#{name}', but expected nothing in #{test_name}"
859
859
  end
860
860
  end
861
861
 
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: 6.10.0.364
4
+ version: 6.11.0.365
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Pine
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-04-02 00:00:00.000000000 Z
14
+ date: 2020-05-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
@@ -59,14 +59,14 @@ dependencies:
59
59
  name: minitest
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - "~>"
62
+ - - '='
63
63
  - !ruby/object:Gem::Version
64
64
  version: 4.7.5
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - "~>"
69
+ - - '='
70
70
  - !ruby/object:Gem::Version
71
71
  version: 4.7.5
72
72
  - !ruby/object:Gem::Dependency
@@ -185,7 +185,7 @@ description: |
185
185
  New Relic is a performance management system, developed by New Relic,
186
186
  Inc (http://www.newrelic.com). New Relic provides you with deep
187
187
  information about the performance of your web application as it runs
188
- in production. The New Relic Ruby Agent is dual-purposed as a either a
188
+ in production. The New Relic Ruby agent is dual-purposed as a either a
189
189
  Gem or plugin, hosted on
190
190
  https://github.com/newrelic/rpm/
191
191
  email: support@newrelic.com
@@ -501,7 +501,6 @@ files:
501
501
  - newrelic_rpm.gemspec
502
502
  - recipes/newrelic.rb
503
503
  - test/agent_helper.rb
504
- - 'true'
505
504
  homepage: https://github.com/newrelic/rpm
506
505
  licenses:
507
506
  - New Relic
@@ -525,7 +524,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
525
524
  - !ruby/object:Gem::Version
526
525
  version: 1.3.1
527
526
  requirements: []
528
- rubygems_version: 3.1.2
527
+ rubygems_version: 3.0.6
529
528
  signing_key:
530
529
  specification_version: 4
531
530
  summary: New Relic Ruby Agent
data/true DELETED
File without changes