newrelic_rpm 3.2.0.1 → 3.3.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of newrelic_rpm might be problematic. Click here for more details.

Files changed (38) hide show
  1. data/CHANGELOG +7 -3
  2. data/LICENSE +2 -29
  3. data/README.rdoc +2 -2
  4. data/lib/new_relic/agent.rb +14 -0
  5. data/lib/new_relic/agent/agent.rb +19 -9
  6. data/lib/new_relic/agent/beacon_configuration.rb +11 -0
  7. data/lib/new_relic/agent/browser_monitoring.rb +53 -13
  8. data/lib/new_relic/agent/database.rb +11 -1
  9. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -1
  10. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +3 -2
  11. data/lib/new_relic/agent/instrumentation/metric_frame.rb +23 -2
  12. data/lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb +15 -12
  13. data/lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb +11 -8
  14. data/lib/new_relic/agent/sql_sampler.rb +19 -7
  15. data/lib/new_relic/agent/stats_engine.rb +1 -0
  16. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +120 -0
  17. data/lib/new_relic/agent/stats_engine/transactions.rb +2 -85
  18. data/lib/new_relic/agent/transaction_info.rb +49 -0
  19. data/lib/new_relic/agent/transaction_sample_builder.rb +2 -0
  20. data/lib/new_relic/agent/transaction_sampler.rb +65 -7
  21. data/lib/new_relic/rack/browser_monitoring.rb +38 -8
  22. data/lib/new_relic/transaction_sample.rb +8 -6
  23. data/lib/new_relic/version.rb +2 -2
  24. data/newrelic.yml +1 -1
  25. data/newrelic_rpm.gemspec +6 -3
  26. data/test/new_relic/agent/agent/connect_test.rb +4 -11
  27. data/test/new_relic/agent/beacon_configuration_test.rb +10 -7
  28. data/test/new_relic/agent/browser_monitoring_test.rb +69 -44
  29. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +12 -8
  30. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +0 -2
  31. data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +0 -1
  32. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +3 -3
  33. data/test/new_relic/agent/sql_sampler_test.rb +25 -10
  34. data/test/new_relic/agent/stats_engine_test.rb +41 -6
  35. data/test/new_relic/agent/transaction_sampler_test.rb +22 -12
  36. data/test/new_relic/metric_parser/metric_parser_test.rb +11 -0
  37. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +7 -1
  38. metadata +321 -337
@@ -3,13 +3,9 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
3
3
  require 'active_record_fixtures'
4
4
  include NewRelic::Agent::Instrumentation::ControllerInstrumentation
5
5
 
6
- @@setup = false
7
6
  def setup
8
7
  super
9
- unless @@setup
10
- NewRelic::Agent.manual_start
11
- @setup = true
12
- end
8
+ NewRelic::Agent.manual_start
13
9
  ActiveRecordFixtures.setup
14
10
  NewRelic::Agent.instance.transaction_sampler.reset!
15
11
  NewRelic::Agent.instance.stats_engine.clear_stats
@@ -89,7 +85,9 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
89
85
  ActiveRecord/all
90
86
  ActiveRecord/find
91
87
  ActiveRecord/ActiveRecordFixtures::Order/find
92
- Database/SQL/insert]
88
+ Database/SQL/insert
89
+ RemoteService/sql/mysql/localhost
90
+ ]
93
91
 
94
92
  if NewRelic::Control.instance.rails_version < '2.1.0'
95
93
  expected += %W[ActiveRecord/save ActiveRecord/ActiveRecordFixtures::Order/save]
@@ -149,6 +147,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
149
147
  ActiveRecord/ActiveRecordFixtures::Order/find
150
148
  ActiveRecord/create
151
149
  Database/SQL/other
150
+ RemoteService/sql/mysql/localhost
152
151
  ActiveRecord/ActiveRecordFixtures::Order/create]
153
152
 
154
153
  if NewRelic::Control.instance.rails_version < '2.1.0'
@@ -183,6 +182,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
183
182
  ActiveRecord/find
184
183
  ActiveRecord/ActiveRecordFixtures::Order/find
185
184
  ActiveRecord/ActiveRecordFixtures::Shipment/find
185
+ RemoteService/sql/mysql/localhost
186
186
  ]
187
187
 
188
188
  assert_calls_metrics(*expected_metrics) do
@@ -248,6 +248,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
248
248
 
