wireframe-rpm_contrib 2.1.6.2 → 2.1.8.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,9 +1,25 @@
1
- * Version 2.1.6.2
1
+ * Version 2.1.8.1
2
2
 
3
3
  Add instrumentation for Backgrounded Resque Job Processing Framework (Ryan
4
4
  Sonnek)
5
5
 
6
+ * Version 2.1.8
7
+ - Removed redis instrumenation in favor of https://github.com/evanphx/newrelic-redis
8
+ - [FIX] adding check for aws-sdk (Tom Caspy)
9
+ - Improved Mongo instrumenation from pull request #16 titanous/mongoid-instrumentation
10
+
11
+ * Version 2.1.7
12
+
13
+ Community contributed instrumentation
14
+ - ThinkingSphinx instrumentation improvement (Martin Sarsale)
15
+ - Picky search engine instrumentation (Niko Dittmann)
16
+ Community Contributed Bug Fixes
17
+ - Fix instrumentation injection for ActiveMessaging (W. Andrew Loe III)
18
+ Other
19
+ - Improvements to resque instrumentation detection of if its in a forking ruby implementation
20
+
6
21
  * Version 2.1.6
22
+
7
23
  Community contributed instrumentation
8
24
  - ThinkingSphinx instrumentation (W. Andrew Loe III)
9
25
  - Riak instrumentation (Bryce Kerley)
@@ -12,7 +28,7 @@
12
28
  - MongoDB instrumentation (Kenn Ejima)
13
29
  - Yajl instrumentation (Chris Griego)
14
30
  - UltraSphinx instrumentation (Jonathan Rudenberg)
15
- Renamed ActiveMQ instrumentation to ActiveMessaging (W. Andrew Loe III)
31
+ - Renamed ActiveMQ instrumentation to ActiveMessaging (W. Andrew Loe III)
16
32
 
17
33
  * Version 2.1.5
18
34
 
data/README.md CHANGED
@@ -3,6 +3,46 @@
3
3
  The `rpm_contrib` gem contains instrumentation for the New Relic RPM agent
4
4
  contributed by the community of RPM users. It requires the RPM Agent to run.
5
5
 
6
+ ## Deprecation of RPM Contrib
7
+
8
+ Over the next several months we are planning to phase out the rpm_contrib gem.
9
+ We plan to migrate the existing instrumentation into separate projects that
10
+ instrument indivdual libraries or frameworks. We see this as having a number of
11
+ advantages for newrelic users. We will provide a list of recommended
12
+ instrumentation projects.
13
+
14
+ ### Removal of Redis Instrumenation
15
+
16
+ As of version 2.1.8 Redis instrumentation has been removed from rpm_contrib.
17
+ Please use Evan Phoenix's `newrelic-redis` gem instead.
18
+ https://github.com/evanphx/newrelic-redis
19
+
20
+ ### Request for Maintainers
21
+
22
+ If you're interested in maintaining instrumentation for a specific
23
+ library/framework, please let us know. We'd love to work with you and promote
24
+ your project. -The New Relic Ruby Agent Team
25
+
26
+ ## New Relic Ruby Agent Plugins
27
+
28
+ Here is a list of instrumentation projects for various Ruby libraries:
29
+
30
+ #### Redis
31
+
32
+ As of version 2.1.8 Redis instrumentation has been removed from rpm_contrib.
33
+ Please use Evan Phoenix's `newrelic-redis` gem instead.
34
+
35
+ https://github.com/evanphx/newrelic-redis
36
+
37
+ #### Faraday
38
+
39
+ Instrumentation for the HTTP client library Faraday is available at:
40
+
41
+ https://github.com/Viximo/newrelic-faraday
42
+
43
+
44
+ ## Getting Started
45
+
6
46
  To use the rpm_contrib gem, install the `rpm_contrib` gem from rubygems.org.
7
47
  It will also install the required version of the `newrelic_rpm` gem if it's not
8
48
  already installed.
@@ -23,9 +63,6 @@ require the rpm_contrib gem:
23
63
  require 'rubygems'
24
64
  require 'rpm_contrib'
25
65
 
26
- When you load the rpm_contrib gem, the `newrelic_rpm` gem will also be
27
- initialized. No need for a separate require statement for `newrelic_rpm`.
28
-
29
66
  In non-Rails frameworks, it's important that the New Relic Agent gets
30
67
  loaded as late as possible, or that the final initialization hook is called
