rpm_contrib 2.1.5.beta → 2.1.6.beta1
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 +1 -1
- data/Rakefile +2 -1
- data/lib/rpm_contrib/agent_compatibility.rb +11 -0
- data/lib/rpm_contrib/instrumentation/active_mq.rb +6 -0
- data/lib/rpm_contrib/instrumentation/aws.rb +7 -2
- data/lib/rpm_contrib/instrumentation/cassandra.rb +7 -0
- data/lib/rpm_contrib/instrumentation/crack.rb +14 -2
- data/lib/rpm_contrib/instrumentation/curb.rb +7 -2
- data/lib/rpm_contrib/instrumentation/elastic_search.rb +7 -1
- data/lib/rpm_contrib/instrumentation/mongo.rb +6 -1
- data/lib/rpm_contrib/instrumentation/paperclip.rb +7 -1
- data/lib/rpm_contrib/instrumentation/redis.rb +5 -0
- data/lib/rpm_contrib/instrumentation/resque.rb +36 -36
- data/lib/rpm_contrib/instrumentation/sinatra.rb +8 -2
- data/lib/rpm_contrib/instrumentation/typhoeus.rb +7 -2
- data/lib/rpm_contrib/instrumentation/ultrasphinx.rb +7 -2
- data/lib/rpm_contrib/instrumentation/workling.rb +6 -2
- data/lib/rpm_contrib/instrumentation/yajl.rb +12 -0
- data/lib/rpm_contrib/language_support.rb +28 -0
- data/lib/rpm_contrib.rb +1 -0
- data/test/helper.rb +1 -1
- data/test/test_resque.rb +74 -0
- metadata +45 -53
data/CHANGELOG
CHANGED
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require "bundler/setup"
|
2
3
|
require 'rake'
|
3
4
|
# See http://www.rubygems.org/read/chapter/20
|
4
5
|
|
@@ -21,7 +22,7 @@ begin
|
|
21
22
|
gem.description = DESCRIPTION
|
22
23
|
gem.email = "support@newrelic.com"
|
23
24
|
gem.homepage = "http://github.com/newrelic/rpm_contrib"
|
24
|
-
gem.
|
25
|
+
gem.authors = [ "Bill Kayser", "Jon Guymon" ]
|
25
26
|
gem.add_dependency 'newrelic_rpm', '>=3.1.1'
|
26
27
|
gem.version = version
|
27
28
|
gem.files = FileList['LICENSE', 'README*', 'lib/**/*.rb', 'bin/*', '[A-Z]*', 'test/**/*'].to_a
|
@@ -3,9 +3,15 @@
|
|
3
3
|
# Blue-Dog-Archolite @ GitHub
|
4
4
|
|
5
5
|
DependencyDetection.defer do
|
6
|
+
@name = :active_mq
|
7
|
+
|
6
8
|
depends_on do
|
7
9
|
defined?(::ActiveMessaging::Processor) && !NewRelic::Control.instance['disable_active_mq']
|
8
10
|
end
|
11
|
+
|
12
|
+
executes do
|
13
|
+
NewRelic::Agent.logger.debug 'Installing ActiveMQ instrumentation'
|
14
|
+
end
|
9
15
|
|
10
16
|
executes do
|
11
17
|
::ActiveMessaging::Processor.class_eval do
|
@@ -1,12 +1,17 @@
|
|
1
1
|
# AWS Instrumentation by Brian Doll of New Relic
|
2
2
|
DependencyDetection.defer do
|
3
|
-
|
3
|
+
@name = :aws
|
4
|
+
|
4
5
|
depends_on do
|
5
6
|
defined?(::AWS::S3) && !NewRelic::Control.instance['disable_aws-s3']
|
6
7
|
end
|
7
|
-
|
8
|
+
|
8
9
|
executes do
|
10
|
+
NewRelic::Agent.logger.debug 'Installing AWS instrumentation'
|
11
|
+
end
|
9
12
|
|
13
|
+
|
14
|
+
executes do
|
10
15
|
# Instrument connections to the AWS-S3 service
|
11
16
|
::AWS::S3::Connection::Management::ClassMethods.module_eval do
|
12
17
|
add_method_tracer :establish_connection!, 'AWS-S3/establish_connection!'
|
@@ -1,7 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
+
@name = :cassandra
|
3
|
+
|
2
4
|
depends_on do
|
3
5
|
defined?(::Cassandra) && !NewRelic::Control.instance['disable_cassandra_instrumentation']
|
4
6
|
end
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Cassandra instrumentation'
|
10
|
+
end
|
11
|
+
|
5
12
|
executes do
|
6
13
|
::Cassandra.class_eval do
|
7
14
|
add_method_tracer :insert, 'Database/Cassandra/insert'
|
@@ -1,8 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
+
@name = :crack_json
|
3
|
+
|
2
4
|
depends_on do
|
3
5
|
defined?(::Crack::JSON) && !NewRelic::Control.instance['disable_crack']
|
4
6
|
end
|
5
|
-
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Crack::JSON instrumentation'
|
10
|
+
end
|
11
|
+
|
6
12
|
executes do
|
7
13
|
::Crack::JSON.class_eval do
|
8
14
|
class << self
|
@@ -14,10 +20,16 @@ DependencyDetection.defer do
|
|
14
20
|
end
|
15
21
|
|
16
22
|
DependencyDetection.defer do
|
23
|
+
@name = :crack_xml
|
24
|
+
|
17
25
|
depends_on do
|
18
26
|
defined?(::Crack::XML) && !NewRelic::Control.instance['disable_crack']
|
19
27
|
end
|
20
|
-
|
28
|
+
|
29
|
+
executes do
|
30
|
+
NewRelic::Agent.logger.debug 'Installing Crack::XML instrumentation'
|
31
|
+
end
|
32
|
+
|
21
33
|
executes do
|
22
34
|
::Crack::XML.class_eval do
|
23
35
|
class << self
|
@@ -1,9 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
-
|
2
|
+
@name = :curb
|
3
|
+
|
3
4
|
depends_on do
|
4
5
|
defined?(::Curl) and not NewRelic::Control.instance['disable_curb']
|
5
6
|
end
|
6
|
-
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Curb instrumentation'
|
10
|
+
end
|
11
|
+
|
7
12
|
executes do
|
8
13
|
::Curl::Easy.class_eval do
|
9
14
|
def host
|
@@ -1,10 +1,16 @@
|
|
1
1
|
# == Elastic Search Instrumentation
|
2
2
|
#
|
3
3
|
DependencyDetection.defer do
|
4
|
+
@name = :elastic_search
|
5
|
+
|
4
6
|
depends_on do
|
5
7
|
defined?(::ElasticSearch::Client) && !NewRelic::Control.instance['disable_elastic_search_instrumentation']
|
6
8
|
end
|
7
|
-
|
9
|
+
|
10
|
+
executes do
|
11
|
+
NewRelic::Agent.logger.debug 'Installing Elastic Search instrumentation'
|
12
|
+
end
|
13
|
+
|
8
14
|
executes do
|
9
15
|
::ElasticSearch::Client.class_eval do
|
10
16
|
add_method_tracer :index, 'ActiveRecord/ElasticSearch/index'
|
@@ -1,10 +1,15 @@
|
|
1
1
|
# Mongo Instrumentation contributed by Alexey Palazhchenko
|
2
2
|
DependencyDetection.defer do
|
3
|
-
|
3
|
+
@name = :mongodb
|
4
|
+
|
4
5
|
depends_on do
|
5
6
|
defined?(::Mongo) and not NewRelic::Control.instance['disable_mongodb']
|
6
7
|
end
|
7
8
|
|
9
|
+
executes do
|
10
|
+
NewRelic::Agent.logger.debug 'Installing MongoDB instrumentation'
|
11
|
+
end
|
12
|
+
|
8
13
|
executes do
|
9
14
|
::Mongo::Connection.class_eval do
|
10
15
|
include NewRelic::Agent::MethodTracer
|
@@ -1,8 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
+
@name = :paperclip
|
3
|
+
|
2
4
|
depends_on do
|
3
5
|
defined?(::Paperclip) && !NewRelic::Control.instance['disable_paperclip']
|
4
6
|
end
|
5
|
-
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Paperclip instrumentation'
|
10
|
+
end
|
11
|
+
|
6
12
|
executes do
|
7
13
|
::Paperclip::Attachment.class_eval do
|
8
14
|
add_method_tracer :save, 'Paperclip/#{name}/save'
|
@@ -1,11 +1,16 @@
|
|
1
1
|
# Redis instrumentation contributed by Ashley Martens of ngmoco
|
2
2
|
#
|
3
3
|
DependencyDetection.defer do
|
4
|
+
@name = :redis
|
4
5
|
|
5
6
|
depends_on do
|
6
7
|
defined?(::Redis) && !NewRelic::Control.instance['disable_redis']
|
7
8
|
end
|
8
9
|
|
10
|
+
executes do
|
11
|
+
NewRelic::Agent.logger.debug 'Installing Redis instrumentation'
|
12
|
+
end
|
13
|
+
|
9
14
|
executes do
|
10
15
|
::Redis::Client.class_eval do
|
11
16
|
|
@@ -1,60 +1,60 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'rpm_contrib/language_support'
|
2
|
+
|
3
|
+
module Resque
|
4
|
+
module Plugins
|
5
|
+
module NewRelicInstrumentation
|
6
|
+
include NewRelic::Agent::Instrumentation::ControllerInstrumentation
|
7
|
+
|
8
|
+
def around_perform_with_monitoring(*args)
|
9
|
+
begin
|
10
|
+
perform_action_with_newrelic_trace(:name => 'perform',
|
11
|
+
:class_name => self.name,
|
12
|
+
:category => 'OtherTransaction/ResqueJob') do
|
13
|
+
yield(*args)
|
14
|
+
end
|
15
|
+
ensure
|
16
|
+
NewRelic::Agent.shutdown if RPMContrib::LanguageSupport.can_fork?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
4
20
|
end
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
21
|
+
end
|
22
|
+
|
23
|
+
module RPMContrib::Instrumentation::ResqueInstrumentationInstaller
|
24
|
+
def payload_class
|
25
|
+
klass = super
|
26
|
+
klass.instance_eval do
|
27
|
+
extend ::Resque::Plugins::NewRelicInstrumentation
|
12
28
|
end
|
13
29
|
end
|
14
30
|
end
|
15
31
|
|
16
32
|
DependencyDetection.defer do
|
33
|
+
@name = :resque
|
34
|
+
|
17
35
|
depends_on do
|
18
36
|
defined?(::Resque::Job) and not NewRelic::Control.instance['disable_resque']
|
19
37
|
end
|
20
38
|
|
39
|
+
executes do
|
40
|
+
NewRelic::Agent.logger.debug 'Installing Resque instrumentation'
|
41
|
+
end
|
42
|
+
|
21
43
|
executes do
|
22
44
|
# == Resque Instrumentation
|
23
45
|
#
|
24
46
|
# Installs a hook to ensure the agent starts manually when the worker
|
25
47
|
# starts and also adds the tracer to the process method which executes
|
26
48
|
# in the forked task.
|
27
|
-
|
28
|
-
# Resque also works in a non forking mode when fork is not supported
|
29
|
-
begin
|
30
|
-
# IronRuby/JRuby don't support `Kernel.fork` yet
|
31
|
-
if Kernel.respond_to?(:fork)
|
32
|
-
Kernel.fork{exit!}
|
33
|
-
else
|
34
|
-
raise NotImplementedError
|
35
|
-
end
|
36
|
-
rescue NotImplementedError
|
37
|
-
$rpm_cant_fork = true
|
38
|
-
end
|
39
|
-
|
40
49
|
::Resque::Job.class_eval do
|
41
|
-
|
42
|
-
|
43
|
-
define_method(:perform) do
|
44
|
-
class_name = (payload_class ||self.class).name
|
45
|
-
perform_action_with_newrelic_trace(:name => 'perform', :class_name => class_name,
|
46
|
-
:category => 'OtherTransaction/ResqueJob') do
|
47
|
-
old_perform_method.bind(self).call
|
48
|
-
end
|
49
|
-
# If we aren't doing true forks, then the shutdown message would end up
|
50
|
-
# shutting down the agent in the parent which would cause us to stop sending
|
51
|
-
# data. Data is not sent from the child.
|
52
|
-
NewRelic::Agent.shutdown unless $rpm_cant_fork
|
50
|
+
def self.new(*args)
|
51
|
+
super(*args).extend RPMContrib::Instrumentation::ResqueInstrumentationInstaller
|
53
52
|
end
|
54
53
|
end
|
55
54
|
|
56
55
|
::Resque.before_first_fork do
|
57
|
-
NewRelic::Agent.manual_start(:dispatcher => :resque,
|
56
|
+
NewRelic::Agent.manual_start(:dispatcher => :resque,
|
57
|
+
:sync_startup => true)
|
58
58
|
end
|
59
59
|
|
60
60
|
::Resque.after_fork do
|
@@ -1,8 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
+
@name = :sinatra_view
|
3
|
+
|
2
4
|
depends_on do
|
3
5
|
defined?(::Sinatra::Base) and not NewRelic::Control.instance['disable_sinatra_template']
|
4
6
|
end
|
5
|
-
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Sinatra view instrumentation'
|
10
|
+
end
|
11
|
+
|
6
12
|
executes do
|
7
13
|
::Sinatra::Base.class_eval do
|
8
14
|
def render_with_newrelic_trace(*args, &block)
|
@@ -10,7 +16,7 @@ DependencyDetection.defer do
|
|
10
16
|
return render_without_newrelic_trace(*args, &block) if file == "= yield"
|
11
17
|
|
12
18
|
file = "Proc" if file.is_a?(Proc)
|
13
|
-
metrics = ["
|
19
|
+
metrics = ["View/#{engine}/#{file}/Rendering"]
|
14
20
|
|
15
21
|
self.class.trace_execution_scoped metrics do
|
16
22
|
render_without_newrelic_trace(*args, &block)
|
@@ -1,9 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
-
|
2
|
+
@name = :typhoeus
|
3
|
+
|
3
4
|
depends_on do
|
4
5
|
defined?(::Typhoeus) and not ::NewRelic::Control.instance['disable_typhoeus']
|
5
6
|
end
|
6
|
-
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Typhoeus instrumentation'
|
10
|
+
end
|
11
|
+
|
7
12
|
executes do
|
8
13
|
require 'uri'
|
9
14
|
::Typhoeus::Request.instance_eval do
|
@@ -1,9 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
-
|
2
|
+
@name = :ultrasphinx
|
3
|
+
|
3
4
|
depends_on do
|
4
5
|
defined?(::Ultrasphinx) and not ::NewRelic::Control.instance['disable_ultrasphinx']
|
5
6
|
end
|
6
|
-
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Ultrasphinx instrumentation'
|
10
|
+
end
|
11
|
+
|
7
12
|
executes do
|
8
13
|
class ::Ultrasphinx::Search
|
9
14
|
include NewRelic::Agent::MethodTracer
|
@@ -1,13 +1,17 @@
|
|
1
1
|
# Workling instrumentation contributed by Chad Ingram of Aurora Feint
|
2
2
|
#
|
3
3
|
DependencyDetection.defer do
|
4
|
-
|
4
|
+
@name = :workling
|
5
|
+
|
5
6
|
depends_on do
|
6
7
|
defined?(::Workling) and not ::NewRelic::Control.instance['disable_workling']
|
7
8
|
end
|
8
9
|
|
9
10
|
executes do
|
10
|
-
|
11
|
+
NewRelic::Agent.logger.debug 'Installing Workling instrumentation'
|
12
|
+
end
|
13
|
+
|
14
|
+
executes do
|
11
15
|
::Workling::Base.class_eval do
|
12
16
|
include ::NewRelic::Agent::Instrumentation::ControllerInstrumentation
|
13
17
|
end
|
@@ -1,8 +1,14 @@
|
|
1
1
|
DependencyDetection.defer do
|
2
|
+
@name = :yajl_parser
|
3
|
+
|
2
4
|
depends_on do
|
3
5
|
defined?(::Yajl::Parser) && !NewRelic::Control.instance['disable_yajl_instrumentation']
|
4
6
|
end
|
5
7
|
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Yajl::Parser instrumentation'
|
10
|
+
end
|
11
|
+
|
6
12
|
executes do
|
7
13
|
::Yajl::Parser.class_eval do
|
8
14
|
class << self
|
@@ -14,10 +20,16 @@ DependencyDetection.defer do
|
|
14
20
|
end
|
15
21
|
|
16
22
|
DependencyDetection.defer do
|
23
|
+
@name = :yajl_encoder
|
24
|
+
|
17
25
|
depends_on do
|
18
26
|
defined?(::Yajl::Encoder) && !NewRelic::Control.instance['disable_yajl_instrumentation']
|
19
27
|
end
|
20
28
|
|
29
|
+
executes do
|
30
|
+
NewRelic::Agent.logger.debug 'Installing Yajl::Encoder instrumentation'
|
31
|
+
end
|
32
|
+
|
21
33
|
executes do
|
22
34
|
::Yajl::Encoder.class_eval do
|
23
35
|
class << self
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module RPMContrib::LanguageSupport
|
2
|
+
extend self
|
3
|
+
|
4
|
+
@@forkable = nil
|
5
|
+
|
6
|
+
def can_fork?
|
7
|
+
# this is expensive to check, so we should only check once
|
8
|
+
return @@forkable if @@forkable != nil
|
9
|
+
|
10
|
+
if Process.respond_to?(:fork)
|
11
|
+
# if this is not 1.9.2 or higher, we have to make sure
|
12
|
+
@@forkable = ::RUBY_VERSION < '1.9.2' ? test_forkability : true
|
13
|
+
else
|
14
|
+
@@forkable = false
|
15
|
+
end
|
16
|
+
|
17
|
+
@@forkable
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def test_forkability
|
23
|
+
Process.fork { exit! }
|
24
|
+
true
|
25
|
+
rescue NotImplementedError
|
26
|
+
false
|
27
|
+
end
|
28
|
+
end
|
data/lib/rpm_contrib.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'test/unit'
|
3
3
|
|
4
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
|
-
|
5
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
6
|
|
7
7
|
require File.expand_path("../../lib/rpm_contrib.rb", __FILE__)
|
8
8
|
|
data/test/test_resque.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'resque'
|
2
|
+
require 'mocha'
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + "/helper")
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/rpm_contrib")
|
5
|
+
|
6
|
+
class ResqueTest < Test::Unit::TestCase
|
7
|
+
class ExtendoJorb < ::Resque::Job
|
8
|
+
def self.perform
|
9
|
+
true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class GoodJorb
|
14
|
+
def self.perform
|
15
|
+
true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class BadJorb
|
20
|
+
def self.perform
|
21
|
+
raise "I'm doing a bad jorb"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup
|
26
|
+
@worker = Resque::Worker.new(:test)
|
27
|
+
NewRelic::Agent.manual_start
|
28
|
+
@engine = NewRelic::Agent.instance.stats_engine
|
29
|
+
end
|
30
|
+
|
31
|
+
def teardown
|
32
|
+
@engine.clear_stats
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_should_instrument_job_extending_from_resque_job
|
36
|
+
@worker.perform(Resque::Job.new(:test,
|
37
|
+
'class' => 'ResqueTest::ExtendoJorb'))
|
38
|
+
|
39
|
+
metrics = [ 'OtherTransaction/all', 'OtherTransaction/ResqueJob/all',
|
40
|
+
'OtherTransaction/ResqueJob/ResqueTest::ExtendoJorb/perform' ]
|
41
|
+
metrics.each do |metric|
|
42
|
+
assert(@engine.metrics.include?(metric),
|
43
|
+
"#{@engine.metrics.inspect} missing #{metric}")
|
44
|
+
end
|
45
|
+
assert !@engine.metrics.include?('Errors/all')
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_should_instrument_poro_job
|
49
|
+
@worker.perform(Resque::Job.new(:test, 'class' => 'ResqueTest::GoodJorb'))
|
50
|
+
|
51
|
+
metrics = [ 'OtherTransaction/all', 'OtherTransaction/ResqueJob/all',
|
52
|
+
'OtherTransaction/ResqueJob/ResqueTest::GoodJorb/perform' ]
|
53
|
+
metrics.each do |metric|
|
54
|
+
assert(@engine.metrics.include?(metric),
|
55
|
+
"#{@engine.metrics.inspect} missing #{metric}")
|
56
|
+
end
|
57
|
+
assert !@engine.metrics.include?('Errors/all')
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_should_collect_job_errors
|
61
|
+
begin
|
62
|
+
@worker.perform(Resque::Job.new(:test, 'class' => 'ResqueTest::BadJorb'))
|
63
|
+
rescue
|
64
|
+
end
|
65
|
+
|
66
|
+
metrics = [ 'OtherTransaction/all', 'OtherTransaction/ResqueJob/all',
|
67
|
+
'OtherTransaction/ResqueJob/ResqueTest::BadJorb/perform',
|
68
|
+
'Errors/all' ]
|
69
|
+
metrics.each do |metric|
|
70
|
+
assert(@engine.metrics.include?(metric),
|
71
|
+
"#{@engine.metrics.inspect} missing #{metric}")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
metadata
CHANGED
@@ -1,60 +1,61 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rpm_contrib
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.6.beta1
|
5
5
|
prerelease: 6
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 1
|
9
|
-
- 5
|
10
|
-
- beta
|
11
|
-
version: 2.1.5.beta
|
12
6
|
platform: ruby
|
13
|
-
authors:
|
7
|
+
authors:
|
14
8
|
- Bill Kayser
|
9
|
+
- Jon Guymon
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
date: 2011-09-08 00:00:00 -07:00
|
13
|
+
date: 2011-09-23 00:00:00.000000000 -07:00
|
20
14
|
default_executable:
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
23
17
|
name: newrelic_rpm
|
18
|
+
requirement: &2153791500 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 3.1.1
|
24
|
+
type: :runtime
|
24
25
|
prerelease: false
|
25
|
-
|
26
|
+
version_requirements: *2153791500
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: newrelic_rpm
|
29
|
+
requirement: &2153790140 !ruby/object:Gem::Requirement
|
26
30
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 1
|
31
|
-
segments:
|
32
|
-
- 3
|
33
|
-
- 1
|
34
|
-
- 1
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
35
34
|
version: 3.1.1
|
36
35
|
type: :runtime
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *2153790140
|
38
|
+
description: ! 'Community contributed instrumentation for various frameworks based
|
39
|
+
on
|
40
|
+
|
40
41
|
the New Relic Ruby monitoring gem newrelic_rpm.
|
41
42
|
|
43
|
+
'
|
42
44
|
email: support@newrelic.com
|
43
45
|
executables: []
|
44
|
-
|
45
46
|
extensions: []
|
46
|
-
|
47
|
-
extra_rdoc_files:
|
47
|
+
extra_rdoc_files:
|
48
48
|
- CHANGELOG
|
49
49
|
- LICENSE
|
50
50
|
- README.md
|
51
|
-
files:
|
51
|
+
files:
|
52
52
|
- CHANGELOG
|
53
53
|
- LICENSE
|
54
54
|
- README.md
|
55
55
|
- Rakefile
|
56
56
|
- lib/new_relic/control/camping.rb
|
57
57
|
- lib/rpm_contrib.rb
|
58
|
+
- lib/rpm_contrib/agent_compatibility.rb
|
58
59
|
- lib/rpm_contrib/detection.rb
|
59
60
|
- lib/rpm_contrib/detection/camping.rb
|
60
61
|
- lib/rpm_contrib/instrumentation.rb
|
@@ -74,52 +75,43 @@ files:
|
|
74
75
|
- lib/rpm_contrib/instrumentation/ultrasphinx.rb
|
75
76
|
- lib/rpm_contrib/instrumentation/workling.rb
|
76
77
|
- lib/rpm_contrib/instrumentation/yajl.rb
|
78
|
+
- lib/rpm_contrib/language_support.rb
|
77
79
|
- lib/rpm_contrib/samplers.rb
|
78
80
|
- test/helper.rb
|
79
81
|
- test/schema.rb
|
80
82
|
- test/test_curb.rb
|
81
83
|
- test/test_redis.rb
|
84
|
+
- test/test_resque.rb
|
82
85
|
- test/test_workling.rb
|
83
86
|
has_rdoc: true
|
84
87
|
homepage: http://github.com/newrelic/rpm_contrib
|
85
88
|
licenses: []
|
86
|
-
|
87
89
|
post_install_message:
|
88
|
-
rdoc_options:
|
90
|
+
rdoc_options:
|
89
91
|
- --line-numbers
|
90
92
|
- --inline-source
|
91
93
|
- --title
|
92
94
|
- Contributed Instrumentation for New Relic RPM
|
93
95
|
- -m
|
94
96
|
- README.md
|
95
|
-
require_paths:
|
97
|
+
require_paths:
|
96
98
|
- lib
|
97
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
100
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
|
104
|
-
- 0
|
105
|
-
version: "0"
|
106
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ! '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
106
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
|
112
|
-
segments:
|
113
|
-
- 1
|
114
|
-
- 3
|
115
|
-
- 1
|
116
|
-
version: 1.3.1
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
117
111
|
requirements: []
|
118
|
-
|
119
112
|
rubyforge_project:
|
120
113
|
rubygems_version: 1.6.2
|
121
114
|
signing_key:
|
122
115
|
specification_version: 3
|
123
116
|
summary: Contributed Instrumentation for New Relic RPM
|
124
117
|
test_files: []
|
125
|
-
|