newrelic_rpm 6.8.0.360 → 6.9.0.363
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +16 -16
- data/CHANGELOG.md +64 -0
- data/lib/new_relic/agent.rb +6 -5
- data/lib/new_relic/agent/agent.rb +43 -36
- data/lib/new_relic/agent/attributes.rb +2 -4
- data/lib/new_relic/agent/configuration/default_source.rb +23 -22
- data/lib/new_relic/agent/configuration/server_source.rb +1 -1
- data/lib/new_relic/agent/configuration/yaml_source.rb +1 -1
- data/lib/new_relic/agent/database.rb +1 -2
- data/lib/new_relic/agent/distributed_tracing.rb +155 -6
- data/lib/new_relic/agent/{cross_app_payload.rb → distributed_tracing/cross_app_payload.rb} +0 -0
- data/lib/new_relic/agent/{cross_app_tracing.rb → distributed_tracing/cross_app_tracing.rb} +60 -45
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_intrinsics.rb +80 -0
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +75 -0
- data/lib/new_relic/agent/{distributed_trace_payload.rb → distributed_tracing/distributed_trace_payload.rb} +19 -28
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +39 -0
- data/lib/new_relic/agent/distributed_tracing/trace_context.rb +246 -0
- data/lib/new_relic/agent/{trace_context_payload.rb → distributed_tracing/trace_context_payload.rb} +3 -11
- data/lib/new_relic/agent/error_collector.rb +3 -5
- data/lib/new_relic/agent/error_event_aggregator.rb +3 -1
- data/lib/new_relic/agent/external.rb +7 -7
- data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +1 -2
- data/lib/new_relic/agent/instrumentation/bunny.rb +1 -1
- data/lib/new_relic/agent/instrumentation/curb.rb +1 -1
- data/lib/new_relic/agent/instrumentation/excon.rb +1 -1
- data/lib/new_relic/agent/instrumentation/grape.rb +5 -10
- data/lib/new_relic/agent/instrumentation/http.rb +1 -1
- data/lib/new_relic/agent/instrumentation/httpclient.rb +1 -1
- data/lib/new_relic/agent/instrumentation/net.rb +1 -1
- data/lib/new_relic/agent/instrumentation/resque.rb +3 -0
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +1 -1
- data/lib/new_relic/agent/logging.rb +13 -3
- data/lib/new_relic/agent/messaging.rb +5 -73
- data/lib/new_relic/agent/method_tracer.rb +3 -2
- data/lib/new_relic/agent/method_tracer_helpers.rb +1 -1
- data/lib/new_relic/agent/monitors.rb +27 -0
- data/lib/new_relic/agent/monitors/cross_app_monitor.rb +110 -0
- data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +27 -0
- data/lib/new_relic/agent/{inbound_request_monitor.rb → monitors/inbound_request_monitor.rb} +1 -1
- data/lib/new_relic/agent/{synthetics_monitor.rb → monitors/synthetics_monitor.rb} +2 -4
- data/lib/new_relic/agent/span_event_primitive.rb +25 -29
- data/lib/new_relic/agent/sql_sampler.rb +2 -2
- data/lib/new_relic/agent/supported_versions.rb +2 -2
- data/lib/new_relic/agent/tracer.rb +3 -3
- data/lib/new_relic/agent/transaction.rb +21 -28
- data/lib/new_relic/agent/transaction/distributed_tracer.rb +171 -0
- data/lib/new_relic/agent/transaction/distributed_tracing.rb +61 -69
- data/lib/new_relic/agent/transaction/external_request_segment.rb +8 -44
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +3 -11
- data/lib/new_relic/agent/transaction/trace.rb +2 -4
- data/lib/new_relic/agent/transaction/trace_context.rb +88 -79
- data/lib/new_relic/agent/transaction/trace_node.rb +2 -5
- data/lib/new_relic/agent/transaction_error_primitive.rb +2 -2
- data/lib/new_relic/agent/transaction_event_primitive.rb +26 -29
- data/lib/new_relic/coerce.rb +5 -3
- data/lib/new_relic/constants.rb +34 -0
- data/lib/new_relic/noticed_error.rb +2 -4
- data/lib/new_relic/rack/browser_monitoring.rb +4 -0
- data/lib/new_relic/supportability_helper.rb +14 -0
- data/lib/new_relic/version.rb +1 -1
- data/lib/tasks/tests.rake +6 -1
- data/newrelic_rpm.gemspec +4 -2
- data/test/agent_helper.rb +21 -1
- metadata +49 -19
- data/lib/new_relic/agent/cross_app_monitor.rb +0 -110
- data/lib/new_relic/agent/distributed_trace_intrinsics.rb +0 -90
- data/lib/new_relic/agent/distributed_trace_metrics.rb +0 -74
- data/lib/new_relic/agent/distributed_trace_monitor.rb +0 -30
- data/lib/new_relic/agent/distributed_trace_transport_type.rb +0 -43
- data/lib/new_relic/agent/trace_context.rb +0 -244
- data/lib/new_relic/agent/trace_context_request_monitor.rb +0 -42
@@ -43,16 +43,13 @@ module NewRelic
|
|
43
43
|
to_debug_str(0)
|
44
44
|
end
|
45
45
|
|
46
|
-
EMPTY_HASH = {}.freeze
|
47
|
-
EMPTY_ARRAY = [].freeze
|
48
|
-
|
49
46
|
def to_array
|
50
|
-
params = @params ? @params : EMPTY_HASH
|
47
|
+
params = @params ? @params : NewRelic::EMPTY_HASH
|
51
48
|
[ NewRelic::Helper.time_to_millis(@entry_timestamp),
|
52
49
|
NewRelic::Helper.time_to_millis(@exit_timestamp),
|
53
50
|
NewRelic::Coerce.string(@metric_name),
|
54
51
|
params ] +
|
55
|
-
[ (@children ? @children.map{|s| s.to_array} : EMPTY_ARRAY) ]
|
52
|
+
[ (@children ? @children.map{|s| s.to_array} : NewRelic::EMPTY_ARRAY) ]
|
56
53
|
end
|
57
54
|
|
58
55
|
def path_string
|
@@ -8,8 +8,8 @@
|
|
8
8
|
# the transaction event aggregator and the synthetics container.
|
9
9
|
|
10
10
|
require 'new_relic/agent/payload_metric_mapping'
|
11
|
-
require 'new_relic/agent/distributed_trace_payload'
|
12
|
-
require 'new_relic/agent/distributed_trace_intrinsics'
|
11
|
+
require 'new_relic/agent/distributed_tracing/distributed_trace_payload'
|
12
|
+
require 'new_relic/agent/distributed_tracing/distributed_trace_intrinsics'
|
13
13
|
|
14
14
|
module NewRelic
|
15
15
|
module Agent
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
3
|
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
# frozen_string_literal: true
|
4
5
|
|
5
6
|
# This module was introduced and largely extracted from the transaction event aggregator
|
6
7
|
# when the synthetics container was extracted from it. Its purpose is to create the data
|
@@ -8,7 +9,7 @@
|
|
8
9
|
# the transaction event aggregator and the synthetics container.
|
9
10
|
|
10
11
|
require 'new_relic/agent/payload_metric_mapping'
|
11
|
-
require 'new_relic/agent/distributed_trace_intrinsics'
|
12
|
+
require 'new_relic/agent/distributed_tracing/distributed_trace_intrinsics'
|
12
13
|
|
13
14
|
module NewRelic
|
14
15
|
module Agent
|
@@ -16,30 +17,28 @@ module NewRelic
|
|
16
17
|
include NewRelic::Coerce
|
17
18
|
extend self
|
18
19
|
|
20
|
+
COMMA = ','
|
21
|
+
|
19
22
|
# The type field of the sample
|
20
|
-
SAMPLE_TYPE = 'Transaction'
|
23
|
+
SAMPLE_TYPE = 'Transaction'
|
21
24
|
|
22
25
|
# Strings for static keys of the sample structure
|
23
|
-
TYPE_KEY = 'type'
|
24
|
-
TIMESTAMP_KEY = 'timestamp'
|
25
|
-
NAME_KEY = 'name'
|
26
|
-
DURATION_KEY = 'duration'
|
27
|
-
ERROR_KEY = 'error'
|
28
|
-
SAMPLED_KEY = 'sampled'
|
29
|
-
PRIORITY_KEY = 'priority'
|
30
|
-
GUID_KEY = 'nr.guid'
|
31
|
-
REFERRING_TRANSACTION_GUID_KEY = 'nr.referringTransactionGuid'
|
32
|
-
CAT_PATH_HASH_KEY = 'nr.pathHash'
|
33
|
-
CAT_REFERRING_PATH_HASH_KEY = 'nr.referringPathHash'
|
34
|
-
CAT_ALTERNATE_PATH_HASHES_KEY = 'nr.alternatePathHashes'
|
35
|
-
APDEX_PERF_ZONE_KEY = 'nr.apdexPerfZone'
|
36
|
-
SYNTHETICS_RESOURCE_ID_KEY = "nr.syntheticsResourceId"
|
37
|
-
SYNTHETICS_JOB_ID_KEY = "nr.syntheticsJobId"
|
38
|
-
SYNTHETICS_MONITOR_ID_KEY = "nr.syntheticsMonitorId"
|
39
|
-
|
40
|
-
|
41
|
-
# To avoid allocations when we have empty custom or agent attributes
|
42
|
-
EMPTY_HASH = {}.freeze
|
26
|
+
TYPE_KEY = 'type'
|
27
|
+
TIMESTAMP_KEY = 'timestamp'
|
28
|
+
NAME_KEY = 'name'
|
29
|
+
DURATION_KEY = 'duration'
|
30
|
+
ERROR_KEY = 'error'
|
31
|
+
SAMPLED_KEY = 'sampled'
|
32
|
+
PRIORITY_KEY = 'priority'
|
33
|
+
GUID_KEY = 'nr.guid'
|
34
|
+
REFERRING_TRANSACTION_GUID_KEY = 'nr.referringTransactionGuid'
|
35
|
+
CAT_PATH_HASH_KEY = 'nr.pathHash'
|
36
|
+
CAT_REFERRING_PATH_HASH_KEY = 'nr.referringPathHash'
|
37
|
+
CAT_ALTERNATE_PATH_HASHES_KEY = 'nr.alternatePathHashes'
|
38
|
+
APDEX_PERF_ZONE_KEY = 'nr.apdexPerfZone'
|
39
|
+
SYNTHETICS_RESOURCE_ID_KEY = "nr.syntheticsResourceId"
|
40
|
+
SYNTHETICS_JOB_ID_KEY = "nr.syntheticsJobId"
|
41
|
+
SYNTHETICS_MONITOR_ID_KEY = "nr.syntheticsMonitorId"
|
43
42
|
|
44
43
|
def create(payload)
|
45
44
|
intrinsics = {
|
@@ -53,7 +52,7 @@ module NewRelic
|
|
53
52
|
|
54
53
|
intrinsics[SAMPLED_KEY] = payload[:sampled] if payload.key?(:sampled)
|
55
54
|
|
56
|
-
|
55
|
+
PayloadMetricMapping.append_mapped_metrics(payload[:metrics], intrinsics)
|
57
56
|
append_optional_attributes(intrinsics, payload)
|
58
57
|
DistributedTraceIntrinsics.copy_to_hash payload, intrinsics
|
59
58
|
|
@@ -76,8 +75,6 @@ module NewRelic
|
|
76
75
|
append_cat_alternate_path_hashes(sample, payload)
|
77
76
|
end
|
78
77
|
|
79
|
-
COMMA = ','.freeze
|
80
|
-
|
81
78
|
def append_cat_alternate_path_hashes(sample, payload)
|
82
79
|
if payload.include?(:cat_alternate_path_hashes)
|
83
80
|
sample[CAT_ALTERNATE_PATH_HASHES_KEY] = payload[:cat_alternate_path_hashes].sort.join(COMMA)
|
@@ -92,19 +89,19 @@ module NewRelic
|
|
92
89
|
|
93
90
|
def custom_attributes attributes
|
94
91
|
if attributes
|
95
|
-
result = attributes.custom_attributes_for(
|
92
|
+
result = attributes.custom_attributes_for(AttributeFilter::DST_TRANSACTION_EVENTS)
|
96
93
|
result.freeze
|
97
94
|
else
|
98
|
-
EMPTY_HASH
|
95
|
+
NewRelic::EMPTY_HASH
|
99
96
|
end
|
100
97
|
end
|
101
98
|
|
102
99
|
def agent_attributes attributes
|
103
100
|
if attributes
|
104
|
-
result = attributes.agent_attributes_for(
|
101
|
+
result = attributes.agent_attributes_for(AttributeFilter::DST_TRANSACTION_EVENTS)
|
105
102
|
result.freeze
|
106
103
|
else
|
107
|
-
EMPTY_HASH
|
104
|
+
NewRelic::EMPTY_HASH
|
108
105
|
end
|
109
106
|
end
|
110
107
|
end
|
data/lib/new_relic/coerce.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
3
|
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
# frozen_string_literal: true
|
4
5
|
|
5
6
|
module NewRelic
|
6
7
|
module Coerce
|
8
|
+
|
7
9
|
module_function
|
8
10
|
|
9
11
|
# We really don't want to send bad values to the collector, and it doesn't
|
@@ -74,13 +76,13 @@ module NewRelic
|
|
74
76
|
value.to_i
|
75
77
|
end
|
76
78
|
|
77
|
-
def float! value
|
79
|
+
def float! value, precision=NewRelic::PRIORITY_PRECISION
|
78
80
|
return nil unless value_or_nil(value)
|
79
|
-
value.to_f
|
81
|
+
value.to_f.round(precision)
|
80
82
|
end
|
81
83
|
|
82
84
|
def value_or_nil value
|
83
|
-
return nil if value.nil? || value.empty?
|
85
|
+
return nil if value.nil? || (value.respond_to?(:empty?) && value.empty?)
|
84
86
|
value
|
85
87
|
end
|
86
88
|
|
@@ -0,0 +1,34 @@
|
|
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
|
5
|
+
|
6
|
+
module NewRelic
|
7
|
+
PRIORITY_PRECISION = 6
|
8
|
+
|
9
|
+
EMPTY_ARRAY = [].freeze
|
10
|
+
EMPTY_HASH = {}.freeze
|
11
|
+
EMPTY_STR = ""
|
12
|
+
|
13
|
+
HTTP = "HTTP"
|
14
|
+
HTTPS = "HTTPS"
|
15
|
+
UNKNOWN = "Unknown"
|
16
|
+
|
17
|
+
FORMAT_NON_RACK = 0
|
18
|
+
FORMAT_RACK = 1
|
19
|
+
|
20
|
+
NEWRELIC_KEY = "newrelic"
|
21
|
+
CANDIDATE_NEWRELIC_KEYS = [
|
22
|
+
NEWRELIC_KEY,
|
23
|
+
'NEWRELIC',
|
24
|
+
'NewRelic',
|
25
|
+
'Newrelic'
|
26
|
+
].freeze
|
27
|
+
|
28
|
+
TRACEPARENT_KEY = "traceparent"
|
29
|
+
TRACESTATE_KEY = "tracestate"
|
30
|
+
|
31
|
+
HTTP_TRACEPARENT_KEY = "HTTP_#{TRACEPARENT_KEY.upcase}"
|
32
|
+
HTTP_TRACESTATE_KEY = "HTTP_#{TRACESTATE_KEY.upcase}"
|
33
|
+
HTTP_NEWRELIC_KEY = "HTTP_#{NEWRELIC_KEY.upcase}"
|
34
|
+
end
|
@@ -81,8 +81,6 @@ class NewRelic::NoticedError
|
|
81
81
|
AGENT_ATTRIBUTES = "agentAttributes".freeze
|
82
82
|
INTRINSIC_ATTRIBUTES = "intrinsics".freeze
|
83
83
|
|
84
|
-
EMPTY_HASH = {}.freeze
|
85
|
-
|
86
84
|
DESTINATION = NewRelic::Agent::AttributeFilter::DST_ERROR_COLLECTOR
|
87
85
|
|
88
86
|
# Note that we process attributes lazily and store the result. This is because
|
@@ -137,7 +135,7 @@ class NewRelic::NoticedError
|
|
137
135
|
agent_attributes = if @attributes
|
138
136
|
@attributes.agent_attributes_for(DESTINATION)
|
139
137
|
else
|
140
|
-
EMPTY_HASH
|
138
|
+
NewRelic::EMPTY_HASH
|
141
139
|
end
|
142
140
|
|
143
141
|
# It's possible to override the request_uri from the transaction attributes
|
@@ -155,7 +153,7 @@ class NewRelic::NoticedError
|
|
155
153
|
if @attributes
|
156
154
|
@attributes.intrinsic_attributes_for(DESTINATION)
|
157
155
|
else
|
158
|
-
EMPTY_HASH
|
156
|
+
NewRelic::EMPTY_HASH
|
159
157
|
end
|
160
158
|
end
|
161
159
|
|
@@ -21,6 +21,7 @@ module NewRelic::Rack
|
|
21
21
|
|
22
22
|
CONTENT_TYPE = 'Content-Type'.freeze
|
23
23
|
CONTENT_DISPOSITION = 'Content-Disposition'.freeze
|
24
|
+
CONTENT_LENGTH = 'Content-Length'.freeze
|
24
25
|
ATTACHMENT = 'attachment'.freeze
|
25
26
|
TEXT_HTML = 'text/html'.freeze
|
26
27
|
|
@@ -35,6 +36,9 @@ module NewRelic::Rack
|
|
35
36
|
js_to_inject = NewRelic::Agent.browser_timing_header
|
36
37
|
if (js_to_inject != "") && should_instrument?(env, status, headers)
|
37
38
|
response_string = autoinstrument_source(response, headers, js_to_inject)
|
39
|
+
if headers.key?(CONTENT_LENGTH)
|
40
|
+
headers[CONTENT_LENGTH] = response_string.size.to_s
|
41
|
+
end
|
38
42
|
|
39
43
|
env[ALREADY_INSTRUMENTED_KEY] = true
|
40
44
|
if response_string
|
@@ -11,6 +11,8 @@ module NewRelic
|
|
11
11
|
# transaction, just to eke out a bit less performance hit
|
12
12
|
#
|
13
13
|
API_SUPPORTABILITY_METRICS = [
|
14
|
+
:accept_distributed_trace_headers,
|
15
|
+
:create_distributed_trace_headers,
|
14
16
|
:add_custom_attributes,
|
15
17
|
:add_instrumentation,
|
16
18
|
:add_method_tracer,
|
@@ -64,5 +66,17 @@ module NewRelic
|
|
64
66
|
NewRelic::Agent.logger.debug "API supportability metric not found for :#{method_name}"
|
65
67
|
end
|
66
68
|
end
|
69
|
+
|
70
|
+
def valid_api_argument_class? arg, name, klass
|
71
|
+
return true if arg.is_a?(klass)
|
72
|
+
|
73
|
+
caller_location = caller_locations.first.label
|
74
|
+
|
75
|
+
message = "Bad argument passed to ##{caller_location}. " \
|
76
|
+
"Expected #{klass} for `#{name}` but got #{headers.class}"
|
77
|
+
|
78
|
+
NewRelic::Agent.logger.warn message
|
79
|
+
nil
|
80
|
+
end
|
67
81
|
end
|
68
82
|
end
|
data/lib/new_relic/version.rb
CHANGED
data/lib/tasks/tests.rake
CHANGED
@@ -26,9 +26,14 @@ if defined? Rake::TestTask
|
|
26
26
|
agent_home = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
|
27
27
|
|
28
28
|
Rake::TestTask.new(:newrelic) do |t|
|
29
|
+
|
30
|
+
file_pattern = ENV["file"]
|
31
|
+
file_pattern = file_pattern.split(",").map{|f| "#{agent_home}/#{f}".gsub("//", "/")} if file_pattern
|
32
|
+
file_pattern ||= "#{agent_home}/test/new_relic/**/*_test.rb"
|
33
|
+
|
29
34
|
t.libs << "#{agent_home}/test"
|
30
35
|
t.libs << "#{agent_home}/lib"
|
31
|
-
t.pattern =
|
36
|
+
t.pattern = file_pattern
|
32
37
|
t.verbose = true
|
33
38
|
end
|
34
39
|
|
data/newrelic_rpm.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.version = NewRelic::VERSION::STRING
|
11
11
|
s.required_ruby_version = '>= 2.0.0'
|
12
12
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
13
|
-
s.authors = [ "Chris Pine", "Rachel Klein", "
|
13
|
+
s.authors = [ "Chris Pine", "Rachel Klein", "Tanna McClure", "Michael Lang" ]
|
14
14
|
s.date = Time.now.strftime('%Y-%m-%d')
|
15
15
|
s.licenses = ['New Relic']
|
16
16
|
s.description = <<-EOS
|
@@ -49,10 +49,12 @@ EOS
|
|
49
49
|
s.summary = "New Relic Ruby Agent"
|
50
50
|
|
51
51
|
s.add_development_dependency 'rake', '12.3.3'
|
52
|
+
s.add_development_dependency 'rb-inotify', '0.9.10' # locked to support < Ruby 2.3 (and listen 3.0.8)
|
53
|
+
s.add_development_dependency 'listen', '3.0.8' # locked to support < Ruby 2.3
|
52
54
|
s.add_development_dependency 'minitest', '~> 4.7.5'
|
53
55
|
s.add_development_dependency 'mocha', '~> 1.9.0'
|
54
56
|
s.add_development_dependency 'yard'
|
55
|
-
s.add_development_dependency 'pry-nav', '~> 0.
|
57
|
+
s.add_development_dependency 'pry-nav', '~> 0.3.0'
|
56
58
|
s.add_development_dependency 'pry-stack_explorer', '~> 0.4.9'
|
57
59
|
s.add_development_dependency 'guard', '~> 2.16.0'
|
58
60
|
s.add_development_dependency 'guard-minitest', '~> 2.4.0'
|
data/test/agent_helper.rb
CHANGED
@@ -345,11 +345,22 @@ def in_transaction(*args, &blk)
|
|
345
345
|
txn
|
346
346
|
end
|
347
347
|
|
348
|
+
# Temporarily disables default transformer so tests with invalid inputs can be tried
|
349
|
+
def with_disabled_defaults_transformer key
|
350
|
+
begin
|
351
|
+
transformer = NewRelic::Agent::Configuration::DEFAULTS[key][:transform]
|
352
|
+
NewRelic::Agent::Configuration::DEFAULTS[key][:transform] = nil
|
353
|
+
yield
|
354
|
+
ensure
|
355
|
+
NewRelic::Agent::Configuration::DEFAULTS[key][:transform] = transformer
|
356
|
+
end
|
357
|
+
end
|
358
|
+
|
348
359
|
# Convenience wrapper to stand up a transaction and provide a segment within
|
349
360
|
# that transaction to work with. The same arguements as provided to in_transaction
|
350
361
|
# may be supplied.
|
351
362
|
def with_segment *args, &blk
|
352
|
-
in_transaction
|
363
|
+
in_transaction(*args) do |txn|
|
353
364
|
yield txn.current_segment, txn
|
354
365
|
end
|
355
366
|
end
|
@@ -795,3 +806,12 @@ end
|
|
795
806
|
def attributes_for(sample, type)
|
796
807
|
sample.attributes.instance_variable_get("@#{type}_attributes")
|
797
808
|
end
|
809
|
+
|
810
|
+
def uncache_trusted_account_key
|
811
|
+
NewRelic::Agent::Transaction::TraceContext::AccountHelpers.instance_variable_set :@trace_state_entry_key, nil
|
812
|
+
end
|
813
|
+
|
814
|
+
def reset_buffers_and_caches
|
815
|
+
NewRelic::Agent.drop_buffered_data
|
816
|
+
uncache_trusted_account_key
|
817
|
+
end
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.9.0.363
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Pine
|
8
8
|
- Rachel Klein
|
9
|
-
-
|
9
|
+
- Tanna McClure
|
10
10
|
- Michael Lang
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2020-02-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rake
|
@@ -27,6 +27,34 @@ dependencies:
|
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 12.3.3
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rb-inotify
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - '='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 0.9.10
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - '='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.9.10
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: listen
|
46
|
+
requirement: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - '='
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 3.0.8
|
51
|
+
type: :development
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - '='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 3.0.8
|
30
58
|
- !ruby/object:Gem::Dependency
|
31
59
|
name: minitest
|
32
60
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,14 +103,14 @@ dependencies:
|
|
75
103
|
requirements:
|
76
104
|
- - "~>"
|
77
105
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0.
|
106
|
+
version: 0.3.0
|
79
107
|
type: :development
|
80
108
|
prerelease: false
|
81
109
|
version_requirements: !ruby/object:Gem::Requirement
|
82
110
|
requirements:
|
83
111
|
- - "~>"
|
84
112
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.
|
113
|
+
version: 0.3.0
|
86
114
|
- !ruby/object:Gem::Dependency
|
87
115
|
name: pry-stack_explorer
|
88
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -221,9 +249,6 @@ files:
|
|
221
249
|
- lib/new_relic/agent/configuration/yaml_source.rb
|
222
250
|
- lib/new_relic/agent/connect/request_builder.rb
|
223
251
|
- lib/new_relic/agent/connect/response_handler.rb
|
224
|
-
- lib/new_relic/agent/cross_app_monitor.rb
|
225
|
-
- lib/new_relic/agent/cross_app_payload.rb
|
226
|
-
- lib/new_relic/agent/cross_app_tracing.rb
|
227
252
|
- lib/new_relic/agent/custom_event_aggregator.rb
|
228
253
|
- lib/new_relic/agent/database.rb
|
229
254
|
- lib/new_relic/agent/database/explain_plan_helpers.rb
|
@@ -239,12 +264,15 @@ files:
|
|
239
264
|
- lib/new_relic/agent/datastores/mongo/statement_formatter.rb
|
240
265
|
- lib/new_relic/agent/datastores/redis.rb
|
241
266
|
- lib/new_relic/agent/deprecator.rb
|
242
|
-
- lib/new_relic/agent/distributed_trace_intrinsics.rb
|
243
|
-
- lib/new_relic/agent/distributed_trace_metrics.rb
|
244
|
-
- lib/new_relic/agent/distributed_trace_monitor.rb
|
245
|
-
- lib/new_relic/agent/distributed_trace_payload.rb
|
246
|
-
- lib/new_relic/agent/distributed_trace_transport_type.rb
|
247
267
|
- lib/new_relic/agent/distributed_tracing.rb
|
268
|
+
- lib/new_relic/agent/distributed_tracing/cross_app_payload.rb
|
269
|
+
- lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb
|
270
|
+
- lib/new_relic/agent/distributed_tracing/distributed_trace_intrinsics.rb
|
271
|
+
- lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb
|
272
|
+
- lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb
|
273
|
+
- lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb
|
274
|
+
- lib/new_relic/agent/distributed_tracing/trace_context.rb
|
275
|
+
- lib/new_relic/agent/distributed_tracing/trace_context_payload.rb
|
248
276
|
- lib/new_relic/agent/encoding_normalizer.rb
|
249
277
|
- lib/new_relic/agent/error_collector.rb
|
250
278
|
- lib/new_relic/agent/error_event_aggregator.rb
|
@@ -266,7 +294,6 @@ files:
|
|
266
294
|
- lib/new_relic/agent/http_clients/net_http_wrappers.rb
|
267
295
|
- lib/new_relic/agent/http_clients/typhoeus_wrappers.rb
|
268
296
|
- lib/new_relic/agent/http_clients/uri_util.rb
|
269
|
-
- lib/new_relic/agent/inbound_request_monitor.rb
|
270
297
|
- lib/new_relic/agent/instrumentation.rb
|
271
298
|
- lib/new_relic/agent/instrumentation/action_cable_subscriber.rb
|
272
299
|
- lib/new_relic/agent/instrumentation/action_controller_subscriber.rb
|
@@ -335,6 +362,11 @@ files:
|
|
335
362
|
- lib/new_relic/agent/messaging.rb
|
336
363
|
- lib/new_relic/agent/method_tracer.rb
|
337
364
|
- lib/new_relic/agent/method_tracer_helpers.rb
|
365
|
+
- lib/new_relic/agent/monitors.rb
|
366
|
+
- lib/new_relic/agent/monitors/cross_app_monitor.rb
|
367
|
+
- lib/new_relic/agent/monitors/distributed_tracing_monitor.rb
|
368
|
+
- lib/new_relic/agent/monitors/inbound_request_monitor.rb
|
369
|
+
- lib/new_relic/agent/monitors/synthetics_monitor.rb
|
338
370
|
- lib/new_relic/agent/new_relic_service.rb
|
339
371
|
- lib/new_relic/agent/new_relic_service/encoders.rb
|
340
372
|
- lib/new_relic/agent/new_relic_service/json_marshaller.rb
|
@@ -368,20 +400,17 @@ files:
|
|
368
400
|
- lib/new_relic/agent/stats_engine/stats_hash.rb
|
369
401
|
- lib/new_relic/agent/supported_versions.rb
|
370
402
|
- lib/new_relic/agent/synthetics_event_aggregator.rb
|
371
|
-
- lib/new_relic/agent/synthetics_monitor.rb
|
372
403
|
- lib/new_relic/agent/system_info.rb
|
373
404
|
- lib/new_relic/agent/threading/agent_thread.rb
|
374
405
|
- lib/new_relic/agent/threading/backtrace_node.rb
|
375
406
|
- lib/new_relic/agent/threading/backtrace_service.rb
|
376
407
|
- lib/new_relic/agent/threading/thread_profile.rb
|
377
408
|
- lib/new_relic/agent/timestamp_sampled_buffer.rb
|
378
|
-
- lib/new_relic/agent/trace_context.rb
|
379
|
-
- lib/new_relic/agent/trace_context_payload.rb
|
380
|
-
- lib/new_relic/agent/trace_context_request_monitor.rb
|
381
409
|
- lib/new_relic/agent/tracer.rb
|
382
410
|
- lib/new_relic/agent/transaction.rb
|
383
411
|
- lib/new_relic/agent/transaction/abstract_segment.rb
|
384
412
|
- lib/new_relic/agent/transaction/datastore_segment.rb
|
413
|
+
- lib/new_relic/agent/transaction/distributed_tracer.rb
|
385
414
|
- lib/new_relic/agent/transaction/distributed_tracing.rb
|
386
415
|
- lib/new_relic/agent/transaction/external_request_segment.rb
|
387
416
|
- lib/new_relic/agent/transaction/message_broker_segment.rb
|
@@ -420,6 +449,7 @@ files:
|
|
420
449
|
- lib/new_relic/cli/commands/install.rb
|
421
450
|
- lib/new_relic/coerce.rb
|
422
451
|
- lib/new_relic/collection_helper.rb
|
452
|
+
- lib/new_relic/constants.rb
|
423
453
|
- lib/new_relic/control.rb
|
424
454
|
- lib/new_relic/control/class_methods.rb
|
425
455
|
- lib/new_relic/control/frameworks.rb
|
@@ -494,7 +524,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
494
524
|
- !ruby/object:Gem::Version
|
495
525
|
version: 1.3.1
|
496
526
|
requirements: []
|
497
|
-
rubygems_version: 3.
|
527
|
+
rubygems_version: 3.1.2
|
498
528
|
signing_key:
|
499
529
|
specification_version: 4
|
500
530
|
summary: New Relic Ruby Agent
|