newrelic_rpm 2.14.0 → 2.14.1.logging1

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.

data/CHANGELOG CHANGED
@@ -1,4 +1,12 @@
1
- v2.13.6
1
+ v2.14.1.logging1
2
+ * Special debug logging build, for all those fans of War and Peace out there
3
+
4
+ v2.14.1
5
+ * Avoid overriding methods named 'log' when including the MethodTracer module
6
+ * Ensure that all load paths for 'new_relic/agent' go through 'new_relic/control' first
7
+ * Remove some debugging output from tests
8
+
9
+ v2.14.0
2
10
  * Dependency detection framework to prevent multi-loading or early-loading
3
11
  of instrumentation files
4
12
 
@@ -1,3 +1,4 @@
1
+ require 'new_relic/control'
1
2
  # = New Relic RPM Agent
2
3
  #
3
4
  # New Relic RPM is a performance monitoring application for Ruby
@@ -314,19 +314,15 @@ module NewRelic
314
314
  "Custom/#{self.name}/#{method_name.to_s}"
315
315
  end
316
316
 
317
- def log
318
- NewRelic::Control.instance.log
319
- end
320
-
321
317
  def method_exists?(method_name)
322
318
  exists = method_defined?(method_name) || private_method_defined?(method_name)
323
- log.warn("Did not trace #{self.name}##{method_name} because that method does not exist") unless exists
319
+ NewRelic::Control.instance.log.warn("Did not trace #{self.name}##{method_name} because that method does not exist") unless exists
324
320
  exists
325
321
  end
326
322
 
327
323
  def traced_method_exists?(method_name, metric_name_code)
328
324
  exists = method_defined?(_traced_method_name(method_name, metric_name_code))
329
- log.warn("Attempt to trace a method twice with the same metric: Method = #{method_name}, Metric Name = #{metric_name_code}") if exists
325
+ NewRelic::Control.instance.log.warn("Attempt to trace a method twice with the same metric: Method = #{method_name}, Metric Name = #{metric_name_code}") if exists
330
326
  exists
331
327
  end
332
328
 
@@ -391,7 +387,7 @@ module NewRelic
391
387
  class_eval traced_method, __FILE__, __LINE__
392
388
  alias_method _untraced_method_name(method_name, metric_name_code), method_name
393
389
  alias_method method_name, _traced_method_name(method_name, metric_name_code)
