newrelic_rpm 3.9.9.275 → 3.10.0.279
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG +51 -0
- data/config.dot +0 -3
- data/lib/new_relic/agent.rb +7 -5
- data/lib/new_relic/agent/agent.rb +4 -4
- data/lib/new_relic/agent/instrumentation/active_job.rb +5 -8
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +17 -34
- data/lib/new_relic/agent/instrumentation/grape.rb +60 -23
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +10 -2
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +33 -21
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +7 -3
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +0 -9
- data/lib/new_relic/agent/instrumentation/sinatra.rb +9 -12
- data/lib/new_relic/agent/javascript_instrumentor.rb +1 -0
- data/lib/new_relic/agent/new_relic_service.rb +9 -6
- data/lib/new_relic/agent/parameter_filtering.rb +37 -0
- data/lib/new_relic/agent/supported_versions.rb +7 -0
- data/lib/new_relic/agent/traced_method_stack.rb +1 -1
- data/lib/new_relic/agent/transaction.rb +182 -186
- data/lib/new_relic/agent/vm/rubinius_vm.rb +93 -3
- data/lib/new_relic/control/frameworks/rails.rb +1 -0
- data/lib/new_relic/rack/agent_hooks.rb +15 -23
- data/lib/new_relic/version.rb +2 -2
- data/newrelic_rpm.gemspec +12 -5
- data/test/agent_helper.rb +26 -14
- data/test/multiverse/lib/multiverse/suite.rb +1 -5
- data/test/multiverse/suites/activemerchant/Envfile +4 -1
- data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +2 -12
- data/test/multiverse/suites/agent_only/logging_test.rb +1 -1
- data/test/multiverse/suites/agent_only/set_transaction_name_test.rb +4 -0
- data/test/multiverse/suites/agent_only/synthetics_test.rb +1 -8
- data/test/multiverse/suites/agent_only/testing_app.rb +1 -7
- data/test/multiverse/suites/agent_only/xray_sessions_test.rb +11 -11
- data/test/multiverse/suites/deferred_instrumentation/sinatra_test.rb +4 -0
- data/test/multiverse/suites/grape/Envfile +1 -3
- data/test/multiverse/suites/grape/grape_test.rb +87 -6
- data/test/multiverse/suites/grape/grape_test_api.rb +5 -0
- data/test/multiverse/suites/grape/grape_versioning_test.rb +67 -0
- data/test/multiverse/suites/grape/grape_versioning_test_api.rb +72 -0
- data/test/multiverse/suites/rack/example_app.rb +31 -1
- data/test/multiverse/suites/rack/rack_auto_instrumentation_test.rb +11 -10
- data/test/multiverse/suites/rack/rack_cascade_test.rb +46 -0
- data/test/multiverse/suites/rack/rack_parameter_filtering_test.rb +40 -0
- data/test/multiverse/suites/rails/Envfile +8 -0
- data/test/multiverse/suites/rails/activejob_test.rb +16 -0
- data/test/multiverse/suites/rails/gc_instrumentation_test.rb +4 -2
- data/test/multiverse/suites/rails/parameter_capture_test.rb +49 -0
- data/test/multiverse/suites/rails/rails3_app/app_rails3_plus.rb +12 -1
- data/test/multiverse/suites/sinatra/sinatra_classic_test.rb +4 -0
- data/test/multiverse/suites/sinatra/sinatra_modular_test.rb +4 -0
- data/test/multiverse/suites/sinatra/sinatra_test_cases.rb +11 -0
- data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +0 -58
- data/test/new_relic/agent/instrumentation/middleware_proxy_test.rb +49 -0
- data/test/new_relic/agent/instrumentation/middleware_tracing_test.rb +26 -14
- data/test/new_relic/agent/parameter_filtering_test.rb +39 -0
- data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +1 -1
- data/test/new_relic/agent/transaction_test.rb +106 -2
- data/test/new_relic/agent/vm/rubinius_vm_test.rb +38 -37
- data/test/new_relic/agent_test.rb +8 -3
- data/test/new_relic/filtering_test_app.rb +18 -0
- data/test/new_relic/latest_changes_test.rb +1 -1
- data/test/new_relic/rack/browser_monitoring_test.rb +4 -4
- data/test/performance/lib/performance/instrumentation/gc_stats.rb +6 -4
- data/test/performance/lib/performance/platform.rb +1 -0
- data/test/performance/suites/thread_profiling.rb +12 -0
- metadata +38 -15
- metadata.gz.sig +2 -1
@@ -0,0 +1,39 @@
|
|
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
|
+
|
5
|
+
require File.expand_path(File.join(File.dirname(__FILE__),'..','..','test_helper'))
|
6
|
+
require 'new_relic/agent/parameter_filtering'
|
7
|
+
|
8
|
+
module NewRelic
|
9
|
+
module Agent
|
10
|
+
class ParameterFilteringTest < Minitest::Test
|
11
|
+
|
12
|
+
def test_apply_filters_returns_params_when_rails_is_not_present
|
13
|
+
undefine_constant(:"ActionDispatch::Http::ParameterFilter") do
|
14
|
+
params = {"password" => "mypass"}
|
15
|
+
result = ParameterFiltering.apply_filters({}, params)
|
16
|
+
assert_equal params, result
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_apply_filters_replaces_file_uploads_with_placeholder
|
21
|
+
env = {"CONTENT_TYPE" => "multipart/form-data"}
|
22
|
+
params = {
|
23
|
+
:name => "name",
|
24
|
+
:file => {
|
25
|
+
:filename => "data.jpg",
|
26
|
+
:tempfile => "file_data"
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
expected = {:name => "name", :file => "[FILE]"}
|
31
|
+
result = ParameterFiltering.apply_filters(env, params)
|
32
|
+
assert_equal expected, result
|
33
|
+
|
34
|
+
# argument should not be mutated
|
35
|
+
assert_equal({ :filename => "data.jpg", :tempfile => "file_data" }, params[:file])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -94,7 +94,7 @@ class NewRelic::Agent::StatsEngine
|
|
94
94
|
GC::Profiler.clear
|
95
95
|
count_after_clear = GC.count
|
96
96
|
|
97
|
-
assert_operator count_before_allocations,
|
97
|
+
assert_operator count_before_allocations, :<=, count_after_allocations
|
98
98
|
assert_operator count_after_allocations, :<=, count_after_clear
|
99
99
|
ensure
|
100
100
|
GC::Profiler.disable if defined?(::GC::Profiler)
|
@@ -236,8 +236,7 @@ class NewRelic::Agent::TransactionTest < Minitest::Test
|
|
236
236
|
end
|
237
237
|
|
238
238
|
def test_name_is_unset_if_nil
|
239
|
-
in_transaction do |txn|
|
240
|
-
txn.default_name = nil
|
239
|
+
in_transaction(:transaction_name => nil) do |txn|
|
241
240
|
assert !txn.name_set?
|
242
241
|
end
|
243
242
|
end
|
@@ -248,6 +247,30 @@ class NewRelic::Agent::TransactionTest < Minitest::Test
|
|
248
247
|
end
|
249
248
|
end
|
250
249
|
|
250
|
+
def test_set_default_transaction_name_without_category
|
251
|
+
in_transaction('foo', :category => :controller) do |txn|
|
252
|
+
NewRelic::Agent::Transaction.set_default_transaction_name('bar')
|
253
|
+
assert_equal("Controller/bar", txn.best_name)
|
254
|
+
assert_equal("Controller/bar", txn.frame_stack.last.name)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
def test_set_default_transaction_name_with_category
|
259
|
+
in_transaction('foo', :category => :controller) do |txn|
|
260
|
+
NewRelic::Agent::Transaction.set_default_transaction_name('bar', :rack)
|
261
|
+
assert_equal("Controller/Rack/bar", txn.best_name)
|
262
|
+
assert_equal("Controller/Rack/bar", txn.frame_stack.last.name)
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
266
|
+
def test_set_default_transaction_name_with_category_and_segment_name
|
267
|
+
in_transaction('foo', :category => :controller) do |txn|
|
268
|
+
NewRelic::Agent::Transaction.set_default_transaction_name('bar', :grape, 'baz')
|
269
|
+
assert_equal("Controller/Grape/bar", txn.best_name)
|
270
|
+
assert_equal("baz", txn.frame_stack.last.name)
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
251
274
|
def test_generates_guid_on_initialization
|
252
275
|
in_transaction do |txn|
|
253
276
|
refute_empty txn.guid
|
@@ -1078,8 +1101,89 @@ class NewRelic::Agent::TransactionTest < Minitest::Test
|
|
1078
1101
|
assert_metrics_recorded(['foo'])
|
1079
1102
|
end
|
1080
1103
|
|
1104
|
+
def test_transaction_start_sets_default_name_for_transactions_with_matching_categories
|
1105
|
+
in_transaction('outside_cascade') do
|
1106
|
+
in_transaction('inside_cascade') do |txn|
|
1107
|
+
assert_equal 'inside_cascade', txn.best_name
|
1108
|
+
end
|
1109
|
+
end
|
1110
|
+
end
|
1111
|
+
|
1112
|
+
def test_similar_category?
|
1113
|
+
web_category1 = NewRelic::Agent::Transaction::WEB_TRANSACTION_CATEGORIES.first
|
1114
|
+
web_category2 = NewRelic::Agent::Transaction::WEB_TRANSACTION_CATEGORIES.last
|
1115
|
+
|
1116
|
+
in_transaction('test', :category => web_category1) do |txn|
|
1117
|
+
assert txn.similar_category?(web_category2)
|
1118
|
+
end
|
1119
|
+
end
|
1120
|
+
|
1121
|
+
def test_similar_category_returns_false_with_mismatched_categories
|
1122
|
+
web_category = NewRelic::Agent::Transaction::WEB_TRANSACTION_CATEGORIES.first
|
1123
|
+
|
1124
|
+
in_transaction('test', :category => web_category) do |txn|
|
1125
|
+
frame = stub(:category => :other)
|
1126
|
+
refute txn.similar_category?(frame)
|
1127
|
+
end
|
1128
|
+
end
|
1129
|
+
|
1130
|
+
def test_similar_category_returns_true_with_nonweb_categories
|
1131
|
+
in_transaction('test', :category => :other) do |txn|
|
1132
|
+
frame = stub(:category => :other)
|
1133
|
+
assert txn.similar_category?(frame)
|
1134
|
+
end
|
1135
|
+
end
|
1136
|
+
|
1137
|
+
def test_set_overriding_transaction_name_sets_name_from_api
|
1138
|
+
in_transaction('test') do |txn|
|
1139
|
+
txn.class.set_overriding_transaction_name('name_from_api', 'category')
|
1140
|
+
|
1141
|
+
assert_equal 'category/name_from_api', txn.best_name
|
1142
|
+
end
|
1143
|
+
end
|
1144
|
+
|
1081
1145
|
def assert_has_custom_parameter(txn, key, value = key)
|
1082
1146
|
assert_equal(value, txn.custom_parameters[key])
|
1083
1147
|
end
|
1084
1148
|
|
1149
|
+
def test_wrap_transaction
|
1150
|
+
state = NewRelic::Agent::TransactionState.tl_get
|
1151
|
+
NewRelic::Agent::Transaction.wrap(state, 'test', :other) do
|
1152
|
+
# No-op
|
1153
|
+
end
|
1154
|
+
|
1155
|
+
assert_metrics_recorded(['test'])
|
1156
|
+
end
|
1157
|
+
|
1158
|
+
def test_wrap_transaction_with_early_failure
|
1159
|
+
yielded = false
|
1160
|
+
state = NewRelic::Agent::TransactionState.tl_get
|
1161
|
+
NewRelic::Agent::Transaction.any_instance.stubs(:start).raises("Boom")
|
1162
|
+
NewRelic::Agent::Transaction.wrap(state, 'test', :other) do
|
1163
|
+
yielded = true
|
1164
|
+
end
|
1165
|
+
|
1166
|
+
assert yielded
|
1167
|
+
end
|
1168
|
+
|
1169
|
+
def test_wrap_transaction_with_late_failure
|
1170
|
+
state = NewRelic::Agent::TransactionState.tl_get
|
1171
|
+
NewRelic::Agent::Transaction.any_instance.stubs(:stop).raises("Boom")
|
1172
|
+
NewRelic::Agent::Transaction.wrap(state, 'test', :other) do
|
1173
|
+
# No-op
|
1174
|
+
end
|
1175
|
+
|
1176
|
+
refute_metrics_recorded(['test'])
|
1177
|
+
end
|
1178
|
+
|
1179
|
+
def test_wrap_transaction_notices_errors
|
1180
|
+
state = NewRelic::Agent::TransactionState.tl_get
|
1181
|
+
assert_raises RuntimeError do
|
1182
|
+
NewRelic::Agent::Transaction.wrap(state, 'test', :other) do
|
1183
|
+
raise "O_o"
|
1184
|
+
end
|
1185
|
+
end
|
1186
|
+
|
1187
|
+
assert_metrics_recorded(["Errors/all"])
|
1188
|
+
end
|
1085
1189
|
end
|
@@ -7,62 +7,63 @@ require 'new_relic/agent/vm/rubinius_vm'
|
|
7
7
|
|
8
8
|
if NewRelic::LanguageSupport.rubinius?
|
9
9
|
class NewRelic::Agent::VM::RubiniusVMTest < Minitest::Test
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
def setup
|
11
|
+
@snap = NewRelic::Agent::VM::Snapshot.new
|
12
|
+
@vm = NewRelic::Agent::VM::RubiniusVM.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_gc_runs
|
16
|
+
@vm.gather_gc_stats(@snap)
|
17
|
+
|
18
|
+
refute_nil @snap.gc_runs
|
19
|
+
end
|
15
20
|
|
16
|
-
|
21
|
+
def test_gather_stats_from_metrics_sets_major_gc_count
|
22
|
+
@vm.gather_stats_from_metrics(@snap)
|
23
|
+
|
24
|
+
refute_nil @snap.major_gc_count
|
17
25
|
end
|
18
26
|
|
19
|
-
def
|
20
|
-
|
21
|
-
:young => { :count => 2 }
|
22
|
-
}})
|
27
|
+
def test_gather_stats_from_metrics_sets_minor_gc_count
|
28
|
+
@vm.gather_stats_from_metrics(@snap)
|
23
29
|
|
24
|
-
|
30
|
+
refute_nil @snap.minor_gc_count
|
25
31
|
end
|
26
32
|
|
27
|
-
def
|
28
|
-
|
29
|
-
:full => { },
|
30
|
-
:young => { :count => 2 }
|
31
|
-
}})
|
33
|
+
def test_gather_stats_from_metrics_sets_major_gc_count
|
34
|
+
@vm.gather_stats_from_metrics(@snap)
|
32
35
|
|
33
|
-
|
36
|
+
refute_nil @snap.major_gc_count
|
34
37
|
end
|
35
38
|
|
36
|
-
def
|
37
|
-
|
38
|
-
:full => { :count => 1 }
|
39
|
-
}})
|
39
|
+
def test_gather_stats_from_metrics_sets_heap_live_slots
|
40
|
+
@vm.gather_stats_from_metrics(@snap)
|
40
41
|
|
41
|
-
|
42
|
+
refute_nil @snap.heap_live
|
42
43
|
end
|
43
44
|
|
44
|
-
def
|
45
|
-
|
46
|
-
:full => { :count => 1},
|
47
|
-
:young => { }
|
48
|
-
}})
|
45
|
+
def test_gather_stats_from_metrics_sets_total_allocated_objects
|
46
|
+
@vm.gather_stats_from_metrics(@snap)
|
49
47
|
|
50
|
-
|
48
|
+
refute_nil @snap.total_allocated_object
|
51
49
|
end
|
52
50
|
|
53
|
-
def
|
54
|
-
|
55
|
-
|
51
|
+
def test_gather_stats_from_metrics_sets_method_cache_invalidations
|
52
|
+
@vm.gather_stats_from_metrics(@snap)
|
53
|
+
|
54
|
+
refute_nil @snap.method_cache_invalidations
|
56
55
|
end
|
57
56
|
|
58
|
-
def
|
59
|
-
|
57
|
+
def test_gather_gc_time
|
58
|
+
@vm.gather_gc_time(@snap)
|
59
|
+
|
60
|
+
refute_nil @snap.gc_total_time
|
60
61
|
end
|
61
62
|
|
62
|
-
def
|
63
|
-
|
64
|
-
|
65
|
-
|
63
|
+
def test_gather_tread_stats
|
64
|
+
@vm.gather_thread_stats(@snap)
|
65
|
+
|
66
|
+
refute_nil @snap.thread_count
|
66
67
|
end
|
67
68
|
end
|
68
69
|
end
|
@@ -352,15 +352,20 @@ module NewRelic
|
|
352
352
|
Transactor.new.txn do
|
353
353
|
NewRelic::Agent.set_transaction_name('new_name', :category => :task)
|
354
354
|
end
|
355
|
-
|
355
|
+
|
356
|
+
assert_metrics_recorded 'OtherTransaction/Background/new_name'
|
357
|
+
|
356
358
|
Transactor.new.txn do
|
357
359
|
NewRelic::Agent.set_transaction_name('new_name', :category => :rack)
|
358
360
|
end
|
359
|
-
|
361
|
+
|
362
|
+
assert_metrics_recorded 'Controller/Rack/new_name'
|
363
|
+
|
360
364
|
Transactor.new.txn do
|
361
365
|
NewRelic::Agent.set_transaction_name('new_name', :category => :sinatra)
|
362
366
|
end
|
363
|
-
|
367
|
+
|
368
|
+
assert_metrics_recorded 'Controller/Sinatra/new_name'
|
364
369
|
end
|
365
370
|
|
366
371
|
def test_set_transaction_name_uses_current_txn_category_default
|
@@ -0,0 +1,18 @@
|
|
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
|
+
|
5
|
+
# This is a simple test app for testing parameter filtering as provided by
|
6
|
+
# the NewRelic::Agent:ParameterFiltering module.
|
7
|
+
|
8
|
+
class FilteringTestApp
|
9
|
+
def call(env)
|
10
|
+
req = Rack::Request.new(env)
|
11
|
+
txn = ::NewRelic::Agent::Transaction.tl_current
|
12
|
+
params = req.params
|
13
|
+
filtered = ::NewRelic::Agent::ParameterFiltering.apply_filters(env, params)
|
14
|
+
txn.filtered_params = filtered
|
15
|
+
raise "Intentional error" if params["raise"]
|
16
|
+
[200, {}, ["Filters applied"]]
|
17
|
+
end
|
18
|
+
end
|
@@ -21,7 +21,7 @@ module NewRelic
|
|
21
21
|
def test_read_default_changelog
|
22
22
|
result = NewRelic::LatestChanges.read
|
23
23
|
assert_match(/# New Relic Ruby Agent Release Notes #/, result)
|
24
|
-
assert_match(/## v\d\.\d\.\d ##/, result)
|
24
|
+
assert_match(/## v\d\.\d{1,2}\.\d{1,2} ##/, result)
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_latest_changes_from_fakechangelog
|
@@ -84,10 +84,10 @@ EOL
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
def
|
88
|
-
assert app.should_instrument?({}, 200, {'Content-Type' => 'text/html'})
|
89
|
-
assert !app.should_instrument?({}, 500, {'Content-Type' => 'text/html'})
|
90
|
-
assert !app.should_instrument?({}, 200, {'Content-Type' => 'text/xhtml'})
|
87
|
+
def test_should_only_instrument_successful_html_requests
|
88
|
+
assert app.should_instrument?({}, 200, {'Content-Type' => 'text/html'}), "Expected to instrument 200 requests."
|
89
|
+
assert !app.should_instrument?({}, 500, {'Content-Type' => 'text/html'}), "Expected not to instrument 500 requests."
|
90
|
+
assert !app.should_instrument?({}, 200, {'Content-Type' => 'text/xhtml'}), "Expected not to instrument requests with content type other than text/html."
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_should_not_instrument_when_content_disposition
|
@@ -5,7 +5,7 @@
|
|
5
5
|
module Performance
|
6
6
|
module Instrumentation
|
7
7
|
class MRIGCStats < Instrumentor
|
8
|
-
platforms :mri_193, :mri_20, :mri_21
|
8
|
+
platforms :mri_193, :mri_20, :mri_21, :mri_22
|
9
9
|
on_by_default
|
10
10
|
|
11
11
|
def before(*)
|
@@ -17,15 +17,17 @@ module Performance
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def results
|
20
|
-
heap_live_before = @stats_before[:heap_live_num] || @stats_before[:heap_live_slot]
|
21
|
-
heap_live_after = @stats_after[:heap_live_num] || @stats_after[:heap_live_slot]
|
20
|
+
heap_live_before = @stats_before[:heap_live_slots] || @stats_before[:heap_live_num] || @stats_before[:heap_live_slot]
|
21
|
+
heap_live_after = @stats_after[:heap_live_slots] || @stats_after[:heap_live_num] || @stats_after[:heap_live_slot]
|
22
22
|
|
23
23
|
res = {
|
24
24
|
:gc_runs => @stats_after[:count] - @stats_before[:count],
|
25
25
|
:live_objects => heap_live_after - heap_live_before
|
26
26
|
}
|
27
27
|
if RUBY_VERSION >= "2.0.0"
|
28
|
-
|
28
|
+
allocs_before = @stats_before[:total_allocated_objects] || @stats_before[:total_allocated_object]
|
29
|
+
allocs_after = @stats_after[:total_allocated_objects] || @stats_after[:total_allocated_object]
|
30
|
+
res[:allocations] = allocs_after - allocs_before
|
29
31
|
end
|
30
32
|
res
|
31
33
|
end
|
@@ -26,6 +26,7 @@ module Performance
|
|
26
26
|
when :mri_193 then !jruby? && RUBY_VERSION =~ /^1\.9\.3/
|
27
27
|
when :mri_20 then !jruby? && RUBY_VERSION =~ /^2\.0\./
|
28
28
|
when :mri_21 then !jruby? && RUBY_VERSION =~ /^2\.1\./
|
29
|
+
when :mri_22 then !jruby? && RUBY_VERSION =~ /^2\.2\./
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
@@ -51,6 +51,18 @@ class ThreadProfiling < Performance::TestCase
|
|
51
51
|
def teardown
|
52
52
|
@cvar.broadcast
|
53
53
|
@threads.each(&:join)
|
54
|
+
rescue Exception => e
|
55
|
+
if e.message =~ /Deadlock/
|
56
|
+
Thread.list.select(&:alive?).each do |t|
|
57
|
+
STDERR.puts "*" * 80
|
58
|
+
STDERR.puts "Live thread: #{t.inspect}"
|
59
|
+
STDERR.puts "Backtrace:"
|
60
|
+
STDERR.puts (t.backtrace || []).join("\n")
|
61
|
+
STDERR.puts "*" * 80
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
raise e
|
54
66
|
end
|
55
67
|
|
56
68
|
def test_gather_backtraces(timer)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.10.0.279
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jason Clark
|
9
9
|
- Tim Krajcar
|
10
|
-
- Chris Pine
|
11
10
|
- Jonan Scheffler
|
11
|
+
- Matthew Wear
|
12
12
|
- Ben Weintraub
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
@@ -41,7 +41,7 @@ cert_chain:
|
|
41
41
|
K0ZZTXduQWIrVm1OT2h2MVMrc0poYmpaMzBQS2d6NnZMaFQ2dW5pZUNqTGs5
|
42
42
|
d0dHbWxTSwpZamJudkE5cXJhTExhalNqCi0tLS0tRU5EIENFUlRJRklDQVRF
|
43
43
|
LS0tLS0K
|
44
|
-
date:
|
44
|
+
date: 2015-02-17 00:00:00.000000000 Z
|
45
45
|
dependencies:
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rake
|
@@ -140,13 +140,13 @@ dependencies:
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: 0.9.12
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
143
|
+
name: hometown
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
none: false
|
146
146
|
requirements:
|
147
147
|
- - ~>
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
149
|
+
version: 0.2.5
|
150
150
|
type: :development
|
151
151
|
prerelease: false
|
152
152
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -154,7 +154,23 @@ dependencies:
|
|
154
154
|
requirements:
|
155
155
|
- - ~>
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
157
|
+
version: 0.2.5
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: guard
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
158
174
|
- !ruby/object:Gem::Dependency
|
159
175
|
name: guard-minitest
|
160
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,33 +192,33 @@ dependencies:
|
|
176
192
|
requirement: !ruby/object:Gem::Requirement
|
177
193
|
none: false
|
178
194
|
requirements:
|
179
|
-
- -
|
195
|
+
- - ! '>='
|
180
196
|
- !ruby/object:Gem::Version
|
181
|
-
version: 0
|
197
|
+
version: '0'
|
182
198
|
type: :development
|
183
199
|
prerelease: false
|
184
200
|
version_requirements: !ruby/object:Gem::Requirement
|
185
201
|
none: false
|
186
202
|
requirements:
|
187
|
-
- -
|
203
|
+
- - ! '>='
|
188
204
|
- !ruby/object:Gem::Version
|
189
|
-
version: 0
|
205
|
+
version: '0'
|
190
206
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
207
|
+
name: i18n
|
192
208
|
requirement: !ruby/object:Gem::Requirement
|
193
209
|
none: false
|
194
210
|
requirements:
|
195
|
-
- -
|
211
|
+
- - '='
|
196
212
|
- !ruby/object:Gem::Version
|
197
|
-
version: 0.
|
213
|
+
version: 0.6.11
|
198
214
|
type: :development
|
199
215
|
prerelease: false
|
200
216
|
version_requirements: !ruby/object:Gem::Requirement
|
201
217
|
none: false
|
202
218
|
requirements:
|
203
|
-
- -
|
219
|
+
- - '='
|
204
220
|
- !ruby/object:Gem::Version
|
205
|
-
version: 0.
|
221
|
+
version: 0.6.11
|
206
222
|
- !ruby/object:Gem::Dependency
|
207
223
|
name: sqlite3
|
208
224
|
requirement: !ruby/object:Gem::Requirement
|
@@ -381,6 +397,7 @@ files:
|
|
381
397
|
- lib/new_relic/agent/new_relic_service/pruby_marshaller.rb
|
382
398
|
- lib/new_relic/agent/null_logger.rb
|
383
399
|
- lib/new_relic/agent/obfuscator.rb
|
400
|
+
- lib/new_relic/agent/parameter_filtering.rb
|
384
401
|
- lib/new_relic/agent/pipe_channel_manager.rb
|
385
402
|
- lib/new_relic/agent/pipe_service.rb
|
386
403
|
- lib/new_relic/agent/rules_engine.rb
|
@@ -897,6 +914,8 @@ files:
|
|
897
914
|
- test/multiverse/suites/grape/config/newrelic.yml
|
898
915
|
- test/multiverse/suites/grape/grape_test.rb
|
899
916
|
- test/multiverse/suites/grape/grape_test_api.rb
|
917
|
+
- test/multiverse/suites/grape/grape_versioning_test.rb
|
918
|
+
- test/multiverse/suites/grape/grape_versioning_test_api.rb
|
900
919
|
- test/multiverse/suites/grape/unsupported_version_test.rb
|
901
920
|
- test/multiverse/suites/high_security/Envfile
|
902
921
|
- test/multiverse/suites/high_security/config/newrelic.yml
|
@@ -931,7 +950,9 @@ files:
|
|
931
950
|
- test/multiverse/suites/rack/http_response_code_test.rb
|
932
951
|
- test/multiverse/suites/rack/nested_non_rack_app_test.rb
|
933
952
|
- test/multiverse/suites/rack/rack_auto_instrumentation_test.rb
|
953
|
+
- test/multiverse/suites/rack/rack_cascade_test.rb
|
934
954
|
- test/multiverse/suites/rack/rack_env_mutation_test.rb
|
955
|
+
- test/multiverse/suites/rack/rack_parameter_filtering_test.rb
|
935
956
|
- test/multiverse/suites/rack/rack_unsupported_version_test.rb
|
936
957
|
- test/multiverse/suites/rack/url_map_test.rb
|
937
958
|
- test/multiverse/suites/rails/Envfile
|
@@ -1085,6 +1106,7 @@ files:
|
|
1085
1106
|
- test/new_relic/agent/mock_scope_listener.rb
|
1086
1107
|
- test/new_relic/agent/new_relic_service_test.rb
|
1087
1108
|
- test/new_relic/agent/obfuscator_test.rb
|
1109
|
+
- test/new_relic/agent/parameter_filtering_test.rb
|
1088
1110
|
- test/new_relic/agent/pipe_channel_manager_test.rb
|
1089
1111
|
- test/new_relic/agent/pipe_service_test.rb
|
1090
1112
|
- test/new_relic/agent/rpm_agent_test.rb
|
@@ -1152,6 +1174,7 @@ files:
|
|
1152
1174
|
- test/new_relic/fake_instance_metadata_service.rb
|
1153
1175
|
- test/new_relic/fake_rpm_site.rb
|
1154
1176
|
- test/new_relic/fake_server.rb
|
1177
|
+
- test/new_relic/filtering_test_app.rb
|
1155
1178
|
- test/new_relic/framework_test.rb
|
1156
1179
|
- test/new_relic/http_client_test_cases.rb
|
1157
1180
|
- test/new_relic/json_wrapper_test.rb
|