newrelic_rpm 3.1.2 → 3.2.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of newrelic_rpm might be problematic. Click here for more details.
- data/CHANGELOG +9 -0
- data/lib/new_relic/agent.rb +12 -3
- data/lib/new_relic/agent/agent.rb +99 -97
- data/lib/new_relic/agent/database.rb +203 -0
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +2 -0
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +2 -0
- data/lib/new_relic/agent/instrumentation/authlogic.rb +2 -0
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +2 -0
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +2 -0
- data/lib/new_relic/agent/instrumentation/memcache.rb +23 -13
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +2 -1
- data/lib/new_relic/agent/instrumentation/merb/errors.rb +2 -0
- data/lib/new_relic/agent/instrumentation/metric_frame.rb +7 -1
- data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +1 -0
- data/lib/new_relic/agent/instrumentation/net.rb +2 -0
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +2 -0
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +63 -36
- data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +2 -0
- data/lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb +5 -2
- data/lib/new_relic/agent/instrumentation/rails/errors.rb +4 -2
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +56 -2
- data/lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb +5 -2
- data/lib/new_relic/agent/instrumentation/rails3/errors.rb +3 -1
- data/lib/new_relic/agent/instrumentation/sunspot.rb +2 -0
- data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +2 -1
- data/lib/new_relic/agent/shim_agent.rb +1 -0
- data/lib/new_relic/agent/sql_sampler.rb +230 -0
- data/lib/new_relic/agent/stats_engine/transactions.rb +10 -0
- data/lib/new_relic/agent/transaction_sampler.rb +11 -6
- data/lib/new_relic/collection_helper.rb +7 -4
- data/lib/new_relic/commands/deployments.rb +1 -1
- data/lib/new_relic/commands/install.rb +2 -13
- data/lib/new_relic/control/class_methods.rb +4 -3
- data/lib/new_relic/control/configuration.rb +21 -0
- data/lib/new_relic/control/frameworks/rails.rb +1 -1
- data/lib/new_relic/control/logging_methods.rb +17 -6
- data/lib/new_relic/delayed_job_injection.rb +1 -1
- data/lib/new_relic/local_environment.rb +8 -14
- data/lib/new_relic/rack/developer_mode.rb +1 -0
- data/lib/new_relic/stats.rb +1 -0
- data/lib/new_relic/transaction_sample.rb +5 -60
- data/lib/new_relic/transaction_sample/segment.rb +7 -82
- data/lib/new_relic/version.rb +3 -3
- data/newrelic_rpm.gemspec +8 -3
- data/test/new_relic/agent/agent/connect_test.rb +95 -0
- data/test/new_relic/agent/agent/start_test.rb +0 -85
- data/test/new_relic/agent/agent/start_worker_thread_test.rb +1 -0
- data/test/new_relic/agent/agent_test.rb +0 -73
- data/test/new_relic/agent/browser_monitoring_test.rb +1 -1
- data/test/new_relic/agent/database_test.rb +160 -0
- data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +3 -0
- data/test/new_relic/agent/memcache_instrumentation_test.rb +14 -15
- data/test/new_relic/agent/sql_sampler_test.rb +135 -0
- data/test/new_relic/agent/transaction_sampler_test.rb +12 -3
- data/test/new_relic/collection_helper_test.rb +4 -4
- data/test/new_relic/control/configuration_test.rb +31 -0
- data/test/new_relic/control/logging_methods_test.rb +20 -4
- data/test/new_relic/delayed_job_injection_test.rb +1 -1
- data/test/new_relic/rack/developer_mode_helper_test.rb +141 -0
- data/test/new_relic/stats_test.rb +3 -3
- data/test/new_relic/transaction_sample/segment_test.rb +4 -92
- data/test/new_relic/transaction_sample_test.rb +1 -1
- data/test/test_helper.rb +1 -1
- data/ui/helpers/developer_mode_helper.rb +14 -8
- data/ui/helpers/google_pie_chart.rb +0 -1
- data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +5 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +11 -11
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +4 -0
- metadata +15 -10
@@ -343,87 +343,12 @@ class NewRelic::TransactionSample::SegmentTest < Test::Unit::TestCase
|
|
343
343
|
assert_equal(s, s.find_segment(id_to_find))
|
344
344
|
end
|
345
345
|
|
346
|
-
def test_explain_sql_no_sql
|
347
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
348
|
-
s.params = {:sql => nil}
|
349
|
-
assert_equal(nil, s.explain_sql)
|
350
|
-
end
|
351
|
-
|
352
|
-
def test_explain_sql_no_connection_config
|
353
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
354
|
-
s.params = {:sql => 'foo', :connection_config => nil}
|
355
|
-
assert_equal(nil, s.explain_sql)
|
356
|
-
end
|
357
|
-
|
358
|
-
def test_explain_sql_non_select
|
359
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
360
|
-
s.params = {:sql => 'foo', :connection_config => mock('config')}
|
361
|
-
assert_equal([], s.explain_sql)
|
362
|
-
end
|
363
|
-
|
364
|
-
def test_explain_sql_one_select_no_connection
|
365
|
-
# NB this test raises an error in the log, much as it might if a
|
366
|
-
# user supplied a config that was not valid. This is generally
|
367
|
-
# expected behavior - the get_connection method shouldn't allow
|
368
|
-
# errors to percolate up.
|
369
|
-
config = mock('config')
|
370
|
-
config.stubs(:[]).returns(nil)
|
371
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
372
|
-
s.params = {:sql => 'SELECT', :connection_config => config}
|
373
|
-
assert_equal([], s.explain_sql)
|
374
|
-
end
|
375
|
-
|
376
|
-
def test_explain_sql_one_select_with_mysql_connection
|
377
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
378
|
-
config = {:adapter => 'mysql'}
|
379
|
-
config.default('val')
|
380
|
-
s.params = {:sql => 'SELECT', :connection_config => config}
|
381
|
-
connection = mock('connection')
|
382
|
-
plan = {
|
383
|
-
"select_type"=>"SIMPLE", "key_len"=>nil, "table"=>"blogs", "id"=>"1",
|
384
|
-
"possible_keys"=>nil, "type"=>"ALL", "Extra"=>"", "rows"=>"2",
|
385
|
-
"ref"=>nil, "key"=>nil
|
386
|
-
}
|
387
|
-
result = mock('explain plan')
|
388
|
-
result.expects(:each_hash).yields(plan)
|
389
|
-
# two rows, two columns
|
390
|
-
connection.expects(:execute).with('EXPLAIN SELECT').returns(result)
|
391
|
-
NewRelic::TransactionSample.expects(:get_connection).with(config).returns(connection)
|
392
|
-
|
393
|
-
assert_equal(plan.keys.sort, s.explain_sql[0].sort)
|
394
|
-
assert_equal(plan.values.compact.sort, s.explain_sql[1][0].compact.sort)
|
395
|
-
end
|
396
|
-
|
397
|
-
def test_process_resultset
|
398
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
399
|
-
resultset = [["column"]]
|
400
|
-
assert_equal([nil, [["column"]]], s.process_resultset(resultset))
|
401
|
-
end
|
402
|
-
|
403
|
-
def test_explain_sql_one_select_with_pg_connection
|
404
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
405
|
-
config = {:adapter => 'postgresql'}
|
406
|
-
config.default('val')
|
407
|
-
s.params = {:sql => "select count(id) from blogs limit 1;", :connection_config => config}
|
408
|
-
connection = mock('connection')
|
409
|
-
plan = [{"QUERY PLAN"=>"Limit (cost=11.75..11.76 rows=1 width=4)"},
|
410
|
-
{"QUERY PLAN"=>" -> Aggregate (cost=11.75..11.76 rows=1 width=4)"},
|
411
|
-
{"QUERY PLAN"=>" -> Seq Scan on blogs (cost=0.00..11.40 rows=140 width=4)"}]
|
412
|
-
connection.expects(:execute).returns(plan)
|
413
|
-
NewRelic::TransactionSample.expects(:get_connection).with(config).returns(connection)
|
414
|
-
assert_equal([['QUERY PLAN'],
|
415
|
-
[["Limit (cost=11.75..11.76 rows=1 width=4)"],
|
416
|
-
[" -> Aggregate (cost=11.75..11.76 rows=1 width=4)"],
|
417
|
-
[" -> Seq Scan on blogs (cost=0.00..11.40 rows=140 width=4)"]]],
|
418
|
-
s.explain_sql)
|
419
|
-
end
|
420
|
-
|
421
346
|
def test_explain_sql_raising_an_error
|
422
347
|
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
423
348
|
config = mock('config')
|
424
349
|
s.params = {:sql => 'SELECT', :connection_config => config}
|
425
350
|
connection = mock('connection')
|
426
|
-
NewRelic::
|
351
|
+
NewRelic::Agent::Database.expects(:get_connection).with(config).raises(RuntimeError.new("whee"))
|
427
352
|
assert_nothing_raised do
|
428
353
|
s.explain_sql
|
429
354
|
end
|
@@ -438,25 +363,12 @@ class NewRelic::TransactionSample::SegmentTest < Test::Unit::TestCase
|
|
438
363
|
s.params = params
|
439
364
|
assert_equal(params, s.instance_eval { @params })
|
440
365
|
end
|
441
|
-
|
442
|
-
def test_handle_exception_in_explain
|
443
|
-
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
444
|
-
fake_error = Exception.new
|
445
|
-
fake_error.expects(:message).returns('a message')
|
446
|
-
NewRelic::Control.instance.log.expects(:error).with('Error getting query plan: a message')
|
447
|
-
# backtrace can be basically any string, just should get logged
|
448
|
-
NewRelic::Control.instance.log.expects(:debug).with(instance_of(String))
|
449
|
-
s.handle_exception_in_explain do
|
450
|
-
raise(fake_error)
|
451
|
-
end
|
452
|
-
end
|
453
|
-
|
366
|
+
|
454
367
|
def test_obfuscated_sql
|
455
|
-
sql = '
|
368
|
+
sql = 'select * from table where id = 1'
|
456
369
|
s = NewRelic::TransactionSample::Segment.new(Time.now, 'Custom/test/metric', nil)
|
457
370
|
s[:sql] = sql
|
458
|
-
|
459
|
-
s.obfuscated_sql
|
371
|
+
assert_equal('select * from table where id = ?', s.obfuscated_sql)
|
460
372
|
end
|
461
373
|
|
462
374
|
def test_called_segments_equals
|
@@ -8,7 +8,7 @@ class NewRelic::TransactionSampleTest < Test::Unit::TestCase
|
|
8
8
|
@connection_stub = Mocha::Mockery.instance.named_mock('connection')
|
9
9
|
@connection_stub.stubs(:execute).returns([['QUERY RESULT']])
|
10
10
|
|
11
|
-
NewRelic::
|
11
|
+
NewRelic::Agent::Database.stubs(:get_connection).returns @connection_stub
|
12
12
|
@t = make_sql_transaction(::SQL_STATEMENT, ::SQL_STATEMENT)
|
13
13
|
end
|
14
14
|
|
data/test/test_helper.rb
CHANGED
@@ -46,7 +46,7 @@ require 'mocha/integration/test_unit/assertion_counter'
|
|
46
46
|
class Test::Unit::TestCase
|
47
47
|
include Mocha::API
|
48
48
|
|
49
|
-
#
|
49
|
+
# we can delete this trick when we stop supporting rails2.0.x
|
50
50
|
if ENV['BRANCH'] != 'rails20'
|
51
51
|
# a hack because rails2.0.2 does not like double teardowns
|
52
52
|
def teardown
|
@@ -27,8 +27,8 @@ module NewRelic::DeveloperModeHelper
|
|
27
27
|
def application_caller(trace)
|
28
28
|
trace = strip_nr_from_backtrace(trace) unless params[:show_nr]
|
29
29
|
trace.each do |trace_line|
|
30
|
-
file = file_and_line(trace_line)
|
31
|
-
unless exclude_file_from_stack_trace?(file, false)
|
30
|
+
file, line, gem = file_and_line(trace_line)
|
31
|
+
unless file && exclude_file_from_stack_trace?(file, false, gem)
|
32
32
|
return trace_line
|
33
33
|
end
|
34
34
|
end
|
@@ -38,8 +38,8 @@ module NewRelic::DeveloperModeHelper
|
|
38
38
|
def application_stack_trace(trace, include_rails = false)
|
39
39
|
trace = strip_nr_from_backtrace(trace) unless params[:show_nr]
|
40
40
|
trace.reject do |trace_line|
|
41
|
-
file = file_and_line(trace_line)
|
42
|
-
exclude_file_from_stack_trace?(file, include_rails)
|
41
|
+
file, line, gem = file_and_line(trace_line)
|
42
|
+
file && exclude_file_from_stack_trace?(file, include_rails, gem)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -60,7 +60,7 @@ module NewRelic::DeveloperModeHelper
|
|
60
60
|
|
61
61
|
def url_for_source(trace_line)
|
62
62
|
file, line = file_and_line(trace_line)
|
63
|
-
|
63
|
+
return "#" if file.nil?
|
64
64
|
begin
|
65
65
|
file = Pathname.new(file).realpath
|
66
66
|
rescue Errno::ENOENT
|
@@ -70,7 +70,6 @@ module NewRelic::DeveloperModeHelper
|
|
70
70
|
rescue
|
71
71
|
# catch all other exceptions. We're going to create an invalid link below, but that's okay.
|
72
72
|
end
|
73
|
-
|
74
73
|
if using_textmate?
|
75
74
|
"txmt://open?url=file://#{file}&line=#{line}"
|
76
75
|
else
|
@@ -230,8 +229,14 @@ module NewRelic::DeveloperModeHelper
|
|
230
229
|
end
|
231
230
|
|
232
231
|
private
|
232
|
+
# return three objects, the file path, the line in the file, and the gem the file belongs to
|
233
|
+
# if found
|
233
234
|
def file_and_line(stack_trace_line)
|
234
|
-
stack_trace_line.
|
235
|
+
if stack_trace_line =~ /^(?:(\w+) \([\d.]*\) )?(.*):(\d+)/
|
236
|
+
return $2, $3, $1
|
237
|
+
else
|
238
|
+
return nil
|
239
|
+
end
|
235
240
|
end
|
236
241
|
|
237
242
|
def using_textmate?
|
@@ -262,9 +267,10 @@ module NewRelic::DeveloperModeHelper
|
|
262
267
|
html
|
263
268
|
end
|
264
269
|
|
265
|
-
def exclude_file_from_stack_trace?(file, include_rails)
|
270
|
+
def exclude_file_from_stack_trace?(file, include_rails, gem=nil)
|
266
271
|
return false if include_rails
|
267
272
|
return true if file !~ /\.(rb|java)/
|
273
|
+
return true if %w[rack activerecord activeresource activesupport actionpack railties].include? gem
|
268
274
|
%w[/actionmailer/
|
269
275
|
/activerecord
|
270
276
|
/activeresource
|
@@ -4,13 +4,13 @@ module NewRelic
|
|
4
4
|
class MemCache < NewRelic::MetricParser::MetricParser
|
5
5
|
def is_memcache?; true; end
|
6
6
|
|
7
|
-
# for
|
7
|
+
# for Memcache metrics, the short name is actually
|
8
8
|
# the full name
|
9
9
|
def short_name
|
10
|
-
|
10
|
+
'Memcache'
|
11
11
|
end
|
12
12
|
def developer_name
|
13
|
-
"
|
13
|
+
"Memcache #{segments[1..-1].join '/'}"
|
14
14
|
end
|
15
15
|
|
16
16
|
def all?
|
@@ -22,19 +22,19 @@ module NewRelic
|
|
22
22
|
def legend_name
|
23
23
|
case segments[1]
|
24
24
|
when 'allWeb'
|
25
|
-
"
|
25
|
+
"Memcache"
|
26
26
|
when 'allOther'
|
27
|
-
"Non-web
|
27
|
+
"Non-web Memcache"
|
28
28
|
else
|
29
|
-
"
|
29
|
+
"Memcache #{operation} operations"
|
30
30
|
end
|
31
31
|
end
|
32
32
|
def tooltip_name
|
33
33
|
case segments[1]
|
34
34
|
when 'allWeb'
|
35
|
-
"
|
35
|
+
"Memcache calls from web transactions"
|
36
36
|
when 'allOther'
|
37
|
-
"
|
37
|
+
"Memcache calls from non-web transactions"
|
38
38
|
else
|
39
39
|
"MemCache #{operation} operations"
|
40
40
|
end
|
@@ -43,11 +43,11 @@ module NewRelic
|
|
43
43
|
def developer_name
|
44
44
|
case segments[1]
|
45
45
|
when 'allWeb'
|
46
|
-
"Web
|
46
|
+
"Web Memcache"
|
47
47
|
when 'allOther'
|
48
|
-
"Non-web
|
48
|
+
"Non-web Memcache"
|
49
49
|
else
|
50
|
-
"
|
50
|
+
"Memcache #{operation}"
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -16,6 +16,8 @@ module NewRelic
|
|
16
16
|
"#{file_name(segments[-2])} Template"
|
17
17
|
when "Partial"
|
18
18
|
"#{file_name(segments[-2])} Partial"
|
19
|
+
when "Collection"
|
20
|
+
"#{file_name(segments[-2])} Collection"
|
19
21
|
when ".rhtml Processing"
|
20
22
|
"ERB compilation"
|
21
23
|
else
|
@@ -28,6 +30,8 @@ module NewRelic
|
|
28
30
|
"#{file_name(segments[1..-2].join(NewRelic::MetricParser::MetricParser::SEPARATOR))} Template"
|
29
31
|
when "Partial"
|
30
32
|
"#{file_name(segments[1..-2].join(NewRelic::MetricParser::MetricParser::SEPARATOR))} Partial"
|
33
|
+
when "Collection"
|
34
|
+
"#{file_name(segments[1..-2].join(NewRelic::MetricParser::MetricParser::SEPARATOR))} Collection"
|
31
35
|
when ".rhtml Processing"
|
32
36
|
"ERB compilation"
|
33
37
|
else
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
5
|
-
prerelease:
|
4
|
+
version: 3.2.0.beta1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Bill Kayser
|
@@ -12,12 +12,12 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2011-09-
|
15
|
+
date: 2011-09-23 00:00:00.000000000 -07:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: jeweler
|
20
|
-
requirement: &
|
20
|
+
requirement: &2173242300 !ruby/object:Gem::Requirement
|
21
21
|
none: false
|
22
22
|
requirements:
|
23
23
|
- - ! '>='
|
@@ -25,10 +25,10 @@ dependencies:
|
|
25
25
|
version: '0'
|
26
26
|
type: :development
|
27
27
|
prerelease: false
|
28
|
-
version_requirements: *
|
28
|
+
version_requirements: *2173242300
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: mocha
|
31
|
-
requirement: &
|
31
|
+
requirement: &2173241580 !ruby/object:Gem::Requirement
|
32
32
|
none: false
|
33
33
|
requirements:
|
34
34
|
- - ! '>='
|
@@ -36,10 +36,10 @@ dependencies:
|
|
36
36
|
version: '0'
|
37
37
|
type: :development
|
38
38
|
prerelease: false
|
39
|
-
version_requirements: *
|
39
|
+
version_requirements: *2173241580
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: shoulda
|
42
|
-
requirement: &
|
42
|
+
requirement: &2173239980 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ! '>='
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
|
-
version_requirements: *
|
50
|
+
version_requirements: *2173239980
|
51
51
|
description: ! 'New Relic is a performance management system, developed by New Relic,
|
52
52
|
|
53
53
|
Inc (http://www.newrelic.com). New Relic provides you with deep
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/new_relic/agent/browser_monitoring.rb
|
92
92
|
- lib/new_relic/agent/busy_calculator.rb
|
93
93
|
- lib/new_relic/agent/chained_call.rb
|
94
|
+
- lib/new_relic/agent/database.rb
|
94
95
|
- lib/new_relic/agent/error_collector.rb
|
95
96
|
- lib/new_relic/agent/instrumentation.rb
|
96
97
|
- lib/new_relic/agent/instrumentation/active_merchant.rb
|
@@ -125,6 +126,7 @@ files:
|
|
125
126
|
- lib/new_relic/agent/samplers/memory_sampler.rb
|
126
127
|
- lib/new_relic/agent/samplers/object_sampler.rb
|
127
128
|
- lib/new_relic/agent/shim_agent.rb
|
129
|
+
- lib/new_relic/agent/sql_sampler.rb
|
128
130
|
- lib/new_relic/agent/stats_engine.rb
|
129
131
|
- lib/new_relic/agent/stats_engine/metric_stats.rb
|
130
132
|
- lib/new_relic/agent/stats_engine/samplers.rb
|
@@ -194,6 +196,7 @@ files:
|
|
194
196
|
- test/new_relic/agent/beacon_configuration_test.rb
|
195
197
|
- test/new_relic/agent/browser_monitoring_test.rb
|
196
198
|
- test/new_relic/agent/busy_calculator_test.rb
|
199
|
+
- test/new_relic/agent/database_test.rb
|
197
200
|
- test/new_relic/agent/error_collector/notice_error_test.rb
|
198
201
|
- test/new_relic/agent/error_collector_test.rb
|
199
202
|
- test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb
|
@@ -213,6 +216,7 @@ files:
|
|
213
216
|
- test/new_relic/agent/rpm_agent_test.rb
|
214
217
|
- test/new_relic/agent/sampler_test.rb
|
215
218
|
- test/new_relic/agent/shim_agent_test.rb
|
219
|
+
- test/new_relic/agent/sql_sampler_test.rb
|
216
220
|
- test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb
|
217
221
|
- test/new_relic/agent/stats_engine/metric_stats_test.rb
|
218
222
|
- test/new_relic/agent/stats_engine/samplers_test.rb
|
@@ -234,6 +238,7 @@ files:
|
|
234
238
|
- test/new_relic/metric_spec_test.rb
|
235
239
|
- test/new_relic/rack/all_test.rb
|
236
240
|
- test/new_relic/rack/browser_monitoring_test.rb
|
241
|
+
- test/new_relic/rack/developer_mode_helper_test.rb
|
237
242
|
- test/new_relic/rack/developer_mode_test.rb
|
238
243
|
- test/new_relic/stats_test.rb
|
239
244
|
- test/new_relic/transaction_analysis/segment_summary_test.rb
|
@@ -334,7 +339,7 @@ post_install_message: ! "\nPLEASE NOTE:\n\nDeveloper Mode is now a Rack middlewa
|
|
334
339
|
to\nyour middleware stack.\n\nIf you are using JRuby, we recommend using at least
|
335
340
|
version 1.4 or \nlater because of issues with the implementation of the timeout
|
336
341
|
library.\n\nRefer to the README.md file for more information.\n\nPlease see http://github.com/newrelic/rpm/blob/master/CHANGELOG\nfor
|
337
|
-
a complete description of the features and enhancements available\nin version 3.
|
342
|
+
a complete description of the features and enhancements available\nin version 3.2
|
338
343
|
of the Ruby Agent.\n \n"
|
339
344
|
rdoc_options:
|
340
345
|
- --line-numbers
|