rpm_contrib 1.0.13 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ * Version 2.0.0
2
+
3
+ Updated to use the latest version of the Ruby Agent
4
+
1
5
  * Version 1.0.13
2
6
 
3
7
  Removed use of 'metaclass' - no longer available from ActiveSupport as of Rails 3
data/Rakefile CHANGED
@@ -22,7 +22,7 @@ begin
22
22
  gem.email = "support@newrelic.com"
23
23
  gem.homepage = "http://github.com/newrelic/rpm_contrib"
24
24
  gem.author = "Bill Kayser"
25
- gem.add_dependency 'newrelic_rpm', '>=2.13.1'
25
+ gem.add_dependency 'newrelic_rpm', '>=3.0.0'
26
26
  gem.version = version
27
27
  gem.files = FileList['LICENSE', 'README*', 'lib/**/*.rb', 'bin/*', '[A-Z]*', 'test/**/*'].to_a
28
28
  gem.rdoc_options <<
@@ -0,0 +1,7 @@
1
+ require 'rpm_contrib/detection/camping'
2
+ require 'rpm_contrib/detection/resque'
3
+
4
+ module RpmContrib
5
+ module Detection
6
+ end
7
+ end
@@ -1,56 +1,64 @@
1
- # Instrumentation for the AWS-S3 gem for New Relic RPM by Brian Doll
2
- if defined?(::AWS::S3) && !NewRelic::Control.instance['disable_aws-s3']
1
+ module RpmContrib
2
+ module Instrumentation
3
+ module Aws
4
+ module S3
5
+ # Instrumentation for the AWS-S3 gem for New Relic RPM by Brian Doll
6
+ if defined?(::AWS::S3) && !NewRelic::Control.instance['disable_aws-s3']
3
7
 
4
- # Instrument connections to the AWS-S3 service
5
- ::AWS::S3::Connection::Management::ClassMethods.module_eval do
6
- add_method_tracer :establish_connection!, 'AWS-S3/establish_connection!'
7
- end
8
+ # Instrument connections to the AWS-S3 service
9
+ ::AWS::S3::Connection::Management::ClassMethods.module_eval do
10
+ add_method_tracer :establish_connection!, 'AWS-S3/establish_connection!'
11
+ end
8
12
 
9
- # Instrument methods on Bucket
10
- ::AWS::S3::Bucket.instance_eval do
11
- class << self
12
- add_method_tracer :create, 'AWS-S3/Bucket/create'
13
- add_method_tracer :find, 'AWS-S3/Bucket/find'
14
- add_method_tracer :objects, 'AWS-S3/Bucket/objects'
15
- add_method_tracer :delete, 'AWS-S3/Bucket/delete'
16
- add_method_tracer :list, 'AWS-S3/Bucket/list'
17
- end
18
- end
13
+ # Instrument methods on Bucket
14
+ ::AWS::S3::Bucket.instance_eval do
15
+ class << self
16
+ add_method_tracer :create, 'AWS-S3/Bucket/create'
17
+ add_method_tracer :find, 'AWS-S3/Bucket/find'
18
+ add_method_tracer :objects, 'AWS-S3/Bucket/objects'
19
+ add_method_tracer :delete, 'AWS-S3/Bucket/delete'
20
+ add_method_tracer :list, 'AWS-S3/Bucket/list'
21
+ end
22
+ end
19
23
 
20
- # Instrument methods on Bucket instances
21
- ::AWS::S3::Bucket.class_eval do
22
- add_method_tracer :[], 'AWS-S3/Bucket/#{self.name}/[]'
23
- add_method_tracer :new_object,'AWS-S3/Bucket/#{self.name}/new_objects'
24
- add_method_tracer :objects, 'AWS-S3/Bucket/#{self.name}/objects'
25
- add_method_tracer :delete, 'AWS-S3/Bucket/#{self.name}/delete'
26
- add_method_tracer :delete_all,'AWS-S3/Bucket/#{self.name}/delete_all'
27
- add_method_tracer :update, 'AWS-S3/Bucket/#{self.name}/update'
28
- end
24
+ # Instrument methods on Bucket instances
25
+ ::AWS::S3::Bucket.class_eval do
26
+ add_method_tracer :[], 'AWS-S3/Bucket/#{self.name}/[]'
27
+ add_method_tracer :new_object,'AWS-S3/Bucket/#{self.name}/new_objects'
28
+ add_method_tracer :objects, 'AWS-S3/Bucket/#{self.name}/objects'
29
+ add_method_tracer :delete, 'AWS-S3/Bucket/#{self.name}/delete'
30
+ add_method_tracer :delete_all,'AWS-S3/Bucket/#{self.name}/delete_all'
31
+ add_method_tracer :update, 'AWS-S3/Bucket/#{self.name}/update'
32
+ end
29
33
 