31
68
  after all other frameworks have loaded:
@@ -43,6 +80,7 @@ fix the auto-detection logic.
43
80
  If this does not help then set the `log_level` to `debug` in the `newrelic.yml` file
44
81
  and examine the `newrelic_agent.log` file for errors after restarting your app.
45
82
 
83
+
46
84
  ## Supported Frameworks
47
85
 
48
86
  A number of frameworks are supported in the contrib gem. They are all turned on
@@ -82,13 +120,13 @@ The gem will instrument both Curl::Easy and Curl::Multi - they should show up si
82
120
 
83
121
  You can disable it with `disable_curb` in your newrelic.yml file.
84
122
 
85
- ## Elastic Search
123
+ ### Elastic Search
86
124
 
87
125
  The gem will instrument ElasticSearch::Client. The metrics should show up in the UI
88
126
 
89
127
  You can disable it with `disable_elastic_search_instrumentation` in your newrelic.yml file.
90
128
 
91
- ## KyotoTycoon
129
+ ### KyotoTycoon
92
130
 
93
131
  The gem will instrument KyotoTycoon.
94
132
 
@@ -122,11 +160,10 @@ To disable resque, set 'disable_resque' to true in your newrelic.yml file.
122
160
 
123
161
  ### Redis
124
162
 
125
- Redis instrumentation will record operations as well as `allWeb` and `allOther`
126
- summary metrics under the `Database/Redis` metric namespace. This instrumentation
127
- supports Redis versions 1.x and 2.x.
163
+ Redis instrumentation has been removed from rpm_contrib.
128
164
 
129
- To disable Redis instrumentation, set 'disable_redis' to true in your newrelic.yml file.
165
+ Please use Evan Phoenix's `newrelic-redis` gem instead.
166
+ https://github.com/evanphx/newrelic-redis
130
167
 
131
168
  ### Riak
132
169
 
@@ -13,8 +13,14 @@ DependencyDetection.defer do
13
13
 
14
14
  executes do
15
15
  # Instrument connections to the AWS-S3 service
16
- ::AWS::S3::Connection::Management::ClassMethods.module_eval do
17
- add_method_tracer :establish_connection!, 'AWS-S3/establish_connection!'
16
+ if defined?(::AWS::S3::Connection)
17
+ ::AWS::S3::Connection::Management::ClassMethods.module_eval do
18
+ add_method_tracer :establish_connection!, 'AWS-S3/establish_connection!'
19
+ end
20
+ else #using aws-sdk
21
+ ::AWS::S3.class_eval do
22
+ add_method_tracer :initialize, 'AWS-S3/establish_connection!'
23
+ end
18
24
  end
19
25
 
20
26
  # Instrument methods on Bucket
@@ -18,7 +18,7 @@ DependencyDetection.defer do
18
18
  @name = :picky
19
19
 
20
20
  depends_on do
21
- defined?(::Picky) && !NewRelic::Control.instance['disable_picky']
21
+ defined?(::Picky::Search) && !NewRelic::Control.instance['disable_picky']
22
22
  end
23
23
 
24
24
  executes do
@@ -38,4 +38,4 @@ DependencyDetection.defer do
38
38
  alias_method :execute, :execute_with_newrelic_trace
39
39
  end
40
40
  end
41
- end
41
+ end
@@ -11,7 +11,8 @@ DependencyDetection.defer do
11
11
  end
12
12
 
13
13
  executes do
14
- ::Ripple::Callbacks::InstanceMethods.class_eval do
14
+ (defined?(::Ripple::Callbacks::InstanceMethods) ?
15
+ ::Ripple::Callbacks::InstanceMethods : ::Ripple::Callbacks).class_eval do
15
16
  add_method_tracer :valid?, 'Database/Riak/Ripple/valid?'
16
17
  end
17
18
 
@@ -20,11 +21,12 @@ DependencyDetection.defer do
20
21
  add_method_tracer :destroy_all, 'Database/Riak/Ripple/destroy_all'
21
22
  end
22
23
 
23
- ::Ripple::Document::Persistence::InstanceMethods.class_eval do
24
+
25
+ (defined?(::Ripple::Document::Persistence::InstanceMethods) ?
26
+ ::Ripple::Document::Persistence::InstanceMethods : ::Ripple::Document::Persistence).class_eval do
24
27
  add_method_tracer :really_save, 'Database/Riak/Ripple/really_save'
