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.
Files changed (67) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +51 -0
  3. data/config.dot +0 -3
  4. data/lib/new_relic/agent.rb +7 -5
  5. data/lib/new_relic/agent/agent.rb +4 -4
  6. data/lib/new_relic/agent/instrumentation/active_job.rb +5 -8
  7. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +17 -34
  8. data/lib/new_relic/agent/instrumentation/grape.rb +60 -23
  9. data/lib/new_relic/agent/instrumentation/merb/controller.rb +10 -2
  10. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +33 -21
  11. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +7 -3
  12. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +0 -9
  13. data/lib/new_relic/agent/instrumentation/sinatra.rb +9 -12
  14. data/lib/new_relic/agent/javascript_instrumentor.rb +1 -0
  15. data/lib/new_relic/agent/new_relic_service.rb +9 -6
  16. data/lib/new_relic/agent/parameter_filtering.rb +37 -0
  17. data/lib/new_relic/agent/supported_versions.rb +7 -0
  18. data/lib/new_relic/agent/traced_method_stack.rb +1 -1
  19. data/lib/new_relic/agent/transaction.rb +182 -186
  20. data/lib/new_relic/agent/vm/rubinius_vm.rb +93 -3
  21. data/lib/new_relic/control/frameworks/rails.rb +1 -0
  22. data/lib/new_relic/rack/agent_hooks.rb +15 -23
  23. data/lib/new_relic/version.rb +2 -2
  24. data/newrelic_rpm.gemspec +12 -5
  25. data/test/agent_helper.rb +26 -14
  26. data/test/multiverse/lib/multiverse/suite.rb +1 -5
  27. data/test/multiverse/suites/activemerchant/Envfile +4 -1
  28. data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +2 -12
  29. data/test/multiverse/suites/agent_only/logging_test.rb +1 -1
  30. data/test/multiverse/suites/agent_only/set_transaction_name_test.rb +4 -0
  31. data/test/multiverse/suites/agent_only/synthetics_test.rb +1 -8
  32. data/test/multiverse/suites/agent_only/testing_app.rb +1 -7
  33. data/test/multiverse/suites/agent_only/xray_sessions_test.rb +11 -11
  34. data/test/multiverse/suites/deferred_instrumentation/sinatra_test.rb +4 -0
  35. data/test/multiverse/suites/grape/Envfile +1 -3
  36. data/test/multiverse/suites/grape/grape_test.rb +87 -6
  37. data/test/multiverse/suites/grape/grape_test_api.rb +5 -0
  38. data/test/multiverse/suites/grape/grape_versioning_test.rb +67 -0
  39. data/test/multiverse/suites/grape/grape_versioning_test_api.rb +72 -0
  40. data/test/multiverse/suites/rack/example_app.rb +31 -1
  41. data/test/multiverse/suites/rack/rack_auto_instrumentation_test.rb +11 -10
  42. data/test/multiverse/suites/rack/rack_cascade_test.rb +46 -0
  43. data/test/multiverse/suites/rack/rack_parameter_filtering_test.rb +40 -0
  44. data/test/multiverse/suites/rails/Envfile +8 -0
  45. data/test/multiverse/suites/rails/activejob_test.rb +16 -0
  46. data/test/multiverse/suites/rails/gc_instrumentation_test.rb +4 -2
  47. data/test/multiverse/suites/rails/parameter_capture_test.rb +49 -0
  48. data/test/multiverse/suites/rails/rails3_app/app_rails3_plus.rb +12 -1
  49. data/test/multiverse/suites/sinatra/sinatra_classic_test.rb +4 -0
  50. data/test/multiverse/suites/sinatra/sinatra_modular_test.rb +4 -0
  51. data/test/multiverse/suites/sinatra/sinatra_test_cases.rb +11 -0
  52. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +0 -58
  53. data/test/new_relic/agent/instrumentation/middleware_proxy_test.rb +49 -0
  54. data/test/new_relic/agent/instrumentation/middleware_tracing_test.rb +26 -14
  55. data/test/new_relic/agent/parameter_filtering_test.rb +39 -0
  56. data/test/new_relic/agent/stats_engine/gc_profiler_test.rb +1 -1
  57. data/test/new_relic/agent/transaction_test.rb +106 -2
  58. data/test/new_relic/agent/vm/rubinius_vm_test.rb +38 -37
  59. data/test/new_relic/agent_test.rb +8 -3
  60. data/test/new_relic/filtering_test_app.rb +18 -0
  61. data/test/new_relic/latest_changes_test.rb +1 -1
  62. data/test/new_relic/rack/browser_monitoring_test.rb +4 -4
  63. data/test/performance/lib/performance/instrumentation/gc_stats.rb +6 -4
  64. data/test/performance/lib/performance/platform.rb +1 -0
  65. data/test/performance/suites/thread_profiling.rb +12 -0
  66. metadata +38 -15
  67. 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, :<, count_after_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 test_normal_usage
11
- with_stats({ :gc => {
12
- :full => { :count => 1 },
13
- :young => { :count => 2 }
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
- has_major_minor(1, 2)
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 test_missing_full
20
- with_stats({ :gc => {
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
- has_major_minor(nil, 2)
30
+ refute_nil @snap.minor_gc_count
25
31
  end
26
32
 
27
- def test_missing_full_count
28
- with_stats({ :gc => {
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
- has_major_minor(nil, 2)
36
+ refute_nil @snap.major_gc_count
34
37
  end
35
38
 
36
- def test_missing_young
37
- with_stats({ :gc => {
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
- has_major_minor(1, nil)
42
+ refute_nil @snap.heap_live
42
43
  end
43
44
 
44
- def test_missing_young_count
45
- with_stats({ :gc => {
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
- has_major_minor(1, nil)
48
+ refute_nil @snap.total_allocated_object
51
49
  end
52
50
 
53
- def test_missing_gc
54
- with_stats({})
55
- has_major_minor(nil, nil)
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 with_stats(stats)
59
- GC.stubs(:stat).returns(stats)
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 has_major_minor(major, minor)
63
- snapshot = NewRelic::Agent::VM::RubiniusVM.new.snapshot
64
- assert_equal(major, snapshot.major_gc_count)
65
- assert_equal(minor, snapshot.minor_gc_count)
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
- assert engine.lookup_stats('OtherTransaction/Background/new_name')
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
- assert engine.lookup_stats('Controller/Rack/new_name')
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
- assert engine.lookup_stats('Controller/Sinatra/new_name')
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 test_should_only_instrument_successfull_html_requests
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
- res[:allocations] = @stats_after[:total_allocated_object] - @stats_before[:total_allocated_object]
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.9.9.275
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: 2014-12-29 00:00:00.000000000 Z
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: guard
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: 1.8.3
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: 1.8.3
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.9.1
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.9.1
205
+ version: '0'
190
206
  - !ruby/object:Gem::Dependency
191
- name: hometown
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.2.5
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.2.5
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