30
- # Instrument methods on S3Object
31
- ::AWS::S3::S3Object.instance_eval do
32
- class << self
33
- add_method_tracer :about, 'AWS-S3/S3Object/about'
34
- add_method_tracer :copy, 'AWS-S3/S3Object/copy'
35
- add_method_tracer :delete, 'AWS-S3/S3Object/delete'
36
- add_method_tracer :rename, 'AWS-S3/S3Object/rename'
37
- add_method_tracer :store, 'AWS-S3/S3Object/store'
38
- end
39
- end
34
+ # Instrument methods on S3Object
35
+ ::AWS::S3::S3Object.instance_eval do
36
+ class << self
37
+ add_method_tracer :about, 'AWS-S3/S3Object/about'
38
+ add_method_tracer :copy, 'AWS-S3/S3Object/copy'
39
+ add_method_tracer :delete, 'AWS-S3/S3Object/delete'
40
+ add_method_tracer :rename, 'AWS-S3/S3Object/rename'
41
+ add_method_tracer :store, 'AWS-S3/S3Object/store'
42
+ end
43
+ end
40
44
 
41
- # Instrument methods on S3Object instances
42
- # Metric names are aggregated across all S3Objects since having a metric for
43
- # every single S3Object instance and method pair would be fairly useless
44
- ::AWS::S3::S3Object.class_eval do
45
- add_method_tracer :value, 'AWS-S3/S3Objects/value'
46
- add_method_tracer :about, 'AWS-S3/S3Objects/about'
47
- add_method_tracer :metadata, 'AWS-S3/S3Objects/metadata'
48
- add_method_tracer :store, 'AWS-S3/S3Objects/store'
49
- add_method_tracer :delete, 'AWS-S3/S3Objects/delete'
50
- add_method_tracer :copy, 'AWS-S3/S3Objects/copy'
51
- add_method_tracer :rename, 'AWS-S3/S3Objects/rename'
52
- add_method_tracer :etag, 'AWS-S3/S3Objects/etag'
53
- add_method_tracer :owner, 'AWS-S3/S3Objects/owner'
45
+ # Instrument methods on S3Object instances
46
+ # Metric names are aggregated across all S3Objects since having a metric for
47
+ # every single S3Object instance and method pair would be fairly useless
48
+ ::AWS::S3::S3Object.class_eval do
49
+ add_method_tracer :value, 'AWS-S3/S3Objects/value'
50
+ add_method_tracer :about, 'AWS-S3/S3Objects/about'
51
+ add_method_tracer :metadata, 'AWS-S3/S3Objects/metadata'
52
+ add_method_tracer :store, 'AWS-S3/S3Objects/store'
53
+ add_method_tracer :delete, 'AWS-S3/S3Objects/delete'
54
+ add_method_tracer :copy, 'AWS-S3/S3Objects/copy'
55
+ add_method_tracer :rename, 'AWS-S3/S3Objects/rename'
56
+ add_method_tracer :etag, 'AWS-S3/S3Objects/etag'
57
+ add_method_tracer :owner, 'AWS-S3/S3Objects/owner'
58
+ end
59
+
60
+ end
61
+ end
62
+ end
54
63
  end
55
-
56
- end
64
+ end
@@ -0,0 +1,7 @@
1
+ require 'rpm_contrib/instrumentation/aws/s3'
2
+ module RpmContrib
3
+ module Instrumentation
4
+ module Aws
5
+ end
6
+ end
7
+ end
@@ -1,23 +1,29 @@
1
- # == Cassandra Instrumentation
2
- #
1
+ module RpmContrib
2
+ module Instrumentation
3
+ module Cassandra
4
+ # == Cassandra Instrumentation
5
+ #
3
6
 