394
- log.debug("Traced method: class = #{self.name},"+
390
+ NewRelic::Control.instance.log.debug("Traced method: class = #{self.name},"+
395
391
  "method = #{method_name}, "+
396
392
  "metric = '#{metric_name_code}'")
397
393
  end
@@ -404,7 +400,7 @@ module NewRelic
404
400
  if method_defined? "#{_traced_method_name(method_name, metric_name_code)}"
405
401
  alias_method method_name, "#{_untraced_method_name(method_name, metric_name_code)}"
406
402
  undef_method "#{_traced_method_name(method_name, metric_name_code)}"
407
- log.debug("removed method tracer #{method_name} #{metric_name_code}\n")
403
+ NewRelic::Control.instance.log.debug("removed method tracer #{method_name} #{metric_name_code}\n")
408
404
  else
409
405
  raise "No tracer for '#{metric_name_code}' on method '#{method_name}'"
410
406
  end
@@ -26,6 +26,7 @@ module NewRelic
26
26
  end
27
27
 
28
28
  def should_log?
29
+ return true # debug build! always log, ALWAYS
29
30
  @settings && agent_enabled?
30
31
  end
31
32
 
@@ -41,15 +42,17 @@ module NewRelic
41
42
  end
42
43
 
43
44
  # set the log level as specified in the config file
44
-
45
- case fetch("log_level","info").downcase
46
- when "debug" then log.level = Logger::DEBUG
47
- when "info" then log.level = Logger::INFO
48
- when "warn" then log.level = Logger::WARN
49
- when "error" then log.level = Logger::ERROR
50
- when "fatal" then log.level = Logger::FATAL
51
- else log.level = Logger::INFO
52
- end
45
+
46
+ # debug build! Always log everything!
47
+ log.level = Logger::DEBUG
48
+ # case fetch("log_level","info").downcase
49
+ # when "debug" then log.level = Logger::DEBUG
50
+ # when "info" then log.level = Logger::INFO
51
+ # when "warn" then log.level = Logger::WARN
52
+ # when "error" then log.level = Logger::ERROR
53
+ # when "fatal" then log.level = Logger::FATAL
54
+ # else log.level = Logger::INFO
55
+ # end
53
56
  log
54
57
  end
55
58
 
@@ -3,8 +3,8 @@ module NewRelic
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 2
5
5
  MINOR = 14
6
- TINY = 0
7
- BUILD = nil #'0' # Set to nil for a release, 'beta1', 'alpha', etc for prerelease builds
6
+ TINY = 1
7
+ BUILD = 'logging1' #'0' # Set to nil for a release, 'beta1', 'alpha', etc for prerelease builds
8
8
  STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
9
9
  end
10
10
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{newrelic_rpm}
8
- s.version = "2.14.0"
8
+ s.version = "2.14.1.logging1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bill Kayser", "Justin George"]
12
- s.date = %q{2011-03-29}
12
+ s.date = %q{2011-03-31}
13
13
  s.description = %q{New Relic RPM is a Ruby performance management system, developed by
14
14
  New Relic, Inc (http://www.newrelic.com). RPM provides you with deep
15
15
  information about the performance of your Ruby on Rails or Merb
@@ -278,7 +278,7 @@ for instructions for previous versions
278
278
  }
279
279
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "New Relic Ruby Performance Monitoring Agent"]
280
280
  s.require_paths = ["lib"]
281
- s.rubygems_version = %q{1.3.7}
281
+ s.rubygems_version = %q{1.3.6}
282
282
  s.summary = %q{New Relic Ruby Performance Monitoring Agent}
283
283
 
284
284
  if s.respond_to? :specification_version then
@@ -10,6 +10,10 @@ module ActiveRecordFixtures
10
10
  def teardown
11
11
  ActiveRecordFixtures::Shipment.teardown
12
12
  ActiveRecordFixtures::Order.teardown
13
+ begin
14
+ super
15
+ rescue Exception => e
16
+ end
13
17
  end
14
18
  class Order < ActiveRecord::Base
15
19
  self.table_name = 'newrelic_test_orders'
@@ -35,8 +35,7 @@ module NewRelic
35
35
  end
36
36
 
37
37
  def test_default_metric_name_code
38
- self.expects(:name).returns("TEST_CLASS")
39
- assert_equal 'Custom/TEST_CLASS/test_method', default_metric_name_code('test_method')
38
+ assert_equal "Custom/#{name}/test_method", default_metric_name_code('test_method')
40
39
  end
41
40
 
42
41
  def test_method_exists_positive
@@ -47,10 +46,10 @@ module NewRelic
47
46
  def test_method_exists_negative
48
47
  self.expects(:method_defined?).returns(false)
49
48
  self.expects(:private_method_defined?).returns(false)
50
- self.expects(:name).returns('TEST_CLASS')
49
+
51
50
  fake_log = mock('log')
52
- self.expects(:log).returns(fake_log)
53
- fake_log.expects(:warn).with("Did not trace TEST_CLASS#test_method because that method does not exist")
51
+ NewRelic::Control.instance.expects(:log).returns(fake_log)
52
+ fake_log.expects(:warn).with("Did not trace #{name}#test_method because that method does not exist")
54
53
  assert !method_exists?('test_method')
55
54
  end
56
55
 
@@ -113,7 +112,7 @@ module NewRelic
113
112
  self.expects(:_traced_method_name)
