rpm_contrib 1.0.9 → 1.0.10
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.
- data/CHANGELOG +4 -0
- data/README.md +5 -2
- data/lib/rpm_contrib/instrumentation/mongo_mapper.rb +44 -0
- data/lib/rpm_contrib/instrumentation/mongoid.rb +53 -0
- data/test/helper.rb +2 -5
- data/test/test_mongoid.rb +42 -0
- metadata +7 -6
- data/lib/rpm_contrib/instrumentation/mongodb.rb +0 -41
- data/test/test_rpm_contrib.rb +0 -7
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -39,8 +39,11 @@ it by setting `disable_paperclip` to true in the newrelic.yml file.
|
|
39
39
|
|
40
40
|
### MongoDB
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
The MongoMapper object mapper is the only currently supported mapper for RPM
|
43
|
+
visibility using this gem. Feel free to add others and let us know.
|
44
|
+
|
45
|
+
No special configuration required. You can disable it by setting
|
46
|
+
`disable_mongodb` to true in the newrelic.yml file.
|
44
47
|
|
45
48
|
### Resque
|
46
49
|
|
@@ -0,0 +1,44 @@
|
|
1
|
+
if defined?(::MongoMapper) && !NewRelic::Control.instance['disable_mongodb']
|
2
|
+
|
3
|
+
module RPMContrib::Instrumentation
|
4
|
+
# Just drop this little diddy in your app to get some (not perfect) information
|
5
|
+
# on query times and such.
|
6
|
+
#
|
7
|
+
# Currently only MongoMapper is implemented
|
8
|
+
module MongoMapper
|
9
|
+
def self.included(model)
|
10
|
+
model.metaclass.class_eval do
|
11
|
+
add_method_tracer :find, 'Database/#{self.name}/find'
|
12
|
+
add_method_tracer :find!, 'Database/#{self.name}/find!'
|
13
|
+
add_method_tracer :paginate, 'Database/#{self.name}/paginate'
|
14
|
+
add_method_tracer :first, 'Database/#{self.name}/first'
|
15
|
+
add_method_tracer :last, 'Database/#{self.name}/last'
|
16
|
+
add_method_tracer :all, 'Database/#{self.name}/all'
|
17
|
+
add_method_tracer :count, 'Database/#{self.name}/count'
|
18
|
+
add_method_tracer :create, 'Database/#{self.name}/create'
|
19
|
+
add_method_tracer :create!, 'Database/#{self.name}/create!'
|
20
|
+
add_method_tracer :update, 'Database/#{self.name}/update'
|
21
|
+
add_method_tracer :delete, 'Database/#{self.name}/delete'
|
22
|
+
add_method_tracer :delete_all, 'Database/#{self.name}/delete_all'
|
23
|
+
add_method_tracer :destroy, 'Database/#{self.name}/destroy'
|
24
|
+
add_method_tracer :destroy_all, 'Database/#{self.name}/destroy_all'
|
25
|
+
add_method_tracer :exists?, 'Database/#{self.name}/exists?'
|
26
|
+
add_method_tracer :find_by_id, 'Database/#{self.name}/find_by_id'
|
27
|
+
add_method_tracer :increment, 'Database/#{self.name}/increment'
|
28
|
+
add_method_tracer :decrement, 'Database/#{self.name}/decrement'
|
29
|
+
add_method_tracer :set, 'Database/#{self.name}/set'
|
30
|
+
add_method_tracer :push, 'Database/#{self.name}/push'
|
31
|
+
add_method_tracer :push_all, 'Database/#{self.name}/push_all'
|
32
|
+
add_method_tracer :push_uniq, 'Database/#{self.name}/push_uniq'
|
33
|
+
add_method_tracer :pull, 'Database/#{self.name}/pull'
|
34
|
+
add_method_tracer :pull_all, 'Database/#{self.name}/pull_all'
|
35
|
+
end
|
36
|
+
|
37
|
+
model.class_eval do
|
38
|
+
add_method_tracer :save, 'Database/#{self.class.name}/save'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
::MongoMapper::Document.append_inclusions(::RPMContrib::Instrumentation::MongoMapper)
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
if defined?(::Mongoid) && !NewRelic::Control.instance['disable_mongodb']
|
2
|
+
|
3
|
+
module Mongoid #:nodoc:
|
4
|
+
module Document
|
5
|
+
|
6
|
+
#adding call to super
|
7
|
+
class << self
|
8
|
+
alias :old_included :included
|
9
|
+
|
10
|
+
def included(model)
|
11
|
+
old_included(model)
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
module RPMContrib::Instrumentation
|
19
|
+
|
20
|
+
module Mongoid
|
21
|
+
def included(model)
|
22
|
+
model.metaclass.class_eval do
|
23
|
+
puts "adding mongoid method tracers for #{model.name}"
|
24
|
+
add_method_tracer :create, 'Database/#{self.name}/create'
|
25
|
+
add_method_tracer :create!, 'Database/#{self.name}/create!'
|
26
|
+
add_method_tracer :delete_all, 'Database/#{self.name}/delete_all'
|
27
|
+
add_method_tracer :destroy_all, 'Database/#{self.name}/destroy_all'
|
28
|
+
add_method_tracer :all, 'Database/#{self.name}/all'
|
29
|
+
add_method_tracer :find, 'Database/#{self.name}/find'
|
30
|
+
add_method_tracer :first, 'Database/#{self.name}/first'
|
31
|
+
add_method_tracer :last, 'Database/#{self.name}/last'
|
32
|
+
add_method_tracer :find_or_create_by, 'Database/#{self.name}/find_or_create_by'
|
33
|
+
add_method_tracer :find_or_initialize_by, 'Database/#{self.name}/find_or_initialize_by'
|
34
|
+
add_method_tracer :min, 'Database/#{self.name}/min'
|
35
|
+
add_method_tracer :max, 'Database/#{self.name}/max'
|
36
|
+
add_method_tracer :sum, 'Database/#{self.name}/sum'
|
37
|
+
end
|
38
|
+
|
39
|
+
model.class_eval do
|
40
|
+
add_method_tracer :update_attributes, 'Database/#{self.class.name}/update_attributes'
|
41
|
+
add_method_tracer :update_attributes!, 'Database/#{self.class.name}/update_attributes!'
|
42
|
+
add_method_tracer :save, 'Database/#{self.class.name}/save'
|
43
|
+
add_method_tracer :save!, 'Database/#{self.class.name}/save!'
|
44
|
+
add_method_tracer :delete, 'Database/#{self.class.name}/delete'
|
45
|
+
add_method_tracer :destroy, 'Database/#{self.class.name}/destroy'
|
46
|
+
|
47
|
+
end
|
48
|
+
super
|
49
|
+
end
|
50
|
+
end
|
51
|
+
::Mongoid::Document.extend(RPMContrib::Instrumentation::Mongoid)
|
52
|
+
end
|
53
|
+
end
|
data/test/helper.rb
CHANGED
@@ -2,11 +2,8 @@ require 'rubygems'
|
|
2
2
|
require 'test/unit'
|
3
3
|
|
4
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
|
-
|
6
|
-
require 'newrelic_rpm'
|
7
|
-
require 'rpm_contrib'
|
5
|
+
#$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
8
6
|
|
9
|
-
|
10
|
-
end
|
7
|
+
require File.expand_path("../../lib/rpm_contrib.rb", __FILE__)
|
11
8
|
|
12
9
|
require 'schema.rb'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "#{File.dirname(__FILE__)}/helper"
|
2
|
+
begin
|
3
|
+
require 'mongoid'
|
4
|
+
rescue LoadError
|
5
|
+
end
|
6
|
+
|
7
|
+
require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/mongoid"
|
8
|
+
|
9
|
+
if defined?(::Mongoid)
|
10
|
+
|
11
|
+
Mongoid.configure do |config|
|
12
|
+
config.master = Mongo::Connection.new.db('animals')
|
13
|
+
end
|
14
|
+
|
15
|
+
class Dog
|
16
|
+
include Mongoid::Document
|
17
|
+
|
18
|
+
field :name
|
19
|
+
end
|
20
|
+
|
21
|
+
class MongoidTest < Test::Unit::TestCase
|
22
|
+
|
23
|
+
# Called before every test method runs. Can be used
|
24
|
+
# to set up fixture information.
|
25
|
+
def setup
|
26
|
+
# Do nothing
|
27
|
+
end
|
28
|
+
|
29
|
+
# Called after every test method runs. Can be used to tear
|
30
|
+
# down fixture information.
|
31
|
+
|
32
|
+
def teardown
|
33
|
+
# Do nothing
|
34
|
+
end
|
35
|
+
|
36
|
+
# Fake test
|
37
|
+
def test_fail
|
38
|
+
Dog.create!(:name=>'rover')
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 10
|
9
|
+
version: 1.0.10
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Bill Kayser
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-21 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -54,13 +54,14 @@ files:
|
|
54
54
|
- lib/rpm_contrib/detection/camping.rb
|
55
55
|
- lib/rpm_contrib/detection/resque.rb
|
56
56
|
- lib/rpm_contrib/instrumentation/camping.rb
|
57
|
-
- lib/rpm_contrib/instrumentation/
|
57
|
+
- lib/rpm_contrib/instrumentation/mongo_mapper.rb
|
58
|
+
- lib/rpm_contrib/instrumentation/mongoid.rb
|
58
59
|
- lib/rpm_contrib/instrumentation/paperclip.rb
|
59
60
|
- lib/rpm_contrib/instrumentation/redis.rb
|
60
61
|
- lib/rpm_contrib/instrumentation/resque.rb
|
61
62
|
- test/helper.rb
|
62
63
|
- test/schema.rb
|
63
|
-
- test/
|
64
|
+
- test/test_mongoid.rb
|
64
65
|
has_rdoc: true
|
65
66
|
homepage: http://github.com/newrelic/rpm_contrib
|
66
67
|
licenses: []
|
@@ -100,4 +101,4 @@ summary: Contributed Instrumentation for New Relic RPM
|
|
100
101
|
test_files:
|
101
102
|
- test/helper.rb
|
102
103
|
- test/schema.rb
|
103
|
-
- test/
|
104
|
+
- test/test_mongoid.rb
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# Just drop this little diddy in your app to get some (not perfect) information on query times and such
|
2
|
-
# This will eventually become an official plugin but for those who can't wait, enjoy.
|
3
|
-
|
4
|
-
|
5
|
-
module RPMContrib::Instrumentation
|
6
|
-
module MongoDB
|
7
|
-
def self.included(model)
|
8
|
-
model.metaclass.class_eval do
|
9
|
-
add_method_tracer :find, 'Database/#{self.name}/find'
|
10
|
-
add_method_tracer :find!, 'Database/#{self.name}/find!'
|
11
|
-
add_method_tracer :paginate, 'Database/#{self.name}/paginate'
|
12
|
-
add_method_tracer :first, 'Database/#{self.name}/first'
|
13
|
-
add_method_tracer :last, 'Database/#{self.name}/last'
|
14
|
-
add_method_tracer :all, 'Database/#{self.name}/all'
|
15
|
-
add_method_tracer :count, 'Database/#{self.name}/count'
|
16
|
-
add_method_tracer :create, 'Database/#{self.name}/create'
|
17
|
-
add_method_tracer :create!, 'Database/#{self.name}/create!'
|
18
|
-
add_method_tracer :update, 'Database/#{self.name}/update'
|
19
|
-
add_method_tracer :delete, 'Database/#{self.name}/delete'
|
20
|
-
add_method_tracer :delete_all, 'Database/#{self.name}/delete_all'
|
21
|
-
add_method_tracer :destroy, 'Database/#{self.name}/destroy'
|
22
|
-
add_method_tracer :destroy_all, 'Database/#{self.name}/destroy_all'
|
23
|
-
add_method_tracer :exists?, 'Database/#{self.name}/exists?'
|
24
|
-
add_method_tracer :find_by_id, 'Database/#{self.name}/find_by_id'
|
25
|
-
add_method_tracer :increment, 'Database/#{self.name}/increment'
|
26
|
-
add_method_tracer :decrement, 'Database/#{self.name}/decrement'
|
27
|
-
add_method_tracer :set, 'Database/#{self.name}/set'
|
28
|
-
add_method_tracer :push, 'Database/#{self.name}/push'
|
29
|
-
add_method_tracer :push_all, 'Database/#{self.name}/push_all'
|
30
|
-
add_method_tracer :push_uniq, 'Database/#{self.name}/push_uniq'
|
31
|
-
add_method_tracer :pull, 'Database/#{self.name}/pull'
|
32
|
-
add_method_tracer :pull_all, 'Database/#{self.name}/pull_all'
|
33
|
-
end
|
34
|
-
|
35
|
-
model.class_eval do
|
36
|
-
add_method_tracer :save, 'Database/#{self.class.name}/save'
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
::MongoMapper::Document.append_inclusions(::RPMContrib::Instrumentation::MongoDB)
|
41
|
-
end if defined?(::MongoMapper) && !NewRelic::Control.instance['disable_mongodb']
|