4
- if defined?(::Cassandra) and not NewRelic::Control.instance['disable_cassandra_instrumentation']
5
-
6
- ::Cassandra.class_eval do
7
- add_method_tracer :insert, 'Database/Cassandra/insert'
8
- add_method_tracer :remove, 'Database/Cassandra/remove'
9
- add_method_tracer :clear_column_family!, 'Database/Cassandra/clear_column_family!'
10
- add_method_tracer :clear_keyspace!, 'Database/Cassandra/clear_keyspace!'
11
- add_method_tracer :count_columns, 'Database/Cassandra/count_columns'
12
- add_method_tracer :multi_count_columns, 'Database/Cassandra/multi_count_columns'
13
- add_method_tracer :get_columns, 'Database/Cassandra/get_columns'
14
- add_method_tracer :multi_get_columns, 'Database/Cassandra/multi_get_columns'
15
- add_method_tracer :get, 'Database/Cassandra/get'
16
- add_method_tracer :multi_get, 'Database/Cassandra/multi_get'
17
- add_method_tracer :exists?, 'Database/Cassandra/exists?'
18
- add_method_tracer :get_range, 'Database/Cassandra/get_range'
19
- add_method_tracer :count_range, 'Database/Cassandra/count_range'
20
- add_method_tracer :batch, 'Database/Cassandra/batch'
21
- end
7
+ if defined?(::Cassandra) and not NewRelic::Control.instance['disable_cassandra_instrumentation']
8
+
9
+ ::Cassandra.class_eval do
10
+ add_method_tracer :insert, 'Database/Cassandra/insert'
11
+ add_method_tracer :remove, 'Database/Cassandra/remove'
12
+ add_method_tracer :clear_column_family!, 'Database/Cassandra/clear_column_family!'
13
+ add_method_tracer :clear_keyspace!, 'Database/Cassandra/clear_keyspace!'
14
+ add_method_tracer :count_columns, 'Database/Cassandra/count_columns'
15
+ add_method_tracer :multi_count_columns, 'Database/Cassandra/multi_count_columns'
16
+ add_method_tracer :get_columns, 'Database/Cassandra/get_columns'
17
+ add_method_tracer :multi_get_columns, 'Database/Cassandra/multi_get_columns'
18
+ add_method_tracer :get, 'Database/Cassandra/get'
19
+ add_method_tracer :multi_get, 'Database/Cassandra/multi_get'
20
+ add_method_tracer :exists?, 'Database/Cassandra/exists?'
21
+ add_method_tracer :get_range, 'Database/Cassandra/get_range'
22
+ add_method_tracer :count_range, 'Database/Cassandra/count_range'
23
+ add_method_tracer :batch, 'Database/Cassandra/batch'
24
+ end
22
25
 
26
+ end
27
+ end
28
+ end
23
29
  end
@@ -1,22 +1,28 @@
1
- # Paperclip Instrumentation.
2
-
3
- if defined?(::Paperclip) && !NewRelic::Control.instance['disable_paperclip']
4
-
5
- ::Paperclip::Attachment.class_eval do
6
- add_method_tracer :save, 'Paperclip/#{name}/save'
7
- add_method_tracer :assign, 'Paperclip/#{name}/assign'
8
- add_method_tracer :post_process, 'Paperclip/#{name}/post_process'
1
+ module RpmContrib
2
+ module Instrumentation
3
+ module Paperclip
4
+ # Paperclip Instrumentation.
5
+
6
+ if defined?(::Paperclip) && !NewRelic::Control.instance['disable_paperclip']
7
+
8
+ ::Paperclip::Attachment.class_eval do
9
+ add_method_tracer :save, 'Paperclip/#{name}/save'
10
+ add_method_tracer :assign, 'Paperclip/#{name}/assign'
11
+ add_method_tracer :post_process, 'Paperclip/#{name}/post_process'
12
+ end
13
+
14
+ ::Paperclip::Storage::Filesystem.class_eval do
15
+ add_method_tracer :flush_deletes, 'Paperclip/Storage/flush_deletes'
16
+ add_method_tracer :flush_writes, 'Paperclip/Storage/flush_writes'
17
+ end
18
+
19
+ ::Paperclip::Storage::S3.class_eval do
20
+ add_method_tracer :flush_deletes, 'Paperclip/Storage/flush_deletes'
21
+ add_method_tracer :flush_writes, 'Paperclip/Storage/flush_writes'
22
+ end
23
+
24
+ end
25
+
26
+ end
9
27
  end