114
113
  self.expects(:method_defined?).returns(true)
115
114
  fake_log = mock('log')
116
- self.expects(:log).returns(fake_log)
115
+ NewRelic::Control.instance.expects(:log).returns(fake_log)
117
116
  fake_log.expects(:warn).with('Attempt to trace a method twice with the same metric: Method = test_method, Metric Name = Custom/Test/test_method')
118
117
  assert traced_method_exists?('test_method', 'Custom/Test/test_method')
119
118
  end
@@ -41,6 +41,20 @@ module NewRelic
41
41
  end
42
42
  end
43
43
 
44
+ module TestModuleWithLog
45
+ extend self
46
+ def other_method
47
+ #just here to be traced
48
+ log "12345"
49
+ end
50
+
51
+ def log( msg )
52
+ msg
53
+ end
54
+ include NewRelic::Agent::MethodTracer
55
+ add_method_tracer :other_method, 'Custom/foo/bar'
56
+ end
57
+
44
58
  class NewRelic::Agent::MethodTracerTest < Test::Unit::TestCase
45
59
  attr_reader :stats_engine
46
60
 
@@ -66,6 +80,10 @@ class NewRelic::Agent::MethodTracerTest < Test::Unit::TestCase
66
80
  @metric_name = nil
67
81
  super
68
82
  end
83
+
84
+ def test_preserve_logging
85
+ assert_equal '12345', TestModuleWithLog.other_method
86
+ end
69
87
 
70
88
  def test_basic
71
89
  metric = "hello"
@@ -11,6 +11,7 @@ class NewRelic::Agent::MetricStatsTest < Test::Unit::TestCase
11
11
  end
12
12
  def teardown
13
13
  @engine.harvest_timeslice_data({},{})
14
+ super
14
15
  end
15
16
  def test_get_no_scope
16
17
  s1 = @engine.get_stats "a"
@@ -11,6 +11,7 @@ class NewRelic::Agent::StatsEngine::TransactionsTest < Test::Unit::TestCase
11
11
  end
12
12
  def teardown
13
13
  @engine.harvest_timeslice_data({},{})
14
+ super
14
15
  end
15
16
 
16
17
  def test_scope
@@ -30,6 +30,7 @@ class NewRelic::Agent::TransactionSamplerTest < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  def teardown
33
+ super
33
34
  @sampler.send(:clear_builder)
34
35
  end
35
36
 
@@ -12,6 +12,7 @@ class NewRelic::Command::DeploymentsTest < Test::Unit::TestCase
12
12
  end
13
13
  end
14
14
  def teardown
15
+ super
15
16
  return unless @deployment
16
17
  puts @deployment.errors
17
18
  puts @deployment.messages
@@ -17,6 +17,7 @@ module TestContexts
17
17
  yield
18
18
 
19
19
  def teardown
20
+ super
20
21
  NewRelic::Agent.shutdown
21
22
  @log_data.reset
22
23
  NewRelic::Control.instance['dispatcher']=nil
metadata CHANGED
@@ -1,8 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 2.14.0
4
+ hash: 897997444
5
+ prerelease: true
6
+ segments:
7
+ - 2
8
+ - 14
9
+ - 1
10
+ - logging1
11
+ version: 2.14.1.logging1
6
12
  platform: ruby
7
13
  authors:
8
14
  - Bill Kayser
@@ -11,7 +17,7 @@ autorequire:
11
17
  bindir: bin
12
18
  cert_chain: []
13
19
 
14
- date: 2011-03-29 00:00:00 -07:00
20
+ date: 2011-03-31 00:00:00 -07:00
15
21
  default_executable:
16
22
  dependencies:
17
23
  - !ruby/object:Gem::Dependency
@@ -22,6 +28,9 @@ dependencies:
22
28
  requirements:
23
29
  - - ">="
24
30
  - !ruby/object:Gem::Version
