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 +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +16 -0
- data/CHANGELOG.md +40 -0
- data/Gemfile +6 -2
- data/LICENSE +1 -1
- data/Rakefile +2 -0
- data/lib/new_relic/agent/agent.rb +1 -3
- data/lib/new_relic/agent/configuration/default_source.rb +27 -0
- data/lib/new_relic/agent/database/obfuscation_helpers.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +2 -1
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +2 -3
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +47 -22
- data/lib/new_relic/agent/method_tracer.rb +15 -4
- data/lib/new_relic/agent/new_relic_service.rb +0 -1
- data/lib/new_relic/agent/span_event_primitive.rb +5 -1
- data/lib/new_relic/agent/system_info.rb +12 -3
- data/lib/new_relic/constants.rb +4 -0
- data/lib/new_relic/environment_report.rb +5 -1
- data/lib/new_relic/version.rb +1 -1
- data/lib/tasks/tests.rake +1 -1
- data/newrelic_rpm.gemspec +3 -3
- data/test/agent_helper.rb +1 -1
- metadata +6 -7
- data/true +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c57ffc3785e824375bddaddea5ff0a281b9b3e6bb1d9a8df8ec8ee4514b5f87
|
4
|
+
data.tar.gz: 72b4889613aca4855ebffc39a1c09419871560cbbe5d2311457ec53181d861ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39bbe0afde8eb032928ee3582b5ceb0d6870be12f63c45785d575e93a2d1516bbc15c306bd82681535cde1816aed074dd23795af036eb409f53dfc2d20f5c66f
|
7
|
+
data.tar.gz: 2a59cdff3bbfe3fb18b1b028a1d64f9b8a452783277313ca78b964c8cf9d8a2362b8872e2405549a3a594c5b2fa20c8439df05e4a76d608b5f3f79d880577a29
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -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
|
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
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
|
-
|
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-
|
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] ||
|
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 =>
|
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,
|
@@ -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.
|
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
|
-
|
17
|
-
|
16
|
+
module NewRelic::SidekiqInstrumentation
|
17
|
+
class Server
|
18
|
+
include NewRelic::Agent::Instrumentation::ControllerInstrumentation
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
29
|
-
|
30
|
-
|
34
|
+
::NewRelic::Agent::DistributedTracing::accept_distributed_trace_headers(trace_headers, "Other")
|
35
|
+
yield
|
36
|
+
end
|
37
|
+
end
|
31
38
|
|
32
|
-
|
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
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
-
|
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)}
|
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
|
-
|
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)}
|
216
|
+
#{_untraced_method_name(method_name, metric_name_code)}#{arguments}
|
206
217
|
end
|
207
218
|
#{options[:code_footer]}
|
208
219
|
result
|
@@ -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}/
|
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 '/'
|
181
|
+
when '/' then nil
|
176
182
|
# in a cgroup, but we don't recognize its format
|
177
|
-
when /docker/
|
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
|
data/lib/new_relic/constants.rb
CHANGED
@@ -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
|
-
|
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 }
|
data/lib/new_relic/version.rb
CHANGED
data/lib/tasks/tests.rake
CHANGED
data/newrelic_rpm.gemspec
CHANGED
@@ -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
|
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', '
|
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'
|
data/test/agent_helper.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
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
|
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.
|
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
|