rpm_contrib 2.1.6.beta1 → 2.1.6
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 +13 -3
- data/Gemfile +13 -0
- data/README.md +29 -2
- data/Rakefile +1 -0
- data/lib/rpm_contrib/instrumentation/{active_mq.rb → active_messaging.rb} +5 -4
- data/lib/rpm_contrib/instrumentation/kyototycoon.rb +28 -0
- data/lib/rpm_contrib/instrumentation/mongo.rb +0 -2
- data/lib/rpm_contrib/instrumentation/resque.rb +9 -5
- data/lib/rpm_contrib/instrumentation/riak_client.rb +48 -0
- data/lib/rpm_contrib/instrumentation/ripple.rb +37 -0
- data/lib/rpm_contrib/instrumentation/thinking_sphinx.rb +21 -0
- metadata +17 -11
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
* Version 2.1.6
|
2
|
+
Community contributed instrumentation
|
3
|
+
- ThinkingSphinx instrumentation (W. Andrew Loe III)
|
4
|
+
- Riak instrumentation (Bryce Kerley)
|
5
|
+
- KyotoTycoon instrumentation (Keisuke Kawahara)
|
6
|
+
Community Contributed Bug Fixes
|
7
|
+
- MongoDB instrumentation (Kenn Ejima)
|
8
|
+
- Yajl instrumentation (Chris Griego)
|
9
|
+
Renamed ActiveMQ instrumentation to ActiveMessaging (W. Andrew Loe III)
|
10
|
+
|
1
11
|
* Version 2.1.5
|
2
12
|
|
3
13
|
Changed the resque detection so it does not depend on the load
|
@@ -10,7 +20,7 @@
|
|
10
20
|
Converted instrumentation to install with DependencyDetection in the latest Agent
|
11
21
|
Changed Resque instrumentation from a plugin back to method chaining
|
12
22
|
Fixed several reported bugs related to resque
|
13
|
-
|
23
|
+
|
14
24
|
* Version 2.1.3
|
15
25
|
|
16
26
|
Fixed typo in Resque instrumentation
|
@@ -21,7 +31,7 @@
|
|
21
31
|
Add a manual shutdown to the Resque instrumentation to make sure data is saved and sent - thanks to Jade Rubick
|
22
32
|
|
23
33
|
* Version 2.1.1
|
24
|
-
|
34
|
+
|
25
35
|
Fix namespacing problem with Resque
|
26
36
|
Add instrumentation to Mongo::Cursor #refresh and #close - thanks to Chris Griego
|
27
37
|
|
@@ -97,7 +107,7 @@
|
|
97
107
|
MongoDB instrumentation contributed by John Nunemaker
|
98
108
|
|
99
109
|
* Version 1.0.2
|
100
|
-
|
110
|
+
|
101
111
|
Improved Camping support
|
102
112
|
|
103
113
|
* Version 1.0.1
|
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -48,11 +48,11 @@ and examine the `newrelic_agent.log` file for errors after restarting your app.
|
|
48
48
|
A number of frameworks are supported in the contrib gem. They are all turned on
|
49
49
|
by default but you can add settings to your newrelic.yml to disable any of them.
|
50
50
|
|
51
|
-
###
|
51
|
+
### ActiveMessaging
|
52
52
|
|
53
53
|
The gem will detect the underlying ActiveMessaging::Processor class and instrument the `on_message` method
|
54
54
|
|
55
|
-
It can be disabled with the `
|
55
|
+
It can be disabled with the `disable_active_messaging` flag in your newrelic.yml file.
|
56
56
|
|
57
57
|
### Cassandra
|
58
58
|
|
@@ -88,6 +88,12 @@ The gem will instrument ElasticSearch::Client. The metrics should show up in the
|
|
88
88
|
|
89
89
|
You can disable it with `disable_elastic_search_instrumentation` in your newrelic.yml file.
|
90
90
|
|
91
|
+
## KyotoTycoon
|
92
|
+
|
93
|
+
The gem will instrument KyotoTycoon.
|
94
|
+
|
95
|
+
You can disable it with `disable_kyototycoon` in your newrelic.yml file.
|
96
|
+
|
91
97
|
### Paperclip
|
92
98
|
|
93
99
|
No special configuration required for Paperclip visibility.
|
@@ -116,12 +122,33 @@ supports Redis versions 1.x and 2.x.
|
|
116
122
|
|
117
123
|
To disable Redis instrumentation, set 'disable_redis' to true in your newrelic.yml file.
|
118
124
|
|
125
|
+
### Riak
|
126
|
+
|
127
|
+
RiakClient is instrumented. Its opereations are recorded under Database in the
|
128
|
+
the response time graph.
|
129
|
+
|
130
|
+
To disable Riak instrumentation, set 'disable_riak_client' to true in your newrelic.yml file.
|
131
|
+
|
132
|
+
### Ripple
|
133
|
+
|
134
|
+
Ripple is instrumented. Its opereations are recorded under Database in the
|
135
|
+
the response time graph.
|
136
|
+
|
137
|
+
To disable Riak instrumentation, set 'disable_ripple' to true in your newrelic.yml file.
|
138
|
+
|
119
139
|
### Sinatra view instrumentation
|
120
140
|
|
121
141
|
This adds instrumentation to the `render` methods in Sinatra::Base
|
122
142
|
|
123
143
|
You can disable it with `disable_sinatra_template` in your newrelic.yml file.
|
124
144
|
|
145
|
+
### ThinkingSphinx instrumentation
|
146
|
+
|
147
|
+
This adds instrumentation to the `initialize` and `results` method of ThinkingSphinx::Search
|
148
|
+
|
149
|
+
You can disable it with `disable_thinking_sphinx` in your newrelic.yml file.
|
150
|
+
|
151
|
+
|
125
152
|
### Typhoeus instrumentation
|
126
153
|
|
127
154
|
This adds instrumentation to the Typhoeus::Request class for 'GET' requests
|
data/Rakefile
CHANGED
@@ -26,6 +26,7 @@ begin
|
|
26
26
|
gem.add_dependency 'newrelic_rpm', '>=3.1.1'
|
27
27
|
gem.version = version
|
28
28
|
gem.files = FileList['LICENSE', 'README*', 'lib/**/*.rb', 'bin/*', '[A-Z]*', 'test/**/*'].to_a
|
29
|
+
gem.files.exclude *File.read(File.join(File.dirname(__FILE__), '.gitignore')).split
|
29
30
|
gem.rdoc_options <<
|
30
31
|
"--line-numbers" <<
|
31
32
|
"--inline-source" <<
|
@@ -1,16 +1,17 @@
|
|
1
|
-
# ==
|
1
|
+
# == ActiveMessaging Instrumentation ==
|
2
2
|
# Robert R. Meyer
|
3
3
|
# Blue-Dog-Archolite @ GitHub
|
4
4
|
|
5
5
|
DependencyDetection.defer do
|
6
|
-
@name = :
|
6
|
+
@name = :active_messaging
|
7
7
|
|
8
8
|
depends_on do
|
9
|
-
defined?(::ActiveMessaging::Processor) && !NewRelic::Control.instance['
|
9
|
+
defined?(::ActiveMessaging::Processor) && !NewRelic::Control.instance['disable_active_messaging'] &&
|
10
|
+
!NewRelic::Control.instance['disable_active_mq']
|
10
11
|
end
|
11
12
|
|
12
13
|
executes do
|
13
|
-
NewRelic::Agent.logger.debug 'Installing
|
14
|
+
NewRelic::Agent.logger.debug 'Installing ActiveMessaging instrumentation'
|
14
15
|
end
|
15
16
|
|
16
17
|
executes do
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# KyotoTycoon instrumentation
|
2
|
+
|
3
|
+
DependencyDetection.defer do
|
4
|
+
@name = :kyototycoon
|
5
|
+
|
6
|
+
depends_on do
|
7
|
+
defined?(::KyotoTycoon) && !NewRelic::Control.instance['disable_kyototycoon']
|
8
|
+
end
|
9
|
+
|
10
|
+
executes do
|
11
|
+
NewRelic::Agent.logger.debug 'Installing KyotoTycoon instrumentation'
|
12
|
+
end
|
13
|
+
|
14
|
+
executes do
|
15
|
+
::KyotoTycoon.class_eval do
|
16
|
+
require 'new_relic/agent/method_tracer'
|
17
|
+
include NewRelic::Agent::MethodTracer
|
18
|
+
|
19
|
+
[:get, :remove, :set, :add, :replace,
|
20
|
+
:append, :cas, :increment, :decrement, :increment_double,
|
21
|
+
:set_bulk, :get_bulk, :remove_bulk, :clear, :vacuum,
|
22
|
+
:sync, :report, :status, :match_prefix, :match_regex,
|
23
|
+
:keys].each do |method|
|
24
|
+
add_method_tracer method
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -37,8 +37,6 @@ DependencyDetection.defer do
|
|
37
37
|
include NewRelic::Agent::MethodTracer
|
38
38
|
|
39
39
|
def refresh_with_newrelic_trace
|
40
|
-
return if send_initial_query || @cursor_id.zero? # don't double report the initial query
|
41
|
-
|
42
40
|
trace_execution_scoped("Database/#{collection.name}/refresh") do
|
43
41
|
refresh_without_newrelic_trace
|
44
42
|
end
|
@@ -20,11 +20,15 @@ module Resque
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
module RPMContrib
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
module RPMContrib
|
24
|
+
module Instrumentation
|
25
|
+
module ResqueInstrumentationInstaller
|
26
|
+
def payload_class
|
27
|
+
klass = super
|
28
|
+
klass.instance_eval do
|
29
|
+
extend ::Resque::Plugins::NewRelicInstrumentation
|
30
|
+
end
|
31
|
+
end
|
28
32
|
end
|
29
33
|
end
|
30
34
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
DependencyDetection.defer do
|
2
|
+
@name = :riak_client
|
3
|
+
|
4
|
+
depends_on do
|
5
|
+
defined?(::Riak) and not NewRelic::Control.instance['disable_riak_client']
|
6
|
+
end
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Riak client instrumentation'
|
10
|
+
end
|
11
|
+
|
12
|
+
executes do
|
13
|
+
backend_tracers = proc do
|
14
|
+
add_method_tracer :ping, 'Database/Riak/ping'
|
15
|
+
|
16
|
+
add_method_tracer :list_buckets, 'Database/Riak/list_buckets'
|
17
|
+
add_method_tracer :get_bucket_props, 'Database/Riak/get_bucket_props'
|
18
|
+
add_method_tracer :set_bucket_props, 'Database/Riak/set_bucket_props'
|
19
|
+
|
20
|
+
add_method_tracer :mapred, 'Database/Riak/mapred'
|
21
|
+
|
22
|
+
add_method_tracer :list_keys, 'Database/Riak/list_keys'
|
23
|
+
add_method_tracer :fetch_object, 'Database/Riak/fetch_object'
|
24
|
+
add_method_tracer :reload_object, 'Database/Riak/reload_object'
|
25
|
+
add_method_tracer :store_object, 'Database/Riak/store_object'
|
26
|
+
add_method_tracer :delete_object, 'Database/Riak/delete_object'
|
27
|
+
end
|
28
|
+
|
29
|
+
::Riak::Client::BeefcakeProtobuffsBackend.class_eval &backend_tracers
|
30
|
+
::Riak::Client::BeefcakeProtobuffsBackend.class_eval do
|
31
|
+
add_method_tracer :server_info, 'Database/Riak/server_info'
|
32
|
+
add_method_tracer :get_client_id, 'Database/Riak/get_client_id'
|
33
|
+
add_method_tracer :set_client_id, 'Database/Riak/set_client_id'
|
34
|
+
end
|
35
|
+
::Riak::Client::HTTPBackend.class_eval &backend_tracers
|
36
|
+
::Riak::Client::HTTPBackend.class_eval do
|
37
|
+
add_method_tracer :stats, 'Database/Riak/stats'
|
38
|
+
add_method_tracer :link_walk, 'Database/Riak/link_walk'
|
39
|
+
add_method_tracer :get_index, 'Database/Riak/get_index'
|
40
|
+
add_method_tracer :search, 'Database/Riak/search'
|
41
|
+
add_method_tracer :update_search_index, 'Database/Riak/update_search_index'
|
42
|
+
end
|
43
|
+
|
44
|
+
::Riak::RObject.class_eval do
|
45
|
+
add_method_tracer :serialize, 'Database/Riak/serialize'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
DependencyDetection.defer do
|
2
|
+
@name = :ripple
|
3
|
+
|
4
|
+
depends_on do
|
5
|
+
defined?(::Ripple) and not
|
6
|
+
NewRelic::Control.instance['disable_ripple']
|
7
|
+
end
|
8
|
+
|
9
|
+
executes do
|
10
|
+
NewRelic::Agent.logger.debug 'Installing Ripple instrumentation'
|
11
|
+
end
|
12
|
+
|
13
|
+
executes do
|
14
|
+
::Ripple::Callbacks::InstanceMethods.class_eval do
|
15
|
+
add_method_tracer :valid?, 'Database/Riak/Ripple/valid?'
|
16
|
+
end
|
17
|
+
|
18
|
+
::Ripple::Document::Persistence::ClassMethods.class_eval do
|
19
|
+
add_method_tracer :create, 'Database/Riak/Ripple/create'
|
20
|
+
add_method_tracer :destroy_all, 'Database/Riak/Ripple/destroy_all'
|
21
|
+
end
|
22
|
+
|
23
|
+
::Ripple::Document::Persistence::InstanceMethods.class_eval do
|
24
|
+
add_method_tracer :really_save, 'Database/Riak/Ripple/really_save'
|
25
|
+
add_method_tracer :reload, 'Database/Riak/Ripple/reload'
|
26
|
+
add_method_tracer :delete, 'Database/Riak/Ripple/delete'
|
27
|
+
add_method_tracer :destroy, 'Database/Riak/Ripple/destroy'
|
28
|
+
add_method_tracer :update_attribute, 'Database/Riak/Ripple/update_attribute'
|
29
|
+
add_method_tracer :update_attributes, 'Database/Riak/Ripple/update_attributes'
|
30
|
+
end
|
31
|
+
|
32
|
+
::Ripple::Document::Finders::ClassMethods.class_eval do
|
33
|
+
add_method_tracer :find, 'Database/Riak/Ripple/find'
|
34
|
+
add_method_tracer :list, 'Database/Riak/Ripple/list'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
DependencyDetection.defer do
|
2
|
+
@name = :thinking_sphinx
|
3
|
+
|
4
|
+
depends_on do
|
5
|
+
defined?(::ThinkingSphinx) and not ::NewRelic::Control.instance['disable_thinking_sphinx']
|
6
|
+
end
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Thinking Sphinx instrumentation'
|
10
|
+
end
|
11
|
+
|
12
|
+
executes do
|
13
|
+
class ::ThinkingSphinx::Search
|
14
|
+
include NewRelic::Agent::MethodTracer
|
15
|
+
|
16
|
+
add_method_tracer :initialize
|
17
|
+
add_method_tracer :results
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rpm_contrib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.6
|
5
|
-
prerelease:
|
4
|
+
version: 2.1.6
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Bill Kayser
|
@@ -10,12 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
13
|
+
date: 2011-11-08 00:00:00.000000000Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: newrelic_rpm
|
18
|
-
requirement: &
|
17
|
+
requirement: &70329403038300 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
19
|
requirements:
|
21
20
|
- - ! '>='
|
@@ -23,10 +22,10 @@ dependencies:
|
|
23
22
|
version: 3.1.1
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
|
-
version_requirements: *
|
25
|
+
version_requirements: *70329403038300
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: newrelic_rpm
|
29
|
-
requirement: &
|
28
|
+
requirement: &70329403022960 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
30
|
requirements:
|
32
31
|
- - ! '>='
|
@@ -34,7 +33,7 @@ dependencies:
|
|
34
33
|
version: 3.1.1
|
35
34
|
type: :runtime
|
36
35
|
prerelease: false
|
37
|
-
version_requirements: *
|
36
|
+
version_requirements: *70329403022960
|
38
37
|
description: ! 'Community contributed instrumentation for various frameworks based
|
39
38
|
on
|
40
39
|
|
@@ -50,6 +49,7 @@ extra_rdoc_files:
|
|
50
49
|
- README.md
|
51
50
|
files:
|
52
51
|
- CHANGELOG
|
52
|
+
- Gemfile
|
53
53
|
- LICENSE
|
54
54
|
- README.md
|
55
55
|
- Rakefile
|
@@ -59,18 +59,22 @@ files:
|
|
59
59
|
- lib/rpm_contrib/detection.rb
|
60
60
|
- lib/rpm_contrib/detection/camping.rb
|
61
61
|
- lib/rpm_contrib/instrumentation.rb
|
62
|
-
- lib/rpm_contrib/instrumentation/
|
62
|
+
- lib/rpm_contrib/instrumentation/active_messaging.rb
|
63
63
|
- lib/rpm_contrib/instrumentation/aws.rb
|
64
64
|
- lib/rpm_contrib/instrumentation/camping.rb
|
65
65
|
- lib/rpm_contrib/instrumentation/cassandra.rb
|
66
66
|
- lib/rpm_contrib/instrumentation/crack.rb
|
67
67
|
- lib/rpm_contrib/instrumentation/curb.rb
|
68
68
|
- lib/rpm_contrib/instrumentation/elastic_search.rb
|
69
|
+
- lib/rpm_contrib/instrumentation/kyototycoon.rb
|
69
70
|
- lib/rpm_contrib/instrumentation/mongo.rb
|
70
71
|
- lib/rpm_contrib/instrumentation/paperclip.rb
|
71
72
|
- lib/rpm_contrib/instrumentation/redis.rb
|
72
73
|
- lib/rpm_contrib/instrumentation/resque.rb
|
74
|
+
- lib/rpm_contrib/instrumentation/riak_client.rb
|
75
|
+
- lib/rpm_contrib/instrumentation/ripple.rb
|
73
76
|
- lib/rpm_contrib/instrumentation/sinatra.rb
|
77
|
+
- lib/rpm_contrib/instrumentation/thinking_sphinx.rb
|
74
78
|
- lib/rpm_contrib/instrumentation/typhoeus.rb
|
75
79
|
- lib/rpm_contrib/instrumentation/ultrasphinx.rb
|
76
80
|
- lib/rpm_contrib/instrumentation/workling.rb
|
@@ -83,7 +87,6 @@ files:
|
|
83
87
|
- test/test_redis.rb
|
84
88
|
- test/test_resque.rb
|
85
89
|
- test/test_workling.rb
|
86
|
-
has_rdoc: true
|
87
90
|
homepage: http://github.com/newrelic/rpm_contrib
|
88
91
|
licenses: []
|
89
92
|
post_install_message:
|
@@ -102,6 +105,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
105
|
- - ! '>='
|
103
106
|
- !ruby/object:Gem::Version
|
104
107
|
version: '0'
|
108
|
+
segments:
|
109
|
+
- 0
|
110
|
+
hash: -3341867622411034151
|
105
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
112
|
none: false
|
107
113
|
requirements:
|
@@ -110,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
116
|
version: '0'
|
111
117
|
requirements: []
|
112
118
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.
|
119
|
+
rubygems_version: 1.8.10
|
114
120
|
signing_key:
|
115
121
|
specification_version: 3
|
116
122
|
summary: Contributed Instrumentation for New Relic RPM
|