249
249
  expected_metrics = %W[
250
250
  ActiveRecord/all
251
+ RemoteService/sql/mysql/localhost
251
252
  ActiveRecord/destroy
252
253
  ActiveRecord/ActiveRecordFixtures::Order/destroy
253
254
  Database/SQL/insert
@@ -290,6 +291,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
290
291
  expected_metrics = %W[
291
292
  ActiveRecord/all
292
293
  Database/SQL/select
294
+ RemoteService/sql/mysql/localhost
293
295
  ]
294
296
 
295
297
  assert_calls_unscoped_metrics(*expected_metrics) do
@@ -307,6 +309,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
307
309
  expected_metrics = %W[
308
310
  ActiveRecord/all
309
311
  Database/SQL/other
312
+ RemoteService/sql/mysql/localhost
310
313
  ]
311
314
  assert_calls_unscoped_metrics(*expected_metrics) do
312
315
  ActiveRecordFixtures::Order.connection.execute "begin"
@@ -322,7 +325,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
322
325
  return if isSqlite?
323
326
  return if isPostgres?
324
327
 
325
- expected_metrics = %W[ActiveRecord/all Database/SQL/show]
328
+ expected_metrics = %W[ActiveRecord/all Database/SQL/show RemoteService/sql/mysql/localhost]
326
329
 
327
330
  assert_calls_metrics(*expected_metrics) do
328
331
  ActiveRecordFixtures::Order.connection.execute "show tables"
@@ -485,7 +488,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
485
488
  true
486
489
  end
487
490
 
488
- expected_metrics = %W[ActiveRecord/all Database/SQL/select]
491
+ expected_metrics = %W[ActiveRecord/all Database/SQL/select RemoteService/sql/mysql/localhost]
489
492
 
490
493
  assert_calls_metrics(*expected_metrics) do
491
494
  begin
@@ -499,6 +502,7 @@ class NewRelic::Agent::Instrumentation::ActiveRecordInstrumentationTest < Test::
499
502
  compare_metrics expected_metrics, metrics
500
503
  check_metric_count('Database/SQL/select', 1)
501
504
  check_metric_count('ActiveRecord/all', 1)
505
+ check_metric_count('RemoteService/sql/mysql/localhost', 1)
502
506
  end
503
507
 
504
508
  def test_rescue_handling
@@ -12,7 +12,6 @@ class NewRelic::Agent::Instrumentation::ControllerInstrumentationTest < Test::Un
12
12
  object.expects(:newrelic_request_headers).returns({:request => 'headers'}).twice
13
13
  object.expects(:parse_frontend_headers).with({:request => 'headers'}).returns(start_time)
14
14
  assert_equal(start_time, object.send(:_detect_upstream_wait, start_time))
15
- assert_equal(0.0, Thread.current[:newrelic_queue_time])
16
15
  end
17
16
 
18
17
  def test_detect_upstream_wait_with_upstream
@@ -22,7 +21,6 @@ class NewRelic::Agent::Instrumentation::ControllerInstrumentationTest < Test::Un
22
21
  object.expects(:newrelic_request_headers).returns(true).twice
23
22
  object.expects(:parse_frontend_headers).returns(start_time)
24
23
  assert_equal(start_time, object.send(:_detect_upstream_wait, runs_at))
25
- assert_equal(1.0, Thread.current[:newrelic_queue_time])
26
24
  end
27
25
 
28
26
  def test_detect_upstream_wait_swallows_errors
@@ -14,7 +14,6 @@ class NewRelic::Agent::Instrumentation::MetricFrame::PopTest < Test::Unit::TestC
14
14
  end
15
15
 
16
16
  def teardown
17
- Thread.current[:newrelic_start_time] = nil
18
17
  Thread.current[:newrelic_metric_frame] = nil
19
18
  end
20
19
 
@@ -20,7 +20,7 @@ unless ENV['FAST_TESTS']
20
20
  res = Net::HTTP.start(url.host, url.port) {|http|
21
21
  http.get('/index.html')
22
22
  }
23
- assert_match /<head>/, res.body
23
+ assert_match /<head>/i, res.body
24
24
  assert_equal %w[External/all External/www.google.com/Net::HTTP/GET External/allOther External/www.google.com/all].sort,
25
25
  metrics_without_gc.sort
26
26
  end
@@ -31,7 +31,7 @@ unless ENV['FAST_TESTS']
31
31
  res = Net::HTTP.start(url.host, url.port) {|http|
32
32
  http.get('/index.html')
33
33
  }
34
- assert_match /<head>/, res.body
34
+ assert_match /<head>/i, res.body
35
35
  end
36
36
  assert_equal %w[External/all External/www.google.com/Net::HTTP/GET External/allOther External/www.google.com/all
37
37
  External/www.google.com/Net::HTTP/GET:OtherTransaction/Background/NewRelic::Agent::Instrumentation::NetInstrumentationTest/task].sort, metrics_without_gc.select{|m| m =~ /^External/}.sort
@@ -43,7 +43,7 @@ unless ENV['FAST_TESTS']
43
43
  res = Net::HTTP.start(url.host, url.port) {|http|
44
44
  http.get('/index.html')
45
45
  }
46
- assert_match /<head>/, res.body
46
+ assert_match /<head>/i, res.body
47
47
  end
48
48
  assert_equal %w[External/all External/www.google.com/Net::HTTP/GET External/allWeb External/www.google.com/all
49
49
  External/www.google.com/Net::HTTP/GET:Controller/NewRelic::Agent::Instrumentation::NetInstrumentationTest/task].sort, metrics_without_gc.select{|m| m =~ /^External/}.sort
@@ -7,7 +7,6 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
7
7
  stats_engine = NewRelic::Agent::StatsEngine.new
8
8
  agent.stubs(:stats_engine).returns(stats_engine)
9
9
  @sampler = NewRelic::Agent::SqlSampler.new
10
- stats_engine.sql_sampler = @sampler
11
10
  @connection = stub('ActiveRecord connection', :execute => 'result')
12
11
  NewRelic::Agent::Database.stubs(:get_connection).returns(@connection)
13
12
  end
@@ -37,7 +36,8 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
37
36
 
38
37
  def test_harvest_slow_sql
39
38
  data = NewRelic::Agent::TransactionSqlData.new
40
- data.set_transaction_info "WebTransaction/Controller/c/a", "/c/a", {}
39
+ data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {},
40
+ 'guid')
41
41
  data.sql_data.concat [
42
42
  NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.5),
43
43
  NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.2),
@@ -65,8 +65,8 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
65
65
 
66
66
  def test_harvest
67
67
  data = NewRelic::Agent::TransactionSqlData.new
68
- data.set_transaction_info "WebTransaction/Controller/c/a", "/c/a", {}
69
-
68
+ data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {},
69
+ 'guid')
70
70
  data.sql_data.concat [NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.5),
71
71
  NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.2),
72
72
  NewRelic::Agent::SlowSql.new("select * from test2", "Database/test2/select", {}, 1.1)]
@@ -78,7 +78,7 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
78
78
 
79
79
  def test_harvest_should_not_take_more_than_10
80
80
  data = NewRelic::Agent::TransactionSqlData.new
81
- data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {})
81
+ data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {}, 'guid')
82
82
  15.times do |i|
83
83
  data.sql_data << NewRelic::Agent::SlowSql.new("select * from test#{(i+97).chr}",
84
84
  "Database/test#{(i+97).chr}/select", {}, i)
@@ -93,7 +93,8 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
93
93
 
94
94
  def test_harvest_should_aggregate_similar_queries
95
95
  data = NewRelic::Agent::TransactionSqlData.new
96
- data.set_transaction_info "WebTransaction/Controller/c/a", "/c/a", {}
96
+ data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {},
97
+ 'guid')
97
98
  queries = [
98
99
  NewRelic::Agent::SlowSql.new("select * from test where foo in (1, 2) ", "Database/test/select", {}, 1.5),
99
100
  NewRelic::Agent::SlowSql.new("select * from test where foo in (1,2, 3 ,4, 5,6, 'snausage')", "Database/test/select", {}, 1.2),
@@ -113,8 +114,8 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
113
114
  .returns([{"header0" => 'bar0', "header1" => 'bar1', "header2" => 'bar2'}])
114
115
 
115
116
  data = NewRelic::Agent::TransactionSqlData.new
116
- data.set_transaction_info "WebTransaction/Controller/c/a", "/c/a", {}
117
-
117
+ data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {},
118
+ 'guid')
118
119
  queries = [
119
120
  NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.5),
120
121
  NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.2),
@@ -133,13 +134,27 @@ class NewRelic::Agent::SqlSamplerTest < Test::Unit::TestCase
133
134
  sql_traces[1].params[:explain_plan][1][0].sort)
134
135
  end
135
136
 