10
-
11
- ::Paperclip::Storage::Filesystem.class_eval do
12
- add_method_tracer :flush_deletes, 'Paperclip/Storage/flush_deletes'
13
- add_method_tracer :flush_writes, 'Paperclip/Storage/flush_writes'
14
- end
15
-
16
- ::Paperclip::Storage::S3.class_eval do
17
- add_method_tracer :flush_deletes, 'Paperclip/Storage/flush_deletes'
18
- add_method_tracer :flush_writes, 'Paperclip/Storage/flush_writes'
19
- end
20
-
21
28
  end
22
-
@@ -1,33 +1,39 @@
1
- # Redis instrumentation contributed by Ashley Martens of ngmoco
2
- #
1
+ module RpmContrib
2
+ module Instrumentation
3
+ module Redis
4
+ # Redis instrumentation contributed by Ashley Martens of ngmoco
5
+ #
3
6
 
4
- if defined?(::Redis) and not NewRelic::Control.instance['disable_redis']
7
+ if defined?(::Redis) and not NewRelic::Control.instance['disable_redis']
5
8
 
6
9
 
7
- Redis::Client.class_eval do
8
-
9
- include NewRelic::Agent::MethodTracer
10
+ ::Redis::Client.class_eval do
11
+
12
+ include NewRelic::Agent::MethodTracer
10
13
 
11
- def self.redis_call_method
12
- Redis::Client.new.respond_to?(:call) ? :call : :raw_call_command
13
- end
14
+ def self.redis_call_method
15
+ ::Redis::Client.new.respond_to?(:call) ? :call : :raw_call_command
16
+ end
14
17
 
15
-
16
- def raw_call_command_with_newrelic_trace *args
17
- method_name = args[0].is_a?(Array) ? args[0][0] : args[0]
18
- metrics = ["Database/Redis/#{method_name}",
19
- (NewRelic::Agent::Instrumentation::MetricFrame.recording_web_transaction? ? 'Database/Redis/allWeb' : 'Database/Redis/allOther')]
20
- self.class.trace_execution_scoped(metrics) do
21
- # NewRelic::Control.instance.log.debug("Instrumenting Redis Call[#{method_name}]: #{args[0].inspect}")
22
- raw_call_command_without_newrelic_trace(*args)
23
- end
24
- end
18
+
19
+ def raw_call_command_with_newrelic_trace *args
20
+ method_name = args[0].is_a?(Array) ? args[0][0] : args[0]
21
+ metrics = ["Database/Redis/#{method_name}",
22
+ (NewRelic::Agent::Instrumentation::MetricFrame.recording_web_transaction? ? 'Database/Redis/allWeb' : 'Database/Redis/allOther')]
23
+ self.class.trace_execution_scoped(metrics) do
24
+ # NewRelic::Control.instance.log.debug("Instrumenting Redis Call[#{method_name}]: #{args[0].inspect}")
25
+ raw_call_command_without_newrelic_trace(*args)
26
+ end
27
+ end
25
28
 
26
- alias_method :raw_call_command_without_newrelic_trace, redis_call_method
27
- alias_method redis_call_method, :raw_call_command_with_newrelic_trace
28
-
29
- end
29
+ alias_method :raw_call_command_without_newrelic_trace, redis_call_method
30
+ alias_method redis_call_method, :raw_call_command_with_newrelic_trace
31
+
32
+ end
30
33
 
31
34
 
32
35
 
36
+ end
37
+ end
38
+ end
33
39
  end
@@ -1,34 +1,32 @@
1
1
 
2
2
  module RPMContrib
3
3
  module Instrumentation
