diff --git a/CHANGELOG b/CHANGELOG index 530e1e5..141daeb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +* Version 1.0.10 + + Mongoid support contributed by Karl Baum + * Version 1.0.9 Fixed dependency specification on newrelic_rpm diff --git a/lib/rpm_contrib/instrumentation/mongo_mapper.rb b/lib/rpm_contrib/instrumentation/mongo_mapper.rb new file mode 100644 index 0000000..6575c31 --- /dev/null +++ b/lib/rpm_contrib/instrumentation/mongo_mapper.rb @@ -0,0 +1,44 @@ +if defined?(::MongoMapper) && !NewRelic::Control.instance['disable_mongodb'] + + module RPMContrib::Instrumentation + # Just drop this little diddy in your app to get some (not perfect) information + # on query times and such. + # + # Currently only MongoMapper is implemented + module MongoMapper + def self.included(model) + model.metaclass.class_eval do + add_method_tracer :find, 'Database/#{self.name}/find' + add_method_tracer :find!, 'Database/#{self.name}/find!' + add_method_tracer :paginate, 'Database/#{self.name}/paginate' + add_method_tracer :first, 'Database/#{self.name}/first' + add_method_tracer :last, 'Database/#{self.name}/last' + add_method_tracer :all, 'Database/#{self.name}/all' + add_method_tracer :count, 'Database/#{self.name}/count' + add_method_tracer :create, 'Database/#{self.name}/create' + add_method_tracer :create!, 'Database/#{self.name}/create!' + add_method_tracer :update, 'Database/#{self.name}/update' + add_method_tracer :delete, 'Database/#{self.name}/delete' + add_method_tracer :delete_all, 'Database/#{self.name}/delete_all' + add_method_tracer :destroy, 'Database/#{self.name}/destroy' + add_method_tracer :destroy_all, 'Database/#{self.name}/destroy_all' + add_method_tracer :exists?, 'Database/#{self.name}/exists?' + add_method_tracer :find_by_id, 'Database/#{self.name}/find_by_id' + add_method_tracer :increment, 'Database/#{self.name}/increment' + add_method_tracer :decrement, 'Database/#{self.name}/decrement' + add_method_tracer :set, 'Database/#{self.name}/set' + add_method_tracer :push, 'Database/#{self.name}/push' + add_method_tracer :push_all, 'Database/#{self.name}/push_all' + add_method_tracer :push_uniq, 'Database/#{self.name}/push_uniq' + add_method_tracer :pull, 'Database/#{self.name}/pull' + add_method_tracer :pull_all, 'Database/#{self.name}/pull_all' + end + + model.class_eval do + add_method_tracer :save, 'Database/#{self.class.name}/save' + end + end + end + ::MongoMapper::Document.append_inclusions(::RPMContrib::Instrumentation::MongoMapper) + end +end diff --git a/lib/rpm_contrib/instrumentation/mongodb.rb b/lib/rpm_contrib/instrumentation/mongodb.rb deleted file mode 100644 index 9abe50b..0000000 --- a/lib/rpm_contrib/instrumentation/mongodb.rb +++ /dev/null @@ -1,42 +0,0 @@ - -module RPMContrib::Instrumentation - # Just drop this little diddy in your app to get some (not perfect) information - # on query times and such. - # - # Currently only MongoMapper is implemented - module MongoDB - def self.included(model) - model.metaclass.class_eval do - add_method_tracer :find, 'Database/#{self.name}/find' - add_method_tracer :find!, 'Database/#{self.name}/find!' - add_method_tracer :paginate, 'Database/#{self.name}/paginate' - add_method_tracer :first, 'Database/#{self.name}/first' - add_method_tracer :last, 'Database/#{self.name}/last' - add_method_tracer :all, 'Database/#{self.name}/all' - add_method_tracer :count, 'Database/#{self.name}/count' - add_method_tracer :create, 'Database/#{self.name}/create' - add_method_tracer :create!, 'Database/#{self.name}/create!' - add_method_tracer :update, 'Database/#{self.name}/update' - add_method_tracer :delete, 'Database/#{self.name}/delete' - add_method_tracer :delete_all, 'Database/#{self.name}/delete_all' - add_method_tracer :destroy, 'Database/#{self.name}/destroy' - add_method_tracer :destroy_all, 'Database/#{self.name}/destroy_all' - add_method_tracer :exists?, 'Database/#{self.name}/exists?' - add_method_tracer :find_by_id, 'Database/#{self.name}/find_by_id' - add_method_tracer :increment, 'Database/#{self.name}/increment' - add_method_tracer :decrement, 'Database/#{self.name}/decrement' - add_method_tracer :set, 'Database/#{self.name}/set' - add_method_tracer :push, 'Database/#{self.name}/push' - add_method_tracer :push_all, 'Database/#{self.name}/push_all' - add_method_tracer :push_uniq, 'Database/#{self.name}/push_uniq' - add_method_tracer :pull, 'Database/#{self.name}/pull' - add_method_tracer :pull_all, 'Database/#{self.name}/pull_all' - end - - model.class_eval do - add_method_tracer :save, 'Database/#{self.class.name}/save' - end - end - end - ::MongoMapper::Document.append_inclusions(::RPMContrib::Instrumentation::MongoDB) -end if defined?(::MongoMapper) && !NewRelic::Control.instance['disable_mongodb'] diff --git a/lib/rpm_contrib/instrumentation/mongoid.rb b/lib/rpm_contrib/instrumentation/mongoid.rb index 7027b78..6c2eb76 100644 --- a/lib/rpm_contrib/instrumentation/mongoid.rb +++ b/lib/rpm_contrib/instrumentation/mongoid.rb @@ -1,4 +1,3 @@ -debugger if defined?(::Mongoid) && !NewRelic::Control.instance['disable_mongodb'] module Mongoid #:nodoc: @@ -52,11 +51,3 @@ def included(model) ::Mongoid::Document.extend(RPMContrib::Instrumentation::Mongoid) end end - - - - - - - - diff --git a/rpm_contrib.gemspec b/rpm_contrib.gemspec index d5f4e87..8db2105 100644 --- a/rpm_contrib.gemspec +++ b/rpm_contrib.gemspec @@ -5,11 +5,11 @@ Gem::Specification.new do |s| s.name = %q{rpm_contrib} - s.version = "1.0.9" + s.version = "1.0.10" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Bill Kayser"] - s.date = %q{2010-05-10} + s.date = %q{2010-05-21} s.description = %q{Community contributed instrumentation for various frameworks based on the New Relic Ruby monitoring gem newrelic_rpm. } @@ -35,6 +35,7 @@ the New Relic Ruby monitoring gem newrelic_rpm. "lib/rpm_contrib/instrumentation/redis.rb", "lib/rpm_contrib/instrumentation/resque.rb", "test/helper.rb", + "test/mongoid_test.rb", "test/schema.rb", "test/test_rpm_contrib.rb" ] @@ -45,6 +46,7 @@ the New Relic Ruby monitoring gem newrelic_rpm. s.summary = %q{Contributed Instrumentation for New Relic RPM} s.test_files = [ "test/helper.rb", + "test/mongoid_test.rb", "test/schema.rb", "test/test_rpm_contrib.rb" ] diff --git a/test/helper.rb b/test/helper.rb index 2090d29..4a4abc2 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -2,12 +2,8 @@ require 'test/unit' $LOAD_PATH.unshift(File.dirname(__FILE__)) -$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) -require 'rpm_contrib' -require 'newrelic_rpm' +#$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) - -class Test::Unit::TestCase -end +require File.expand_path("../../lib/rpm_contrib.rb", __FILE__) require 'schema.rb' diff --git a/test/mongoid_test.rb b/test/mongoid_test.rb deleted file mode 100755 index 5d8c552..0000000 --- a/test/mongoid_test.rb +++ /dev/null @@ -1,36 +0,0 @@ -require "#{File.dirname(__FILE__)}/helper" -require 'mongoid' -require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/mongoid" - - -Mongoid.configure do |config| - config.master = Mongo::Connection.new.db('animals') -end - -class Dog - include Mongoid::Document - - field :name -end - -class MongoidTest < Test::Unit::TestCase - - # Called before every test method runs. Can be used - # to set up fixture information. - def setup - # Do nothing - end - - # Called after every test method runs. Can be used to tear - # down fixture information. - - def teardown - # Do nothing - end - - # Fake test - def test_fail - Dog.create!(:name=>'rover') - - end -end \ No newline at end of file diff --git a/test/test_mongoid.rb b/test/test_mongoid.rb new file mode 100755 index 0000000..e8fd050 --- /dev/null +++ b/test/test_mongoid.rb @@ -0,0 +1,42 @@ +require "#{File.dirname(__FILE__)}/helper" +begin + require 'mongoid' +rescue LoadError +end + +require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/mongoid" + +if defined?(::Mongoid) + + Mongoid.configure do |config| + config.master = Mongo::Connection.new.db('animals') + end + + class Dog + include Mongoid::Document + + field :name + end + + class MongoidTest < Test::Unit::TestCase + + # Called before every test method runs. Can be used + # to set up fixture information. + def setup + # Do nothing + end + + # Called after every test method runs. Can be used to tear + # down fixture information. + + def teardown + # Do nothing + end + + # Fake test + def test_fail + Dog.create!(:name=>'rover') + + end + end +end diff --git a/test/test_rpm_contrib.rb b/test/test_rpm_contrib.rb deleted file mode 100755 index 7da4d07..0000000 --- a/test/test_rpm_contrib.rb +++ /dev/null @@ -1,7 +0,0 @@ -require "#{File.dirname(__FILE__)}/helper" - -class TestRpmContrib < Test::Unit::TestCase - def test_something_for_real - flunk "hey buddy, you should probably rename this file and start testing for real" - end -end