137
+ def test_sql_trace_should_include_transaction_guid
138
+ txn_sampler = NewRelic::Agent::TransactionSampler.new
139
+ NewRelic::Agent.instance.stats_engine.transaction_sampler = txn_sampler
140
+ txn_sampler.start_builder(Time.now)
141
+ txn_sampler.notice_transaction('a path', 'a uri', {:some => :params})
142
+ @sampler.create_transaction_data
143
+ @sampler.notice_transaction('a path', 'a uri', {:some => :params})
144
+
145
+ assert_equal(NewRelic::Agent.instance.transaction_sampler.builder.sample.guid,
146
+ NewRelic::Agent.instance.sql_sampler.transaction_data.guid)
147
+ end
148
+
136
149
  def test_should_not_collect_explain_plans_when_disabled
137
150
  NewRelic::Control.instance['slow_sql'] = { 'explain_enabled' => false }
138
151
  data = NewRelic::Agent::TransactionSqlData.new
139
- data.set_transaction_info "WebTransaction/Controller/c/a", "/c/a", {}
152
+ data.set_transaction_info("WebTransaction/Controller/c/a", "/c/a", {},
153
+ 'guid')
140
154
 
141
155
  queries = [
142
- NewRelic::Agent::SlowSql.new("select * from test", "Database/test/select", {}, 1.5)
156
+ NewRelic::Agent::SlowSql.new("select * from test",
157
+ "Database/test/select", {}, 1.5)
143
158
  ]
144
159
  data.sql_data.concat(queries)
145
160
  @sampler.harvest_slow_sql data
@@ -9,8 +9,10 @@ class NewRelic::Agent::StatsEngineTest < Test::Unit::TestCase
9
9
  puts e
10
10
  puts e.backtrace.join("\n")
11
11
  end
12
+
12
13
  def teardown
13
14
  @engine.harvest_timeslice_data({},{})
15
+ mocha_teardown
14
16
  super
15
17
  end
16
18
 
@@ -169,17 +171,50 @@ class NewRelic::Agent::StatsEngineTest < Test::Unit::TestCase
169
171
  @engine.pop_scope scope2, 10
170
172
  @engine.pop_scope scope1, 10
171
173
 
172
- assert_equal 0, scope4.children_time
173
- assert_equal 10, scope3.children_time
174
- assert_equal 10, scope2.children_time
175
- assert_equal 10, scope1.children_time
174
+ assert_equal 0, scope4.children_time.round
175
+ assert_equal 10, scope3.children_time.round
176
+ assert_equal 10, scope2.children_time.round
177
+ assert_equal 10, scope1.children_time.round
176
178
  end
177
179
 
178
180
 
181
+ def test_collect_gc_data
182
+ GC.disable
183
+ if NewRelic::LanguageSupport.using_engine?('rbx')
184
+ agent = ::Rubinius::Agent.loopback
185
+ agent.stubs(:get).with('system.gc.young.total_wallclock') \
186
+ .returns([:value, 1000], [:value, 2500])
187
+ agent.stubs(:get).with('system.gc.full.total_wallclock') \
188
+ .returns([:value, 2000], [:value, 3500])
189
+ agent.stubs(:get).with('system.gc.young.count') \
190
+ .returns([:value, 1], [:value, 2])
191
+ agent.stubs(:get).with('system.gc.full.count') \
192
+ .returns([:value, 1], [:value, 2])
193
+ ::Rubinius::Agent.stubs(:loopback).returns(agent)
194
+ elsif NewRelic::LanguageSupport.using_version?('1.9')
195
+ ::GC::Profiler.stubs(:enabled?).returns(true)
196
+ ::GC::Profiler.stubs(:total_time).returns(1000, 4000)
197
+ ::GC.stubs(:count).returns(1, 3)
198
+ elsif NewRelic::LanguageSupport.using_version?('1.8')
199
+ ::GC.stubs(:time).returns(1000000, 4000000)
200
+ ::GC.stubs(:collections).returns(1, 3)
201
+ end
202
+
203
+ engine = NewRelic::Agent.instance.stats_engine
204
+ scope = engine.push_scope "scope"
205
+ engine.start_transaction
206
+ engine.pop_scope scope, 0.01
207
+ engine.end_transaction
208
+
209
+ gc_stats = engine.get_stats('GC/cumulative')
210
+ assert_equal 2, gc_stats.call_count
211
+ assert_equal 3.0, gc_stats.total_call_time
212
+ ensure
213
+ GC.enable
214
+ end
215
+
179
216
  private
180
217
  def check_time_approximate(expected, actual)
181
218
  assert((expected - actual).abs < 0.1, "Expected between #{expected - 0.1} and #{expected + 0.1}, got #{actual}")
182
219
  end
183
-
184
220
  end
185
-
@@ -527,18 +527,6 @@ class NewRelic::Agent::TransactionSamplerTest < Test::Unit::TestCase
527
527
  assert_equal([], result, "should not add samples to the array when harvest count is not moduli sampling rate")
528
528
  end
529
529
 
530
- def test_add_random_sample_to_duplicate
531
- @sampler.instance_eval { @random_sampling = true }
532
- sample = mock('sample')
533
- @sampler.instance_eval {
534
- @harvest_count = 1
535
- @sampling_rate = 2
536
- @random_sample = sample
537
- }
538
- result = [sample]
539
- @sampler.add_random_sample_to(result)
540
- assert_equal([sample], result, "should not add duplicate samples to the array")
541
- end
542
530
 
543
531
  def test_add_random_sample_to_activated
544
532
  @sampler.instance_eval { @random_sampling = true }
@@ -578,6 +566,7 @@ class NewRelic::Agent::TransactionSamplerTest < Test::Unit::TestCase
578
566
  def test_add_samples_to_one_result
579
567
  sample = mock('sample')
580
568
  sample.expects(:duration).returns(1).at_least_once
569
+ sample.stubs(:force_persist).returns(false)
581
570
  result = [sample]
582
571
  slow_threshold = 2.0
583
572
  @sampler.instance_eval { @slowest_sample = nil }
@@ -610,6 +599,7 @@ class NewRelic::Agent::TransactionSamplerTest < Test::Unit::TestCase
610
599
  slower_sample.expects(:duration).returns(10.0).at_least_once
611
600
  faster_sample = mock('faster')
612
601
  faster_sample.expects(:duration).returns(5.0).at_least_once
602
+ faster_sample.stubs(:force_persist).returns(false)
613
603
  result = [faster_sample]
614
604
  slow_threshold = 2.0
615
605
  @sampler.instance_eval { @slowest_sample = slower_sample }
@@ -620,6 +610,8 @@ class NewRelic::Agent::TransactionSamplerTest < Test::Unit::TestCase
620
610
  def test_add_samples_to_keep_older_slower_sample
621
611
  slower_sample = mock('slower')
622
612
  slower_sample.expects(:duration).returns(10.0).at_least_once
613
+ slower_sample.stubs(:force_persist).returns(false)
614
+
623
615
  faster_sample = mock('faster')