25
28
  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'
29
+ add_method_tracer :destroy!, 'Database/Riak/Ripple/destroy'
28
30
  add_method_tracer :update_attribute, 'Database/Riak/Ripple/update_attribute'
29
31
  add_method_tracer :update_attributes, 'Database/Riak/Ripple/update_attributes'
30
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wireframe-rpm_contrib
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.6.2
4
+ version: 2.1.8.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-06 00:00:00.000000000 Z
13
+ date: 2012-04-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: newrelic_rpm
17
- requirement: &2153526980 !ruby/object:Gem::Requirement
17
+ requirement: &2156658320 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 3.1.1
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2153526980
25
+ version_requirements: *2156658320
26
26
  description: ! 'Community contributed instrumentation for various frameworks based
27
27
  on
28
28
 
@@ -60,7 +60,6 @@ files:
60
60
  - lib/rpm_contrib/instrumentation/mongoid.rb
61
61
  - lib/rpm_contrib/instrumentation/paperclip.rb
62
62
  - lib/rpm_contrib/instrumentation/picky.rb
63
- - lib/rpm_contrib/instrumentation/redis.rb
64
63
  - lib/rpm_contrib/instrumentation/resque.rb
65
64
  - lib/rpm_contrib/instrumentation/riak_client.rb
66
65
  - lib/rpm_contrib/instrumentation/ripple.rb
@@ -76,7 +75,6 @@ files:
76
75
  - test/schema.rb
77
76
  - test/test_curb.rb
78
77
  - test/test_picky.rb
79
- - test/test_redis.rb
80
78
  - test/test_resque.rb
81
79
  - test/test_workling.rb
82
80
  homepage: http://github.com/newrelic/rpm_contrib
@@ -99,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
97
  version: '0'
100
98
  segments:
101
99
  - 0
102
- hash: -722698460256660614
100
+ hash: -645573489236863710
103
101
  required_rubygems_version: !ruby/object:Gem::Requirement
104
102
  none: false
105
103
  requirements:
@@ -1,42 +0,0 @@
1
- # Redis instrumentation contributed by Ashley Martens of ngmoco
2
- #
3
- DependencyDetection.defer do
4
- @name = :redis
5
-
6
- depends_on do
7
- defined?(::Redis) && !NewRelic::Control.instance['disable_redis']
8
- end
9
-
10
- executes do
11
- NewRelic::Agent.logger.debug 'Installing Redis instrumentation'
12
- end
13
-
14
- executes do
15
- ::Redis::Client.class_eval do
16
-
17
- include NewRelic::Agent::MethodTracer
18
-
19
- def self.redis_call_method
20
- ::Redis::Client.new.respond_to?(:call) ? :call : :raw_call_command
21
- end
22
-
23
-
24
- def raw_call_command_with_newrelic_trace *args
25
- method_name = args[0].is_a?(Array) ? args[0][0] : args[0]
26
- metrics = ["Database/Redis/#{method_name}",
27
- (NewRelic::Agent::Instrumentation::MetricFrame.recording_web_transaction? ? 'Database/Redis/allWeb' : 'Database/Redis/allOther')]
28
- self.class.trace_execution_scoped(metrics) do
29
- # NewRelic::Control.instance.log.debug("Instrumenting Redis Call[#{method_name}]: #{args[0].inspect}")
30
- raw_call_command_without_newrelic_trace(*args)
31
- end
32
- end
33
-
34
- alias_method :raw_call_command_without_newrelic_trace, redis_call_method
35
- alias_method redis_call_method, :raw_call_command_with_newrelic_trace
36
-
37
- end
38
- end
39
- end
40
-
41
-
42
-
@@ -1,34 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/helper"
2
- begin
3
- require 'redis'
4
- require 'ruby-debug'
5
- rescue LoadError
6
- end
7
-
8
- require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/redis"
9
-
10
- if defined?(::Redis)
11
-
12
-
13
- class RedisTest < Test::Unit::TestCase
14
-
15
- # Called before every test method runs. Can be used
16
- # to set up fixture information.
17
- def setup
18
- # Do nothing
19
- end
20
-
21
- # Called after every test method runs. Can be used to tear
22
- # down fixture information.
23
-
24
- def teardown
25
- # Do nothing
26
- end
27
-
28
- # Fake test
29
- def test_fail
30
-
31
-
32
- end
33
- end
34
- end