newrelic_rpm 3.2.0.1 → 3.3.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.

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