31
+ hash: 3
32
+ segments:
33
+ - 0
25
34
  version: "0"
26
35
  type: :development
27
36
  version_requirements: *id001
@@ -33,6 +42,9 @@ dependencies:
33
42
  requirements:
34
43
  - - ">="
35
44
  - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
36
48
  version: "0"
37
49
  type: :development
38
50
  version_requirements: *id002
@@ -44,6 +56,9 @@ dependencies:
44
56
  requirements:
45
57
  - - ">="
46
58
  - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
47
62
  version: "0"
48
63
  type: :development
49
64
  version_requirements: *id003
@@ -294,23 +309,32 @@ has_rdoc: true
294
309
  homepage: http://www.github.com/newrelic/rpm
295
310
  licenses: []
296
311
 
297
- post_install_message: "\n\
298
- PLEASE NOTE:\n\n\
299
- Developer Mode is now a Rack middleware.\n\n\
300
- RPM Developer Mode is no longer available in Rails 2.1 and earlier.\n\
301
- However, starting in version 2.12 you can use Developer Mode in any\n\
302
- Rack based framework, in addition to Rails. To install developer mode\n\
303
- in a non-Rails application, just add NewRelic::Rack::DeveloperMode to\n\
304
- your middleware stack.\n\n\
305
- If you are using JRuby, we recommend using at least version 1.4 or \n\
306
- later because of issues with the implementation of the timeout library.\n\n\
307
- Refer to the README.md file for more information.\n\n\
308
- Please see http://support.newrelic.com/faqs/docs/ruby-agent-release-notes\n\
309
- for a complete description of the features and enhancements available\n\
310
- in version 2.14 of the Ruby Agent.\n\n\
311
- For details on this specific release, refer to the CHANGELOG file.\n\n\
312
- Notice: Developer Mode now supports only Rails 2.3+ - refer to README\n\
313
- for instructions for previous versions\n\n"
312
+ post_install_message: |+
313
+
314
+ PLEASE NOTE:
315
+
316
+ Developer Mode is now a Rack middleware.
317
+
318
+ RPM Developer Mode is no longer available in Rails 2.1 and earlier.
319
+ However, starting in version 2.12 you can use Developer Mode in any
320
+ Rack based framework, in addition to Rails. To install developer mode
321
+ in a non-Rails application, just add NewRelic::Rack::DeveloperMode to
322
+ your middleware stack.
323
+
324
+ If you are using JRuby, we recommend using at least version 1.4 or
325
+ later because of issues with the implementation of the timeout library.
326
+
327
+ Refer to the README.md file for more information.
328
+
329
+ Please see http://support.newrelic.com/faqs/docs/ruby-agent-release-notes
330
+ for a complete description of the features and enhancements available
331
+ in version 2.14 of the Ruby Agent.
332
+
333
+ For details on this specific release, refer to the CHANGELOG file.
334
+
335
+ Notice: Developer Mode now supports only Rails 2.3+ - refer to README
336
+ for instructions for previous versions
337
+
314
338
  rdoc_options:
315
339
  - --line-numbers
316
340
  - --inline-source
@@ -323,17 +347,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
323
347
  requirements:
324
348
  - - ">="
325
349
  - !ruby/object:Gem::Version
350
+ hash: 3
351
+ segments:
352
+ - 0
326
353
  version: "0"
327
354
  required_rubygems_version: !ruby/object:Gem::Requirement
328
355
  none: false
329
356
  requirements:
330
357
  - - ">="
331
358
  - !ruby/object:Gem::Version
359
+ hash: 3
360
+ segments:
361
+ - 0
332
362
  version: "0"
333
363
  requirements: []
334
364
 
335
365
  rubyforge_project:
336
- rubygems_version: 1.5.0
366
+ rubygems_version: 1.3.7
337
367
  signing_key:
338
368
  specification_version: 3
339
369
  summary: New Relic Ruby Performance Monitoring Agent