624
616
  faster_sample.expects(:duration).returns(5.0).at_least_once
625
617
  result = [slower_sample]
@@ -628,6 +620,24 @@ class NewRelic::Agent::TransactionSamplerTest < Test::Unit::TestCase
628
620
  @sampler.expects(:add_random_sample_to).with([slower_sample])
629
621
  assert_equal([slower_sample], @sampler.add_samples_to(result, slow_threshold))
630
622
  end
623
+
624
+
625
+ def test_keep_force_persist
626
+ sample1 = mock('regular')
627
+ sample1.stubs(:duration).returns(10)
628
+ sample1.stubs(:force_persist).returns(false)
629
+
630
+ sample2 = mock('force_persist')
631
+ sample2.stubs(:duration).returns(1)
632
+ sample2.stubs(:force_persist).returns(true)
633
+
634
+ result = @sampler.add_samples_to([sample1,sample2], 2.0)
635
+
636
+ assert_equal 2, result.length
637
+ assert_equal sample1, result[0]
638
+ assert_equal sample2, result[1]
639
+ end
640
+
631
641
 
632
642
  def test_start_builder_default
633
643
  Thread.current[:record_tt] = true
@@ -0,0 +1,11 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__),'..', '..', 'test_helper'))
2
+ class NewRelic::MetricParser::MetricParserTest < Test::Unit::TestCase
3
+ class ::AnApplicationClass
4
+ end
5
+
6
+ def test_metric_parser_does_not_instantiate_non_metric_parsing_classes
7
+ assert NewRelic::MetricParser::MetricParser.for_metric_named('AnApplicationClass/Foo/Bar').
8
+ is_a? NewRelic::MetricParser::MetricParser
9
+ end
10
+
11
+ end
@@ -13,7 +13,13 @@ module NewRelic
13
13
  category = (s =~ /^([^\/]*)/) && $1
14
14
  parser_class = self
15
15
  if category
16
- parser_class = NewRelic::MetricParser.const_get(category) if (NewRelic::MetricParser.const_defined?(category) rescue nil)
16
+ if NewRelic::MetricParser.constants.map(&:to_s).include?(category)
17
+ begin
18
+ parser_class = NewRelic::MetricParser.const_get(category)
19
+ rescue
20
+ nil
21
+ end
22
+ end
17
23
  end
18
24
  parser_class.new s
19
25
  end
metadata CHANGED
@@ -1,68 +1,54 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 109
5
- prerelease:
6
- segments:
7
- - 3
8
- - 2
9
- - 0
10
- - 1
11
- version: 3.2.0.1
4
+ prerelease: 6
5
+ version: 3.3.0.beta1
12
6
  platform: ruby
13
7
  authors:
14
- - Bill Kayser
15
- - Jon Guymon
16
- - Justin George
17
- - Darin Swanson
8
+ - Bill Kayser
9
+ - Jon Guymon
10
+ - Justin George
11
+ - Darin Swanson
18
12
  autorequire:
19
13
  bindir: bin
20
14
  cert_chain: []
21
15
 
22
- date: 2011-11-01 00:00:00 Z
16
+ date: 2011-11-01 00:00:00 -07:00
17
+ default_executable:
23
18
  dependencies:
24
- - !ruby/object:Gem::Dependency
25
- name: jeweler
26
- prerelease: false
27
- requirement: &id001 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- hash: 3
33
- segments:
34
- - 0
35
- version: "0"
36
- type: :development
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: mocha
40
- prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- hash: 3
47
- segments:
48
- - 0
49
- version: "0"
50
- type: :development
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: shoulda
54
- prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
64
- type: :development
65
- version_requirements: *id003
19
+ - !ruby/object:Gem::Dependency
20
+ name: jeweler
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: "0"
28
+ type: :development
29
+ version_requirements: *id001
30
+ - !ruby/object:Gem::Dependency
31
+ name: mocha
32
+ prerelease: false
33
+ requirement: &id002 !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: "0"
39
+ type: :development
40
+ version_requirements: *id002
41
+ - !ruby/object:Gem::Dependency
42
+ name: shoulda
43
+ prerelease: false
44
+ requirement: &id003 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ type: :development
51
+ version_requirements: *id003
66
52
  description: |
67
53
  New Relic is a performance management system, developed by New Relic,