4
- # == Resque Instrumentation
5
- #
6
- # Installs a hook to ensure the agent starts manually when the worker
7
- # starts and also adds the tracer to the process method which executes
8
- # in the forked task.
9
4
  module ResqueInstrumentation
10
- ::Resque::Job.class_eval do
11
- include NewRelic::Agent::Instrumentation::ControllerInstrumentation
12
-
13
- old_perform_method = instance_method(:perform)
5
+ Resque.before_first_fork do
6
+ NewRelic::Agent.manual_start(:dispatcher => :resque)
7
+ end
14
8
 
15
- define_method(:perform) do
16
- class_name = (payload_class ||self.class).name
17
- NewRelic::Agent.reset_stats if NewRelic::Agent.respond_to? :reset_stats
18
- perform_action_with_newrelic_trace(:name => 'perform', :class_name => class_name,
19
- :category => 'OtherTransaction/ResqueJob') do
20
- old_perform_method.bind(self).call
21
- end
9
+ Resque.after_fork do
10
+ NewRelic::Agent.after_fork(:force_reconnect => false)
11
+ end
22
12
 
23
- NewRelic::Agent.shutdown unless defined?(::Resque.before_child_exit)
24
- end
13
+ Resque.before_child_exit do
14
+ NewRelic::Agent.shutdown
25
15
  end
16
+ end
17
+ end
18
+ end if defined?(::Resque) and not NewRelic::Control.instance['disable_resque']
19
+
20
+ module Resque
21
+ module Plugins
22
+ module NewRelicInstrumentation
23
+ include NewRelic::Agent::Instrumentation::ControllerInstrumentation
26
24
 
27
- if defined?(::Resque.before_child_exit)
28
- ::Resque.before_child_exit do |worker|
29
- NewRelic::Agent.shutdown
25
+ def around_perform_with_monitoring(*args)
26
+ perform_action_with_newrelic_trace(:name => 'perform', :class_name => class_name, :category => 'OtherTransaction/ResqueJob') do
27
+ yield(*args)
30
28
  end
31
29
  end
32
30
  end
33
31
  end
34
- end if defined?(::Resque::Job) and not NewRelic::Control.instance['disable_resque']
32
+ end
@@ -0,0 +1,11 @@
1
+ require 'rpm_contrib/instrumentation/cassandra'
2
+ require 'rpm_contrib/instrumentation/camping'
3
+ require 'rpm_contrib/instrumentation/paperclip'
4
+ require 'rpm_contrib/instrumentation/redis'
5
+ require 'rpm_contrib/instrumentation/resque'
6
+ require 'rpm_contrib/instrumentation/aws'
7
+
8
+ module RpmContrib
9
+ module Instrumentation
10
+ end
11
+ end
data/lib/rpm_contrib.rb CHANGED
@@ -16,13 +16,9 @@ module RPMContrib
16
16
  end
17
17
 
18
18
  end
19
-
20
19
  # Perform any framework/dispatcher detection before loading the rpm gem.
21
- raise "The rpm_contrib gem must be loaded before the newrelic_rpm gem." if defined?(::NewRelic)
22
-
23
- Dir.glob(RPM_CONTRIB_LIB + "/rpm_contrib/detection/**/*.rb") { |file| require file }
24
-
25
- require 'newrelic_rpm'
20
+ require 'rpm_contrib/detection'
21
+ raise "The rpm_contrib gem must be loaded before the newrelic_rpm gem." unless require 'newrelic_rpm'
26
22
 
27
23
  if defined? Rails
28
24
  # Rails 3.x+
@@ -40,4 +36,4 @@ if defined? Rails
40
36
  end
41
37
  else
42
38
  RPMContrib.init_sequence.call
43
- end
39
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpm_contrib
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
- - 1
7
+ - 2
8
+ - 0
8
9
  - 0
9
- - 13
10
- version: 1.0.13
10
+ version: 2.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bill Kayser
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-28 00:00:00 -07:00
18
+ date: 2011-05-11 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -26,12 +26,12 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 57
29
+ hash: 7
30
30
  segments:
31
- - 2
32
- - 13
33
- - 1
34
- version: 2.13.1
31
+ - 3
32
+ - 0
33
+ - 0
34
+ version: 3.0.0
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  description: |
@@ -54,13 +54,14 @@ files:
54
54
  - Rakefile
