wireframe-rpm_contrib 1.0.12.7 → 2.1.6.1
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 +69 -3
- data/Gemfile +13 -0
- data/README.md +137 -14
- data/Rakefile +5 -3
- data/lib/rpm_contrib.rb +17 -24
- data/lib/rpm_contrib/agent_compatibility.rb +11 -0
- data/lib/rpm_contrib/detection.rb +5 -0
- data/lib/rpm_contrib/detection/camping.rb +1 -1
- data/lib/rpm_contrib/instrumentation.rb +16 -0
- data/lib/rpm_contrib/instrumentation/active_messaging.rb +22 -0
- data/lib/rpm_contrib/instrumentation/aws.rb +68 -0
- data/lib/rpm_contrib/instrumentation/camping.rb +7 -10
- data/lib/rpm_contrib/instrumentation/cassandra.rb +26 -19
- data/lib/rpm_contrib/instrumentation/crack.rb +41 -0
- data/lib/rpm_contrib/instrumentation/curb.rb +52 -0
- data/lib/rpm_contrib/instrumentation/elastic_search.rb +26 -0
- data/lib/rpm_contrib/instrumentation/kyototycoon.rb +28 -0
- data/lib/rpm_contrib/instrumentation/mongo.rb +54 -0
- data/lib/rpm_contrib/instrumentation/mongoid.rb +12 -44
- data/lib/rpm_contrib/instrumentation/paperclip.rb +25 -18
- data/lib/rpm_contrib/instrumentation/picky.rb +41 -0
- data/lib/rpm_contrib/instrumentation/redis.rb +29 -20
- data/lib/rpm_contrib/instrumentation/resque.rb +78 -42
- data/lib/rpm_contrib/instrumentation/riak_client.rb +48 -0
- data/lib/rpm_contrib/instrumentation/ripple.rb +37 -0
- data/lib/rpm_contrib/instrumentation/sinatra.rb +30 -0
- data/lib/rpm_contrib/instrumentation/thinking_sphinx.rb +22 -0
- data/lib/rpm_contrib/instrumentation/typhoeus.rb +33 -0
- data/lib/rpm_contrib/instrumentation/ultrasphinx.rb +22 -0
- data/lib/rpm_contrib/instrumentation/workling.rb +27 -0
- data/lib/rpm_contrib/instrumentation/yajl.rb +41 -0
- data/lib/rpm_contrib/language_support.rb +31 -0
- data/lib/rpm_contrib/samplers.rb +17 -0
- data/test/helper.rb +1 -1
- data/test/schema.rb +1 -1
- data/test/test_curb.rb +69 -0
- data/test/test_picky.rb +55 -0
- data/test/test_redis.rb +2 -2
- data/test/test_resque.rb +74 -0
- data/test/{test_mongoid.rb → test_workling.rb} +6 -14
- metadata +74 -64
- data/lib/rpm_contrib/detection/resque.rb +0 -15
- data/lib/rpm_contrib/instrumentation/aws/s3.rb +0 -56
- data/lib/rpm_contrib/instrumentation/mongo_mapper.rb +0 -44
@@ -0,0 +1,41 @@
|
|
1
|
+
DependencyDetection.defer do
|
2
|
+
@name = :yajl_parser
|
3
|
+
|
4
|
+
depends_on do
|
5
|
+
defined?(::Yajl::Parser) && !NewRelic::Control.instance['disable_yajl_instrumentation']
|
6
|
+
end
|
7
|
+
|
8
|
+
executes do
|
9
|
+
NewRelic::Agent.logger.debug 'Installing Yajl::Parser instrumentation'
|
10
|
+
end
|
11
|
+
|
12
|
+
executes do
|
13
|
+
::Yajl::Parser.class_eval do
|
14
|
+
class << self
|
15
|
+
include ::NewRelic::Agent::MethodTracer
|
16
|
+
add_method_tracer :parse, 'Parser/Yajl/parse'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
DependencyDetection.defer do
|
23
|
+
@name = :yajl_encoder
|
24
|
+
|
25
|
+
depends_on do
|
26
|
+
defined?(::Yajl::Encoder) && !NewRelic::Control.instance['disable_yajl_instrumentation']
|
27
|
+
end
|
28
|
+
|
29
|
+
executes do
|
30
|
+
NewRelic::Agent.logger.debug 'Installing Yajl::Encoder instrumentation'
|
31
|
+
end
|
32
|
+
|
33
|
+
executes do
|
34
|
+
::Yajl::Encoder.class_eval do
|
35
|
+
class << self
|
36
|
+
include ::NewRelic::Agent::MethodTracer
|
37
|
+
add_method_tracer :encode, 'Encoder/Yajl/encode'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,31 @@
|
|
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
|
+
child = Process.fork { exit! }
|
24
|
+
# calling wait here doesn't seem like it should necessary, but it seems to
|
25
|
+
# resolve some weird edge cases with resque forking.
|
26
|
+
Process.wait child
|
27
|
+
true
|
28
|
+
rescue NotImplementedError
|
29
|
+
false
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module RpmContrib
|
2
|
+
# Samplers are subclasses of NewRelic::Agent::Sampler which periodically collect metric data in a
|
3
|
+
# background thread. Sampler classes belong in the sampler subdirectory and must be loaded before
|
4
|
+
# the agent starts.
|
5
|
+
module Samplers
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
pattern = File.expand_path "../samplers/**/*.rb", __FILE__
|
10
|
+
Dir.glob pattern do |file|
|
11
|
+
begin
|
12
|
+
require file.to_s
|
13
|
+
rescue Exception => e
|
14
|
+
NewRelic::Agent.logger.error "Skipping instrumentation file '#{file}': #{e}"
|
15
|
+
NewRelic::Agent.logger.debug e.backtrace.join("\n")
|
16
|
+
end
|
17
|
+
end
|
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/schema.rb
CHANGED
data/test/test_curb.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require "#{File.dirname(__FILE__)}/helper"
|
2
|
+
begin
|
3
|
+
require 'curb'
|
4
|
+
rescue LoadError
|
5
|
+
end
|
6
|
+
|
7
|
+
class NewRelic::Agent::NetInstrumentationTest < Test::Unit::TestCase
|
8
|
+
include NewRelic::Agent::Instrumentation::ControllerInstrumentation
|
9
|
+
def setup
|
10
|
+
NewRelic::Agent.manual_start
|
11
|
+
@engine = NewRelic::Agent.instance.stats_engine
|
12
|
+
@engine.clear_stats
|
13
|
+
end
|
14
|
+
def test_get
|
15
|
+
curl = Curl::Easy.new('http://www.google.com/index.html')
|
16
|
+
curl.perform
|
17
|
+
assert_match /<head>/, curl.body_str
|
18
|
+
assert_equal %w[External/www.google.com/Curl::Easy External/Curl::Multi
|
19
|
+
External/allOther External/www.google.com/all].sort,
|
20
|
+
@engine.metrics.sort
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_multi
|
24
|
+
multi = Curl::Multi.new
|
25
|
+
curl1 = Curl::Easy.new('http://www.google.com/index.html')
|
26
|
+
multi.add curl1
|
27
|
+
curl2 = Curl::Easy.new('http://www.yahoo.com/')
|
28
|
+
multi.add curl2
|
29
|
+
multi.perform
|
30
|
+
assert_match /<head>/, curl1.body_str
|
31
|
+
assert_match /<head>/, curl2.body_str
|
32
|
+
assert_equal %w[External/Curl::Multi External/allOther].sort,
|
33
|
+
@engine.metrics.sort
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_background
|
37
|
+
perform_action_with_newrelic_trace("task", :category => :task) do
|
38
|
+
curl = Curl::Easy.new('http://www.google.com/index.html')
|
39
|
+
curl.perform
|
40
|
+
assert_match /<head>/, curl.body_str
|
41
|
+
end
|
42
|
+
assert_equal %w[External/Curl::Multi
|
43
|
+
External/Curl::Multi:OtherTransaction/Background/NewRelic::Agent::NetInstrumentationTest/task
|
44
|
+
External/www.google.com/Curl::Easy External/allOther External/www.google.com/all
|
45
|
+
External/www.google.com/Curl::Easy:OtherTransaction/Background/NewRelic::Agent::NetInstrumentationTest/task].sort,
|
46
|
+
@engine.metrics.select{|m| m =~ /^External/}.sort
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_transactional
|
50
|
+
perform_action_with_newrelic_trace("task") do
|
51
|
+
curl = Curl::Easy.new('http://www.google.com/index.html')
|
52
|
+
curl.perform
|
53
|
+
assert_match /<head>/, curl.body_str
|
54
|
+
end
|
55
|
+
assert_equal %w[External/Curl::Multi
|
56
|
+
External/Curl::Multi:Controller/NewRelic::Agent::NetInstrumentationTest/task
|
57
|
+
External/www.google.com/Curl::Easy External/allWeb External/www.google.com/all
|
58
|
+
External/www.google.com/Curl::Easy:Controller/NewRelic::Agent::NetInstrumentationTest/task].sort,
|
59
|
+
@engine.metrics.select{|m| m =~ /^External/}.sort
|
60
|
+
end
|
61
|
+
def test_ignore
|
62
|
+
NewRelic::Agent.disable_all_tracing do
|
63
|
+
curl = Curl::Easy.new('http://www.google.com/index.html')
|
64
|
+
curl.http_post('data')
|
65
|
+
end
|
66
|
+
assert_equal 0, @engine.metrics.size
|
67
|
+
end
|
68
|
+
|
69
|
+
end if defined? ::Curl::Easy
|
data/test/test_picky.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'picky'
|
2
|
+
|
3
|
+
require "#{File.dirname(__FILE__)}/helper"
|
4
|
+
|
5
|
+
class NewRelic::Agent::PickyIntrumentationTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def tokens_for *tokens
|
8
|
+
tokens.map{|t|
|
9
|
+
token = 'whatever'
|
10
|
+
|
11
|
+
token.extend Module.new{
|
12
|
+
define_method(:'partial?'){ t[:partial] }
|
13
|
+
define_method(:'similar?'){ t[:similar] }
|
14
|
+
define_method(:'qualifiers'){ t[:qualifiers] }
|
15
|
+
}
|
16
|
+
|
17
|
+
token
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_obfuscate_tokens
|
22
|
+
tokens = tokens_for({})
|
23
|
+
assert_equal 'xxx', Picky::NewRelic.obfuscate_tokens(tokens)
|
24
|
+
|
25
|
+
tokens = tokens_for({:similar => true})
|
26
|
+
assert_equal 'xxx~', Picky::NewRelic.obfuscate_tokens(tokens)
|
27
|
+
|
28
|
+
tokens = tokens_for({:partial => true})
|
29
|
+
assert_equal 'xxx*', Picky::NewRelic.obfuscate_tokens(tokens)
|
30
|
+
|
31
|
+
tokens = tokens_for({:qualifiers => [:haha]})
|
32
|
+
assert_equal 'haha:xxx', Picky::NewRelic.obfuscate_tokens(tokens)
|
33
|
+
|
34
|
+
tokens = tokens_for( {:partial => true}, {:similar => true} )
|
35
|
+
assert_equal 'xxx* xxx~', Picky::NewRelic.obfuscate_tokens(tokens)
|
36
|
+
|
37
|
+
tokens = tokens_for( {:similar => true}, {:partial => true} )
|
38
|
+
assert_equal 'xxx* xxx~', Picky::NewRelic.obfuscate_tokens(tokens)
|
39
|
+
|
40
|
+
tokens = tokens_for( {:partial => true}, {:partial => true} )
|
41
|
+
assert_equal 'xxx* xxx*', Picky::NewRelic.obfuscate_tokens(tokens)
|
42
|
+
|
43
|
+
tokens = tokens_for(
|
44
|
+
{:similar => true, :qualifiers => [:bla]},
|
45
|
+
{:partial => true, :qualifiers => [:bla, :blub]}
|
46
|
+
)
|
47
|
+
assert_equal 'bla,blub:xxx* bla:xxx~', Picky::NewRelic.obfuscate_tokens(tokens)
|
48
|
+
|
49
|
+
tokens = tokens_for(
|
50
|
+
{:similar => true, :qualifiers => [:bla]},
|
51
|
+
{:partial => true, :qualifiers => [:blub, :bla]}
|
52
|
+
)
|
53
|
+
assert_equal 'bla,blub:xxx* bla:xxx~', Picky::NewRelic.obfuscate_tokens(tokens)
|
54
|
+
end
|
55
|
+
end
|
data/test/test_redis.rb
CHANGED
@@ -8,7 +8,7 @@ end
|
|
8
8
|
require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/redis"
|
9
9
|
|
10
10
|
if defined?(::Redis)
|
11
|
-
|
11
|
+
|
12
12
|
|
13
13
|
class RedisTest < Test::Unit::TestCase
|
14
14
|
|
@@ -27,7 +27,7 @@ if defined?(::Redis)
|
|
27
27
|
|
28
28
|
# Fake test
|
29
29
|
def test_fail
|
30
|
-
|
30
|
+
|
31
31
|
|
32
32
|
end
|
33
33
|
end
|
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
|
@@ -1,24 +1,16 @@
|
|
1
1
|
require "#{File.dirname(__FILE__)}/helper"
|
2
2
|
begin
|
3
|
-
require '
|
3
|
+
require 'redis'
|
4
|
+
require 'ruby-debug'
|
4
5
|
rescue LoadError
|
5
6
|
end
|
6
7
|
|
7
|
-
require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/
|
8
|
+
require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/workling"
|
8
9
|
|
9
|
-
if defined?(::
|
10
|
-
|
11
|
-
Mongoid.configure do |config|
|
12
|
-
config.master = Mongo::Connection.new.db('animals')
|
13
|
-
end
|
14
|
-
|
15
|
-
class Dog
|
16
|
-
include Mongoid::Document
|
10
|
+
if defined?(::Workling)
|
17
11
|
|
18
|
-
field :name
|
19
|
-
end
|
20
12
|
|
21
|
-
class
|
13
|
+
class WorklingTest < Test::Unit::TestCase
|
22
14
|
|
23
15
|
# Called before every test method runs. Can be used
|
24
16
|
# to set up fixture information.
|
@@ -35,7 +27,7 @@ if defined?(::Mongoid)
|
|
35
27
|
|
36
28
|
# Fake test
|
37
29
|
def test_fail
|
38
|
-
|
30
|
+
|
39
31
|
|
40
32
|
end
|
41
33
|
end
|
metadata
CHANGED
@@ -1,116 +1,126 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: wireframe-rpm_contrib
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 12
|
10
|
-
- 7
|
11
|
-
version: 1.0.12.7
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.6.1
|
5
|
+
prerelease:
|
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
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-03-06 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
23
16
|
name: newrelic_rpm
|
17
|
+
requirement: &2164674940 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.1.1
|
23
|
+
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
|
25
|
+
version_requirements: *2164674940
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: newrelic_rpm
|
28
|
+
requirement: &2164674200 !ruby/object:Gem::Requirement
|
26
29
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
segments:
|
32
|
-
- 2
|
33
|
-
- 13
|
34
|
-
- 1
|
35
|
-
version: 2.13.1
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.1.1
|
36
34
|
type: :runtime
|
37
|
-
|
38
|
-
|
39
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *2164674200
|
37
|
+
description: ! 'Community contributed instrumentation for various frameworks based
|
38
|
+
on
|
39
|
+
|
40
40
|
the New Relic Ruby monitoring gem newrelic_rpm.
|
41
41
|
|
42
|
+
'
|
42
43
|
email: support@newrelic.com
|
43
44
|
executables: []
|
44
|
-
|
45
45
|
extensions: []
|
46
|
-
|
47
|
-
extra_rdoc_files:
|
46
|
+
extra_rdoc_files:
|
48
47
|
- CHANGELOG
|
49
48
|
- LICENSE
|
50
49
|
- README.md
|
51
|
-
files:
|
50
|
+
files:
|
52
51
|
- CHANGELOG
|
52
|
+
- Gemfile
|
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
|
59
|
+
- lib/rpm_contrib/detection.rb
|
58
60
|
- lib/rpm_contrib/detection/camping.rb
|
59
|
-
- lib/rpm_contrib/
|
60
|
-
- lib/rpm_contrib/instrumentation/
|
61
|
+
- lib/rpm_contrib/instrumentation.rb
|
62
|
+
- lib/rpm_contrib/instrumentation/active_messaging.rb
|
63
|
+
- lib/rpm_contrib/instrumentation/aws.rb
|
61
64
|
- lib/rpm_contrib/instrumentation/camping.rb
|
62
65
|
- lib/rpm_contrib/instrumentation/cassandra.rb
|
63
|
-
- lib/rpm_contrib/instrumentation/
|
66
|
+
- lib/rpm_contrib/instrumentation/crack.rb
|
67
|
+
- lib/rpm_contrib/instrumentation/curb.rb
|
68
|
+
- lib/rpm_contrib/instrumentation/elastic_search.rb
|
69
|
+
- lib/rpm_contrib/instrumentation/kyototycoon.rb
|
70
|
+
- lib/rpm_contrib/instrumentation/mongo.rb
|
64
71
|
- lib/rpm_contrib/instrumentation/mongoid.rb
|
65
72
|
- lib/rpm_contrib/instrumentation/paperclip.rb
|
73
|
+
- lib/rpm_contrib/instrumentation/picky.rb
|
66
74
|
- lib/rpm_contrib/instrumentation/redis.rb
|
67
75
|
- lib/rpm_contrib/instrumentation/resque.rb
|
76
|
+
- lib/rpm_contrib/instrumentation/riak_client.rb
|
77
|
+
- lib/rpm_contrib/instrumentation/ripple.rb
|
78
|
+
- lib/rpm_contrib/instrumentation/sinatra.rb
|
79
|
+
- lib/rpm_contrib/instrumentation/thinking_sphinx.rb
|
80
|
+
- lib/rpm_contrib/instrumentation/typhoeus.rb
|
81
|
+
- lib/rpm_contrib/instrumentation/ultrasphinx.rb
|
82
|
+
- lib/rpm_contrib/instrumentation/workling.rb
|
83
|
+
- lib/rpm_contrib/instrumentation/yajl.rb
|
84
|
+
- lib/rpm_contrib/language_support.rb
|
85
|
+
- lib/rpm_contrib/samplers.rb
|
68
86
|
- test/helper.rb
|
69
87
|
- test/schema.rb
|
70
|
-
- test/
|
88
|
+
- test/test_curb.rb
|
89
|
+
- test/test_picky.rb
|
71
90
|
- test/test_redis.rb
|
72
|
-
|
91
|
+
- test/test_resque.rb
|
92
|
+
- test/test_workling.rb
|
73
93
|
homepage: http://github.com/newrelic/rpm_contrib
|
74
94
|
licenses: []
|
75
|
-
|
76
95
|
post_install_message:
|
77
|
-
rdoc_options:
|
78
|
-
- --charset=UTF-8
|
96
|
+
rdoc_options:
|
79
97
|
- --line-numbers
|
80
98
|
- --inline-source
|
81
99
|
- --title
|
82
100
|
- Contributed Instrumentation for New Relic RPM
|
83
101
|
- -m
|
84
102
|
- README.md
|
85
|
-
require_paths:
|
103
|
+
require_paths:
|
86
104
|
- lib
|
87
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
106
|
none: false
|
89
|
-
requirements:
|
90
|
-
- -
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
segments:
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
segments:
|
94
112
|
- 0
|
95
|
-
|
96
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
hash: 173223078226701245
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
115
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
segments:
|
103
|
-
- 0
|
104
|
-
version: "0"
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
105
120
|
requirements: []
|
106
|
-
|
107
121
|
rubyforge_project:
|
108
|
-
rubygems_version: 1.
|
122
|
+
rubygems_version: 1.8.15
|
109
123
|
signing_key:
|
110
124
|
specification_version: 3
|
111
125
|
summary: Contributed Instrumentation for New Relic RPM
|
112
|
-
test_files:
|
113
|
-
- test/helper.rb
|
114
|
-
- test/schema.rb
|
115
|
-
- test/test_mongoid.rb
|
116
|
-
- test/test_redis.rb
|
126
|
+
test_files: []
|