68
54
  Inc (http://www.newrelic.com). New Relic provides you with deep
@@ -73,273 +59,277 @@ description: |
73
59
 
74
60
  email: support@newrelic.com
75
61
  executables:
76
- - mongrel_rpm
77
- - newrelic
78
- - newrelic_cmd
62
+ - mongrel_rpm
63
+ - newrelic
64
+ - newrelic_cmd
79
65
  extensions: []
80
66
 
81
67
  extra_rdoc_files:
82
- - CHANGELOG
83
- - LICENSE
84
- - README.rdoc
85
- - newrelic.yml
68
+ - CHANGELOG
69
+ - LICENSE
70
+ - README.rdoc
71
+ - newrelic.yml
86
72
  files:
87
- - CHANGELOG
88
- - LICENSE
89
- - README.rdoc
90
- - bin/mongrel_rpm
91
- - bin/newrelic
92
- - bin/newrelic_cmd
93
- - cert/cacert.pem
94
- - cert/oldsite.pem
95
- - cert/site.pem
96
- - install.rb
97
- - lib/conditional_vendored_dependency_detection.rb
98
- - lib/conditional_vendored_metric_parser.rb
99
- - lib/new_relic/agent.rb
100
- - lib/new_relic/agent/agent.rb
101
- - lib/new_relic/agent/beacon_configuration.rb
102
- - lib/new_relic/agent/browser_monitoring.rb
103
- - lib/new_relic/agent/busy_calculator.rb
104
- - lib/new_relic/agent/chained_call.rb
105
- - lib/new_relic/agent/database.rb
106
- - lib/new_relic/agent/error_collector.rb
107
- - lib/new_relic/agent/instrumentation.rb
108
- - lib/new_relic/agent/instrumentation/active_merchant.rb
109
- - lib/new_relic/agent/instrumentation/acts_as_solr.rb
110
- - lib/new_relic/agent/instrumentation/authlogic.rb
111
- - lib/new_relic/agent/instrumentation/controller_instrumentation.rb
112
- - lib/new_relic/agent/instrumentation/data_mapper.rb
113
- - lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb
114
- - lib/new_relic/agent/instrumentation/memcache.rb
115
- - lib/new_relic/agent/instrumentation/merb/controller.rb
116
- - lib/new_relic/agent/instrumentation/merb/errors.rb
117
- - lib/new_relic/agent/instrumentation/metric_frame.rb
118
- - lib/new_relic/agent/instrumentation/metric_frame/pop.rb
119
- - lib/new_relic/agent/instrumentation/net.rb
120
- - lib/new_relic/agent/instrumentation/passenger_instrumentation.rb
121
- - lib/new_relic/agent/instrumentation/queue_time.rb
122
- - lib/new_relic/agent/instrumentation/rack.rb
123
- - lib/new_relic/agent/instrumentation/rails/action_controller.rb
124
- - lib/new_relic/agent/instrumentation/rails/action_web_service.rb
125
- - lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb
126
- - lib/new_relic/agent/instrumentation/rails/errors.rb
127
- - lib/new_relic/agent/instrumentation/rails3/action_controller.rb
128
- - lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb
129
- - lib/new_relic/agent/instrumentation/rails3/errors.rb
130
- - lib/new_relic/agent/instrumentation/sinatra.rb
131
- - lib/new_relic/agent/instrumentation/sunspot.rb
132
- - lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb
133
- - lib/new_relic/agent/method_tracer.rb
134
- - lib/new_relic/agent/sampler.rb
135
- - lib/new_relic/agent/samplers/cpu_sampler.rb
136
- - lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb
137
- - lib/new_relic/agent/samplers/memory_sampler.rb
138
- - lib/new_relic/agent/samplers/object_sampler.rb
139
- - lib/new_relic/agent/shim_agent.rb
140
- - lib/new_relic/agent/sql_sampler.rb
141
- - lib/new_relic/agent/stats_engine.rb
142
- - lib/new_relic/agent/stats_engine/metric_stats.rb
143
- - lib/new_relic/agent/stats_engine/samplers.rb
144
- - lib/new_relic/agent/stats_engine/transactions.rb
145
- - lib/new_relic/agent/transaction_sample_builder.rb
146
- - lib/new_relic/agent/transaction_sampler.rb
147
- - lib/new_relic/agent/worker_loop.rb
148
- - lib/new_relic/collection_helper.rb
149
- - lib/new_relic/command.rb
150
- - lib/new_relic/commands/deployments.rb
151
- - lib/new_relic/commands/install.rb
152
- - lib/new_relic/control.rb
153
- - lib/new_relic/control/class_methods.rb
154
- - lib/new_relic/control/configuration.rb
155
- - lib/new_relic/control/frameworks.rb
156
- - lib/new_relic/control/frameworks/external.rb
157
- - lib/new_relic/control/frameworks/merb.rb
158
- - lib/new_relic/control/frameworks/rails.rb
159
- - lib/new_relic/control/frameworks/rails3.rb
160
- - lib/new_relic/control/frameworks/ruby.rb
161
- - lib/new_relic/control/frameworks/sinatra.rb
162
- - lib/new_relic/control/instance_methods.rb
163
- - lib/new_relic/control/instrumentation.rb
164
- - lib/new_relic/control/logging_methods.rb
165
- - lib/new_relic/control/profiling.rb
166
- - lib/new_relic/control/server_methods.rb
167
- - lib/new_relic/data_serialization.rb
168
- - lib/new_relic/delayed_job_injection.rb
169
- - lib/new_relic/language_support.rb
170
- - lib/new_relic/local_environment.rb
171
- - lib/new_relic/merbtasks.rb
172
- - lib/new_relic/metric_data.rb
173
- - lib/new_relic/metric_spec.rb
174
- - lib/new_relic/metrics.rb
175
- - lib/new_relic/noticed_error.rb
176
- - lib/new_relic/rack/browser_monitoring.rb
177
- - lib/new_relic/rack/developer_mode.rb
178
- - lib/new_relic/recipes.rb
179
- - lib/new_relic/stats.rb
180
- - lib/new_relic/timer_lib.rb
181
- - lib/new_relic/transaction_analysis.rb
182
- - lib/new_relic/transaction_analysis/segment_summary.rb
183
- - lib/new_relic/transaction_sample.rb
184
- - lib/new_relic/transaction_sample/composite_segment.rb
185
- - lib/new_relic/transaction_sample/fake_segment.rb
186
- - lib/new_relic/transaction_sample/segment.rb
187
- - lib/new_relic/transaction_sample/summary_segment.rb
188
- - lib/new_relic/url_rule.rb
189
- - lib/new_relic/version.rb
190
- - lib/newrelic_rpm.rb
191
- - lib/tasks/all.rb
192
- - lib/tasks/install.rake
193
- - lib/tasks/tests.rake
194
- - newrelic.yml
195
- - newrelic_rpm.gemspec
196
- - recipes/newrelic.rb
197
- - test/active_record_fixtures.rb
198
- - test/config/newrelic.yml
199
- - test/config/test_control.rb
200
- - test/new_relic/agent/agent/connect_test.rb
201
- - test/new_relic/agent/agent/start_test.rb
202
- - test/new_relic/agent/agent/start_worker_thread_test.rb
203
- - test/new_relic/agent/agent_test.rb
204
- - test/new_relic/agent/agent_test_controller.rb
205
- - test/new_relic/agent/agent_test_controller_test.rb
206
- - test/new_relic/agent/apdex_from_server_test.rb
207
- - test/new_relic/agent/beacon_configuration_test.rb
208
- - test/new_relic/agent/browser_monitoring_test.rb
209
- - test/new_relic/agent/busy_calculator_test.rb
210
- - test/new_relic/agent/database_test.rb
211
- - test/new_relic/agent/error_collector/notice_error_test.rb
212
- - test/new_relic/agent/error_collector_test.rb
213
- - test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb
214
- - test/new_relic/agent/instrumentation/controller_instrumentation_test.rb
215
- - test/new_relic/agent/instrumentation/instrumentation_test.rb
216
- - test/new_relic/agent/instrumentation/metric_frame/pop_test.rb
217
- - test/new_relic/agent/instrumentation/metric_frame_test.rb
218
- - test/new_relic/agent/instrumentation/net_instrumentation_test.rb
219
- - test/new_relic/agent/instrumentation/queue_time_test.rb
220
- - test/new_relic/agent/instrumentation/rack_test.rb
221
- - test/new_relic/agent/instrumentation/task_instrumentation_test.rb
222
- - test/new_relic/agent/memcache_instrumentation_test.rb
223
- - test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb
224
- - test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb
225
- - test/new_relic/agent/method_tracer_test.rb
226
- - test/new_relic/agent/mock_scope_listener.rb
227
- - test/new_relic/agent/rpm_agent_test.rb
228
- - test/new_relic/agent/sampler_test.rb
229
- - test/new_relic/agent/shim_agent_test.rb
230
- - test/new_relic/agent/sql_sampler_test.rb
231
- - test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb
232
- - test/new_relic/agent/stats_engine/metric_stats_test.rb
233
- - test/new_relic/agent/stats_engine/samplers_test.rb
234
- - test/new_relic/agent/stats_engine_test.rb
235
- - test/new_relic/agent/transaction_sample_builder_test.rb
236
- - test/new_relic/agent/transaction_sampler_test.rb
237
- - test/new_relic/agent/worker_loop_test.rb
238
- - test/new_relic/agent_test.rb
239
- - test/new_relic/collection_helper_test.rb
240
- - test/new_relic/command/deployments_test.rb
241
- - test/new_relic/control/class_methods_test.rb
242
- - test/new_relic/control/configuration_test.rb
243
- - test/new_relic/control/logging_methods_test.rb
244
- - test/new_relic/control_test.rb
245
- - test/new_relic/data_serialization_test.rb
246
- - test/new_relic/delayed_job_injection_test.rb
247
- - test/new_relic/local_environment_test.rb
248
- - test/new_relic/metric_data_test.rb
249
- - test/new_relic/metric_spec_test.rb
250
- - test/new_relic/rack/all_test.rb
251
- - test/new_relic/rack/browser_monitoring_test.rb
252
- - test/new_relic/rack/developer_mode_helper_test.rb
253
- - test/new_relic/rack/developer_mode_test.rb
254
- - test/new_relic/stats_test.rb
255
- - test/new_relic/transaction_analysis/segment_summary_test.rb
256
- - test/new_relic/transaction_analysis_test.rb
257
- - test/new_relic/transaction_sample/composite_segment_test.rb
258
- - test/new_relic/transaction_sample/fake_segment_test.rb
259
- - test/new_relic/transaction_sample/segment_test.rb
260
- - test/new_relic/transaction_sample/summary_segment_test.rb
261
- - test/new_relic/transaction_sample_subtest_test.rb
262
- - test/new_relic/transaction_sample_test.rb
263
- - test/new_relic/version_number_test.rb
264
- - test/test_contexts.rb
265
- - test/test_helper.rb
266
- - ui/helpers/developer_mode_helper.rb
267
- - ui/helpers/google_pie_chart.rb
268
- - ui/views/layouts/newrelic_default.rhtml
269
- - ui/views/newrelic/_explain_plans.rhtml
270
- - ui/views/newrelic/_sample.rhtml
271
- - ui/views/newrelic/_segment.rhtml
272
- - ui/views/newrelic/_segment_limit_message.rhtml
273
- - ui/views/newrelic/_segment_row.rhtml
274
- - ui/views/newrelic/_show_sample_detail.rhtml
275
- - ui/views/newrelic/_show_sample_sql.rhtml
276
- - ui/views/newrelic/_show_sample_summary.rhtml
277
- - ui/views/newrelic/_sql_row.rhtml
278
- - ui/views/newrelic/_stack_trace.rhtml
279
- - ui/views/newrelic/_table.rhtml
280
- - ui/views/newrelic/explain_sql.rhtml
281
- - ui/views/newrelic/file/images/arrow-close.png
282
- - ui/views/newrelic/file/images/arrow-open.png
283
- - ui/views/newrelic/file/images/blue_bar.gif
284
- - ui/views/newrelic/file/images/file_icon.png
285
- - ui/views/newrelic/file/images/gray_bar.gif
286
- - ui/views/newrelic/file/images/new-relic-rpm-desktop.gif
287
- - ui/views/newrelic/file/images/new_relic_rpm_desktop.gif
288
- - ui/views/newrelic/file/images/textmate.png
289
- - ui/views/newrelic/file/javascript/jquery-1.4.2.js
290
- - ui/views/newrelic/file/javascript/transaction_sample.js
291
- - ui/views/newrelic/file/stylesheets/style.css
292
- - ui/views/newrelic/index.rhtml
293
- - ui/views/newrelic/sample_not_found.rhtml
294
- - ui/views/newrelic/show_sample.rhtml
295
- - ui/views/newrelic/show_source.rhtml
296
- - ui/views/newrelic/threads.rhtml
297
- - vendor/gems/dependency_detection-0.0.1.build/LICENSE
298
- - vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb
299
- - vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb
300
- - vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb
301
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb
302
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb
303
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb
304
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb
305
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb
306
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb
307
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb
308
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb
309
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb
310
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb
311
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb
312
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb
313
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb
314
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb
315
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb
316
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb
317
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb
318
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb
319
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb
320
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb
321
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb
322
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb
323
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb
324
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb
325
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb
326
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb
327
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb
328
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb
329
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb
330
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb
331
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb
332
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb
333
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb
334
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb
335
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb
336
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb
337
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb
338
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb
339
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb
340
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb
341
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb
342
- - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb
73
+ - CHANGELOG
74
+ - LICENSE
75
+ - README.rdoc
76
+ - bin/mongrel_rpm
77
+ - bin/newrelic
78
+ - bin/newrelic_cmd
79
+ - cert/cacert.pem
80
+ - cert/oldsite.pem
81
+ - cert/site.pem
82
+ - install.rb
83
+ - lib/conditional_vendored_dependency_detection.rb
84
+ - lib/conditional_vendored_metric_parser.rb
85
+ - lib/new_relic/agent.rb
86
+ - lib/new_relic/agent/agent.rb
87
+ - lib/new_relic/agent/beacon_configuration.rb
88
+ - lib/new_relic/agent/browser_monitoring.rb
89
+ - lib/new_relic/agent/busy_calculator.rb
90
+ - lib/new_relic/agent/chained_call.rb
91
+ - lib/new_relic/agent/database.rb
92
+ - lib/new_relic/agent/error_collector.rb
93
+ - lib/new_relic/agent/instrumentation.rb
94
+ - lib/new_relic/agent/instrumentation/active_merchant.rb
95
+ - lib/new_relic/agent/instrumentation/acts_as_solr.rb
96
+ - lib/new_relic/agent/instrumentation/authlogic.rb
97
+ - lib/new_relic/agent/instrumentation/controller_instrumentation.rb
98
+ - lib/new_relic/agent/instrumentation/data_mapper.rb
99
+ - lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb
100
+ - lib/new_relic/agent/instrumentation/memcache.rb
101
+ - lib/new_relic/agent/instrumentation/merb/controller.rb
102
+ - lib/new_relic/agent/instrumentation/merb/errors.rb
103
+ - lib/new_relic/agent/instrumentation/metric_frame.rb
104
+ - lib/new_relic/agent/instrumentation/metric_frame/pop.rb
105
+ - lib/new_relic/agent/instrumentation/net.rb
106
+ - lib/new_relic/agent/instrumentation/passenger_instrumentation.rb
107
+ - lib/new_relic/agent/instrumentation/queue_time.rb
108
+ - lib/new_relic/agent/instrumentation/rack.rb
109
+ - lib/new_relic/agent/instrumentation/rails/action_controller.rb
110
+ - lib/new_relic/agent/instrumentation/rails/action_web_service.rb
111
+ - lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb
112
+ - lib/new_relic/agent/instrumentation/rails/errors.rb
113
+ - lib/new_relic/agent/instrumentation/rails3/action_controller.rb
114
+ - lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb
115
+ - lib/new_relic/agent/instrumentation/rails3/errors.rb
116
+ - lib/new_relic/agent/instrumentation/sinatra.rb
117
+ - lib/new_relic/agent/instrumentation/sunspot.rb
118
+ - lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb
119
+ - lib/new_relic/agent/method_tracer.rb
120
+ - lib/new_relic/agent/sampler.rb
121
+ - lib/new_relic/agent/samplers/cpu_sampler.rb
122
+ - lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb
123
+ - lib/new_relic/agent/samplers/memory_sampler.rb
124
+ - lib/new_relic/agent/samplers/object_sampler.rb
125
+ - lib/new_relic/agent/shim_agent.rb
126
+ - lib/new_relic/agent/sql_sampler.rb
127
+ - lib/new_relic/agent/stats_engine.rb
128
+ - lib/new_relic/agent/stats_engine/gc_profiler.rb
129
+ - lib/new_relic/agent/stats_engine/metric_stats.rb
130
+ - lib/new_relic/agent/stats_engine/samplers.rb
131
+ - lib/new_relic/agent/stats_engine/transactions.rb
132
+ - lib/new_relic/agent/transaction_info.rb
133
+ - lib/new_relic/agent/transaction_sample_builder.rb
134
+ - lib/new_relic/agent/transaction_sampler.rb
135
+ - lib/new_relic/agent/worker_loop.rb
136
+ - lib/new_relic/collection_helper.rb
137
+ - lib/new_relic/command.rb
138
+ - lib/new_relic/commands/deployments.rb
139
+ - lib/new_relic/commands/install.rb
140
+ - lib/new_relic/control.rb
141
+ - lib/new_relic/control/class_methods.rb
142
+ - lib/new_relic/control/configuration.rb
143
+ - lib/new_relic/control/frameworks.rb
144
+ - lib/new_relic/control/frameworks/external.rb
145
+ - lib/new_relic/control/frameworks/merb.rb
146
+ - lib/new_relic/control/frameworks/rails.rb
147
+ - lib/new_relic/control/frameworks/rails3.rb
148
+ - lib/new_relic/control/frameworks/ruby.rb
149
+ - lib/new_relic/control/frameworks/sinatra.rb
150
+ - lib/new_relic/control/instance_methods.rb
151
+ - lib/new_relic/control/instrumentation.rb
152
+ - lib/new_relic/control/logging_methods.rb
153
+ - lib/new_relic/control/profiling.rb
154
+ - lib/new_relic/control/server_methods.rb
155
+ - lib/new_relic/data_serialization.rb
156
+ - lib/new_relic/delayed_job_injection.rb
157
+ - lib/new_relic/language_support.rb
158
+ - lib/new_relic/local_environment.rb
159
+ - lib/new_relic/merbtasks.rb
160
+ - lib/new_relic/metric_data.rb
161
+ - lib/new_relic/metric_spec.rb
162
+ - lib/new_relic/metrics.rb
163
+ - lib/new_relic/noticed_error.rb
164
+ - lib/new_relic/rack/browser_monitoring.rb
165
+ - lib/new_relic/rack/developer_mode.rb
166
+ - lib/new_relic/recipes.rb
167
+ - lib/new_relic/stats.rb
168
+ - lib/new_relic/timer_lib.rb
169
+ - lib/new_relic/transaction_analysis.rb
170
+ - lib/new_relic/transaction_analysis/segment_summary.rb
171
+ - lib/new_relic/transaction_sample.rb
172
+ - lib/new_relic/transaction_sample/composite_segment.rb
173
+ - lib/new_relic/transaction_sample/fake_segment.rb
174
+ - lib/new_relic/transaction_sample/segment.rb
175
+ - lib/new_relic/transaction_sample/summary_segment.rb
176
+ - lib/new_relic/url_rule.rb
177
+ - lib/new_relic/version.rb
178
+ - lib/newrelic_rpm.rb
179
+ - lib/tasks/all.rb
180
+ - lib/tasks/install.rake
181
+ - lib/tasks/tests.rake
182
+ - newrelic.yml
183
+ - newrelic_rpm.gemspec
184
+ - recipes/newrelic.rb
185
+ - test/active_record_fixtures.rb
186
+ - test/config/newrelic.yml
187
+ - test/config/test_control.rb
188
+ - test/new_relic/agent/agent/connect_test.rb
189
+ - test/new_relic/agent/agent/start_test.rb
190
+ - test/new_relic/agent/agent/start_worker_thread_test.rb
191
+ - test/new_relic/agent/agent_test.rb
192
+ - test/new_relic/agent/agent_test_controller.rb
193
+ - test/new_relic/agent/agent_test_controller_test.rb
194
+ - test/new_relic/agent/apdex_from_server_test.rb
195
+ - test/new_relic/agent/beacon_configuration_test.rb
196
+ - test/new_relic/agent/browser_monitoring_test.rb
197
+ - test/new_relic/agent/busy_calculator_test.rb
198
+ - test/new_relic/agent/database_test.rb
199
+ - test/new_relic/agent/error_collector/notice_error_test.rb
200
+ - test/new_relic/agent/error_collector_test.rb
201
+ - test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb
202
+ - test/new_relic/agent/instrumentation/controller_instrumentation_test.rb
203
+ - test/new_relic/agent/instrumentation/instrumentation_test.rb
204
+ - test/new_relic/agent/instrumentation/metric_frame/pop_test.rb
205
+ - test/new_relic/agent/instrumentation/metric_frame_test.rb
206
+ - test/new_relic/agent/instrumentation/net_instrumentation_test.rb
207
+ - test/new_relic/agent/instrumentation/queue_time_test.rb
208
+ - test/new_relic/agent/instrumentation/rack_test.rb
209
+ - test/new_relic/agent/instrumentation/task_instrumentation_test.rb
210
+ - test/new_relic/agent/memcache_instrumentation_test.rb
211
+ - test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb
212
+ - test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb
213
+ - test/new_relic/agent/method_tracer_test.rb
214
+ - test/new_relic/agent/mock_scope_listener.rb
215
+ - test/new_relic/agent/rpm_agent_test.rb
216
+ - test/new_relic/agent/sampler_test.rb
217
+ - test/new_relic/agent/shim_agent_test.rb
218
+ - test/new_relic/agent/sql_sampler_test.rb
219
+ - test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb
220
+ - test/new_relic/agent/stats_engine/metric_stats_test.rb
221
+ - test/new_relic/agent/stats_engine/samplers_test.rb
222
+ - test/new_relic/agent/stats_engine_test.rb
223
+ - test/new_relic/agent/transaction_sample_builder_test.rb
224
+ - test/new_relic/agent/transaction_sampler_test.rb
225
+ - test/new_relic/agent/worker_loop_test.rb
226
+ - test/new_relic/agent_test.rb
227
+ - test/new_relic/collection_helper_test.rb
228
+ - test/new_relic/command/deployments_test.rb
229
+ - test/new_relic/control/class_methods_test.rb
230
+ - test/new_relic/control/configuration_test.rb
231
+ - test/new_relic/control/logging_methods_test.rb
232
+ - test/new_relic/control_test.rb
233
+ - test/new_relic/data_serialization_test.rb
234
+ - test/new_relic/delayed_job_injection_test.rb
235
+ - test/new_relic/local_environment_test.rb
236
+ - test/new_relic/metric_data_test.rb
237
+ - test/new_relic/metric_parser/metric_parser_test.rb
238
+ - test/new_relic/metric_spec_test.rb
239
+ - test/new_relic/rack/all_test.rb
240
+ - test/new_relic/rack/browser_monitoring_test.rb
241
+ - test/new_relic/rack/developer_mode_helper_test.rb
242
+ - test/new_relic/rack/developer_mode_test.rb
243
+ - test/new_relic/stats_test.rb
244
+ - test/new_relic/transaction_analysis/segment_summary_test.rb
245
+ - test/new_relic/transaction_analysis_test.rb
246
+ - test/new_relic/transaction_sample/composite_segment_test.rb
247
+ - test/new_relic/transaction_sample/fake_segment_test.rb
248
+ - test/new_relic/transaction_sample/segment_test.rb
249
+ - test/new_relic/transaction_sample/summary_segment_test.rb
250
+ - test/new_relic/transaction_sample_subtest_test.rb
251
+ - test/new_relic/transaction_sample_test.rb
252
+ - test/new_relic/version_number_test.rb
253
+ - test/test_contexts.rb
254
+ - test/test_helper.rb
255
+ - ui/helpers/developer_mode_helper.rb
256
+ - ui/helpers/google_pie_chart.rb
257
+ - ui/views/layouts/newrelic_default.rhtml
258
+ - ui/views/newrelic/_explain_plans.rhtml
259
+ - ui/views/newrelic/_sample.rhtml
260
+ - ui/views/newrelic/_segment.rhtml
261
+ - ui/views/newrelic/_segment_limit_message.rhtml
262
+ - ui/views/newrelic/_segment_row.rhtml
263
+ - ui/views/newrelic/_show_sample_detail.rhtml
264
+ - ui/views/newrelic/_show_sample_sql.rhtml
265
+ - ui/views/newrelic/_show_sample_summary.rhtml
266
+ - ui/views/newrelic/_sql_row.rhtml
267
+ - ui/views/newrelic/_stack_trace.rhtml
268
+ - ui/views/newrelic/_table.rhtml
269
+ - ui/views/newrelic/explain_sql.rhtml
270
+ - ui/views/newrelic/file/images/arrow-close.png
271
+ - ui/views/newrelic/file/images/arrow-open.png
272
+ - ui/views/newrelic/file/images/blue_bar.gif
273
+ - ui/views/newrelic/file/images/file_icon.png
274
+ - ui/views/newrelic/file/images/gray_bar.gif
275
+ - ui/views/newrelic/file/images/new-relic-rpm-desktop.gif
276
+ - ui/views/newrelic/file/images/new_relic_rpm_desktop.gif
277
+ - ui/views/newrelic/file/images/textmate.png
278
+ - ui/views/newrelic/file/javascript/jquery-1.4.2.js
279
+ - ui/views/newrelic/file/javascript/transaction_sample.js
280
+ - ui/views/newrelic/file/stylesheets/style.css
281
+ - ui/views/newrelic/index.rhtml
282
+ - ui/views/newrelic/sample_not_found.rhtml
283
+ - ui/views/newrelic/show_sample.rhtml
284
+ - ui/views/newrelic/show_source.rhtml
285
+ - ui/views/newrelic/threads.rhtml
286
+ - vendor/gems/dependency_detection-0.0.1.build/LICENSE
287
+ - vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb
288
+ - vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb
289
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb
290
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb
291
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb
292
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb
293
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb
294
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb
295
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb
296
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb
297
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb
298
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb
299
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb
300
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb
301
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb
302
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb
303
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb
304
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb
305
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb
306
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb
307
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb
308
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb
309
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb
310
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb
311
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb
312
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb
313
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb
314
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb
315
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb
316
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb
317
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb
318
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb
319
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb
320
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb
321
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb
322
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb
323
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb
324
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb
325
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb
326
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb
327
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb
328
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb
329
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb
330
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb
331
+ - vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb
332
+ has_rdoc: true
343
333
  homepage: http://www.github.com/newrelic/rpm
344
334
  licenses: []
345
335
 
@@ -362,38 +352,32 @@ post_install_message: |
362
352
 
363
353
  Please see http://github.com/newrelic/rpm/blob/master/CHANGELOG
364
354
  for a complete description of the features and enhancements available
365
- in version 3.2 of the Ruby Agent.
355
+ in version 3.3 of the Ruby Agent.
366
356
 
367
357
 
368
358
  rdoc_options:
369
- - --line-numbers
370
- - --inline-source
371
- - --title
372
- - New Relic Ruby Agent
359
+ - --line-numbers
360
+ - --inline-source
361
+ - --title
362
+ - New Relic Ruby Agent
373
363
  require_paths:
374
- - lib
364
+ - lib
375
365
  required_ruby_version: !ruby/object:Gem::Requirement
376
366
  none: false
377
367
  requirements:
378
- - - ">="
379
- - !ruby/object:Gem::Version
380
- hash: 3
381
- segments:
382
- - 0
383
- version: "0"
368
+ - - ">="
369
+ - !ruby/object:Gem::Version
370
+ version: "0"
384
371
  required_rubygems_version: !ruby/object:Gem::Requirement
385
372
  none: false
386
373
  requirements:
387
- - - ">="
388
- - !ruby/object:Gem::Version
389
- hash: 3
390
- segments:
391
- - 0
392
- version: "0"
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: "0"
393
377
  requirements: []
394
378
 
395
379
  rubyforge_project:
396
- rubygems_version: 1.8.10
380
+ rubygems_version: 1.5.1
397
381
  signing_key:
398
382
  specification_version: 3
399
383
  summary: New Relic Ruby Agent