55
55
  - lib/new_relic/control/camping.rb
56
56
  - lib/rpm_contrib.rb
57
+ - lib/rpm_contrib/detection.rb
57
58
  - lib/rpm_contrib/detection/camping.rb
58
59
  - lib/rpm_contrib/detection/resque.rb
60
+ - lib/rpm_contrib/instrumentation.rb
61
+ - lib/rpm_contrib/instrumentation/aws.rb
59
62
  - lib/rpm_contrib/instrumentation/aws/s3.rb
60
63
  - lib/rpm_contrib/instrumentation/camping.rb
61
64
  - lib/rpm_contrib/instrumentation/cassandra.rb
62
- - lib/rpm_contrib/instrumentation/mongo_mapper.rb
63
- - lib/rpm_contrib/instrumentation/mongoid.rb
64
65
  - lib/rpm_contrib/instrumentation/paperclip.rb
65
66
  - lib/rpm_contrib/instrumentation/redis.rb
66
67
  - lib/rpm_contrib/instrumentation/resque.rb
@@ -104,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
105
  requirements: []
105
106
 
106
107
  rubyforge_project:
107
- rubygems_version: 1.3.7
108
+ rubygems_version: 1.5.2
108
109
  signing_key:
109
110
  specification_version: 3
110
111
  summary: Contributed Instrumentation for New Relic RPM
@@ -1,44 +0,0 @@
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.class_eval do
11
- class << self
12
- add_method_tracer :find, 'Database/#{self.name}/find'
13
- add_method_tracer :find!, 'Database/#{self.name}/find!'
14
- add_method_tracer :paginate, 'Database/#{self.name}/paginate'
15
- add_method_tracer :first, 'Database/#{self.name}/first'
16
- add_method_tracer :last, 'Database/#{self.name}/last'
17
- add_method_tracer :all, 'Database/#{self.name}/all'
18
- add_method_tracer :count, 'Database/#{self.name}/count'
19
- add_method_tracer :create, 'Database/#{self.name}/create'
20
- add_method_tracer :create!, 'Database/#{self.name}/create!'
21
- add_method_tracer :update, 'Database/#{self.name}/update'
22
- add_method_tracer :delete, 'Database/#{self.name}/delete'
23
- add_method_tracer :delete_all, 'Database/#{self.name}/delete_all'
24
- add_method_tracer :destroy, 'Database/#{self.name}/destroy'
25
- add_method_tracer :destroy_all, 'Database/#{self.name}/destroy_all'
26
- add_method_tracer :exists?, 'Database/#{self.name}/exists?'
27
- add_method_tracer :find_by_id, 'Database/#{self.name}/find_by_id'
28
- add_method_tracer :increment, 'Database/#{self.name}/increment'
29
- add_method_tracer :decrement, 'Database/#{self.name}/decrement'
30
- add_method_tracer :set, 'Database/#{self.name}/set'
31
- add_method_tracer :push, 'Database/#{self.name}/push'
32
- add_method_tracer :push_all, 'Database/#{self.name}/push_all'
33
- add_method_tracer :push_uniq, 'Database/#{self.name}/push_uniq'
34
- add_method_tracer :pull, 'Database/#{self.name}/pull'
35
- add_method_tracer :pull_all, 'Database/#{self.name}/pull_all'
36
- end
37
-
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
@@ -1,51 +0,0 @@
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.class_eval do
23
- class << self
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
- add_method_tracer :update_attributes, 'Database/#{self.class.name}/update_attributes'
40
- add_method_tracer :update_attributes!, 'Database/#{self.class.name}/update_attributes!'
41
- add_method_tracer :save, 'Database/#{self.class.name}/save'
42
- add_method_tracer :save!, 'Database/#{self.class.name}/save!'
43
- add_method_tracer :delete, 'Database/#{self.class.name}/delete'
44
- add_method_tracer :destroy, 'Database/#{self.class.name}/destroy'
45
- end
46
- super
47
- end
48
- end
49
- ::Mongoid::Document.extend(RPMContrib::Instrumentation::Mongoid)
50
- end
51
- end