oboe 2.7.4.1 → 2.7.5.wolf1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 252963036ab61953b873cbd86fc07eaeb42b1b07
4
- data.tar.gz: 2385bcb4b3d56f42cb7f0a255e339c9a9f998f59
3
+ metadata.gz: 3beaf0fdfd2e981df546c71cd4a327a5448c730d
4
+ data.tar.gz: 35885d335b9a1b25183f44489247759dad1be927
5
5
  SHA512:
6
- metadata.gz: 4692130035aace8a2bcbd42a8c865abe1ed9636fba5db142bef0cf395b066ad7b86a645335d21c63a5fae9c37d6604aebf46cb711dd65001942a18474dff7d9c
7
- data.tar.gz: 5fa46e4de898c01918014c81ea0550647f7a0b12a18272894ede7c1feb07ae0f148dede11f36f5c2273d62d5ef8bc2d6ed7af36e0090d9c4e3405f0345621929
6
+ metadata.gz: 3a6c75e8f5b6cba14d28f1ad18766cf4fc0a061fddd8d3ff586d8d84f2893beca177830c567c3a3921dcaf96c90971095fade5bee82a84f77b5050411e7691fd
7
+ data.tar.gz: f27d9e690055fac51907fce0331af8ee8faabcd3fe80f37b2473f6da285f5f81f366050d5da44da34ec4e6d3a51a1ca681972caa8ae7fdcdff683a1e114564a3
@@ -1,3 +1,60 @@
1
+
2
+ For the latest release info, see here:
3
+ https://github.com/appneta/oboe-ruby/releases
4
+
5
+ Dates in this file are in the format MM/DD/YYYY.
6
+
7
+ # oboe 2.7.4.1 (10/26/2014)
8
+
9
+ This patch release includes:
10
+
11
+ * Make Oboe::API available even when liboboe.so is not #81 (thanks Cannon!)
12
+ * Add OS and Oboe::Config info to support_report #80
13
+
14
+ Pushed to Rubygems:
15
+
16
+ https://rubygems.org/gems/oboe/versions/2.7.4.1
17
+ https://rubygems.org/gems/oboe/versions/2.7.4.1-java
18
+
19
+ # oboe 2.7.3.1 (10/15/2014)
20
+
21
+ This patch release includes:
22
+
23
+ * Fix require statements under certain variations of REE-1.8.7: #78 (thanks @madrobby)
24
+ * Faraday instrumentation fails to capture and pass params update block: #79
25
+ * Add method to log environment details for support investigations (`Oboe.support_report`): #77
26
+
27
+ Pushed to Rubygems:
28
+
29
+ https://rubygems.org/gems/oboe/versions/2.7.3.1
30
+ https://rubygems.org/gems/oboe/versions/2.7.3.1-java
31
+
32
+ # oboe 2.7.2.2 (09/26/2014)
33
+
34
+ This patch release includes:
35
+
36
+ * New [Faraday](https://github.com/lostisland/faraday) instrumentation: https://github.com/appneta/oboe-ruby/pull/68
37
+ * Auto-initialize instrumentation when no framework detected: https://github.com/appneta/oboe-ruby/pull/76
38
+ * Willingly ignore traceview missing libraries warning: https://github.com/appneta/oboe-ruby/pull/75 (thanks @theist!)
39
+
40
+ Pushed to Rubygems:
41
+
42
+ https://rubygems.org/gems/oboe/versions/2.7.2.2
43
+ https://rubygems.org/gems/oboe/versions/2.7.2.2-java
44
+
45
+ # oboe 2.7.1.7 (09/08/2014)
46
+
47
+ This patch release includes:
48
+
49
+ * Fixed load stack trace when missing TraceView base libraries: [#72](https://github.com/appneta/oboe-ruby/pull/72) - thanks @theist!
50
+ * Beta `em-http-request` instrumentation: [#60](https://github.com/appneta/oboe-ruby/pull/60)/[#73](https://github.com/appneta/oboe-ruby/pull/73) - Thanks @diogobenica!
51
+ * Improved loading when on Heroku with oboe-heroku gem
52
+
53
+ Pushed to Rubygems:
54
+
55
+ https://rubygems.org/gems/oboe/versions/2.7.1.7
56
+ https://rubygems.org/gems/oboe/versions/2.7.1.7-java
57
+
1
58
  # oboe 2.7.0.3 (08/19/2014)
2
59
 
3
60
  This minor release includes:
@@ -0,0 +1,16 @@
1
+ # Oboe Gem Configuration
2
+
3
+ ## Environment Variables
4
+
5
+ The following environment variables are detected by the oboe gem:
6
+
7
+ * `IGNORE_TRACEVIEW_WARNING` - tells the oboe gem to __not__ output the _missing TraceView libraries_ message on stack initialization
8
+
9
+ * `OBOE_GEM_VERBOSE` - sets the verbose flag (`Oboe::Config[:verbose]`) early in the gem loading process which may output valuable information
10
+
11
+ ## Oboe::Config
12
+
13
+ `Oboe::Config` is a nested hash used by the oboe gem to store preferences and switches.
14
+
15
+ See [this Rails generator template file](https://github.com/appneta/oboe-ruby/blob/master/lib/rails/generators/oboe/templates/oboe_initializer.rb) for documentation on all of the supported values.
16
+
data/Gemfile CHANGED
@@ -28,6 +28,7 @@ gem 'resque'
28
28
  gem 'redis'
29
29
  gem 'faraday'
30
30
  gem 'excon'
31
+ gem 'typhoeus'
31
32
 
32
33
  if RUBY_VERSION >= '1.9'
33
34
  gem 'moped'
data/README.md CHANGED
@@ -29,6 +29,12 @@ gem 'oboe'
29
29
 
30
30
  On Heroku? Use the `oboe-heroku` gem instead. It wraps some additional functionality specialized for Heroku.
31
31
 
32
+ ## Oboe?
33
+
34
+ What the heck is an [oboe](https://en.wikipedia.org/wiki/Oboe)?
35
+
36
+ _AKA Performance Instrumentation_
37
+
32
38
  # Running
33
39
 
34
40
  ## Rails
@@ -169,9 +169,26 @@ module Oboe
169
169
  end
170
170
 
171
171
  # Assure that the Joboe Java Agent was loaded via premain
172
- status = Java::ComTracelyticsAgent::Agent.getStatus
173
- if status == Java::ComTracelyticsAgent::Agent::AgentStatus::UNINITIALIZED
174
- Oboe.loaded = false
175
- else
176
- Oboe.loaded = true
172
+ case Java::ComTracelyticsAgent::Agent.getStatus
173
+ when Java::ComTracelyticsAgent::Agent::AgentStatus::INITIALIZED_SUCCESSFUL
174
+ Oboe.loaded = true
175
+
176
+ when Java::ComTracelyticsAgent::Agent::AgentStatus::INITIALIZED_FAILED
177
+ Oboe.loaded = false
178
+ $stderr.puts '=============================================================='
179
+ $stderr.puts 'TraceView Java Agent not initialized properly.'
180
+ $stderr.puts 'Possibly misconfigured? Going into no-op mode.'
181
+ $stderr.puts 'See: http://bit.ly/1zwS5xj'
182
+ $stderr.puts '=============================================================='
183
+
184
+ when Java::ComTracelyticsAgent::Agent::AgentStatus::UNINITIALIZED
185
+ Oboe.loaded = false
186
+ $stderr.puts '=============================================================='
187
+ $stderr.puts 'TraceView Java Agent not loaded. Going into no-op mode.'
188
+ $stderr.puts 'To preload the TraceView java agent see:'
189
+ $stderr.puts 'https://support.appneta.com/cloud/installing-jruby-instrumentation'
190
+ $stderr.puts '=============================================================='
191
+
192
+ else
193
+ Oboe.loaded = false
177
194
  end
@@ -13,7 +13,7 @@ module Oboe
13
13
 
14
14
  @@instrumentation = [:action_controller, :action_view, :active_record,
15
15
  :cassandra, :dalli, :em_http_request, :faraday, :nethttp, :memcached,
16
- :memcache, :mongo, :moped, :rack, :redis, :resque]
16
+ :memcache, :mongo, :moped, :rack, :redis, :resque, :typhoeus]
17
17
  ##
18
18
  # Return the raw nested hash.
19
19
  #
@@ -48,6 +48,7 @@ module Oboe
48
48
  Oboe::Config[:nethttp][:collect_backtraces] = true
49
49
  Oboe::Config[:redis][:collect_backtraces] = false
50
50
  Oboe::Config[:resque][:collect_backtraces] = true
51
+ Oboe::Config[:typhoeus][:collect_backtraces] = false
51
52
 
52
53
  # Special instrument specific flags
53
54
  #
@@ -81,7 +82,7 @@ module Oboe
81
82
  @@config[:reporter_port] = '7831'
82
83
  end
83
84
 
84
- @@config[:verbose] = false
85
+ @@config[:verbose] = ENV.key?('OBOE_GEM_VERBOSE') ? true : false
85
86
  end
86
87
 
87
88
  def self.update!(data)
@@ -66,7 +66,7 @@ end
66
66
 
67
67
  if Oboe::Config[:faraday][:enabled]
68
68
  if defined?(::Faraday)
69
- Oboe.logger.info '[oboe/loading] Instrumenting faraday'
69
+ Oboe.logger.info '[oboe/loading] Instrumenting faraday' if Oboe::Config[:verbose]
70
70
  ::Oboe::Util.send_include(::Faraday::Connection, ::Oboe::Inst::FaradayConnection)
71
71
  end
72
72
  end
@@ -0,0 +1,99 @@
1
+ module Oboe
2
+ module Inst
3
+ module TyphoeusRequestOps
4
+
5
+ def self.included(klass)
6
+ ::Oboe::Util.method_alias(klass, :run, ::Typhoeus::Request::Operations)
7
+ end
8
+
9
+ def run_with_oboe
10
+ return run_without_oboe unless Oboe.tracing?
11
+
12
+ Oboe::API.log_entry('typhoeus')
13
+
14
+ # Prepare X-Trace header handling
15
+ blacklisted = Oboe::API.blacklisted?(url)
16
+ context = Oboe::Context.toString
17
+ task_id = Oboe::XTrace.task_id(context)
18
+ options[:headers]['X-Trace'] = context unless blacklisted
19
+
20
+ response = run_without_oboe
21
+
22
+ if response.code == 0
23
+ Oboe::API.log('typhoeus', 'error', { :ErrorClass => response.return_code,
24
+ :ErrorMsg => response.return_message })
25
+ end
26
+
27
+ kvs = {}
28
+ kvs[:HTTPStatus] = response.code
29
+ kvs['Backtrace'] = Oboe::API.backtrace if Oboe::Config[:typhoeus][:collect_backtraces]
30
+
31
+ # Avoid cross host tracing for blacklisted domains
32
+ # Conditionally add the X-Trace header to the outgoing request
33
+ response.headers['X-Trace'] = context unless blacklisted
34
+
35
+ uri = URI(response.effective_url)
36
+ kvs['IsService'] = 1
37
+ kvs['RemoteProtocol'] = uri.scheme
38
+ kvs['RemoteHost'] = uri.host
39
+ kvs['RemotePort'] = uri.port ? uri.port : 80
40
+ kvs['ServiceArg'] = uri.path
41
+ kvs['HTTPMethod'] = options[:method]
42
+ kvs['Blacklisted'] = true if blacklisted
43
+
44
+ # Re-attach net::http edge unless it's blacklisted or if we don't have a
45
+ # valid X-Trace header
46
+ unless blacklisted
47
+ xtrace = response.headers['X-Trace']
48
+
49
+ if xtrace && Oboe::XTrace.valid?(xtrace) && Oboe.tracing?
50
+
51
+ # Assure that we received back a valid X-Trace with the same task_id
52
+ if task_id == Oboe::XTrace.task_id(xtrace)
53
+ Oboe::Context.fromString(xtrace)
54
+ else
55
+ Oboe.logger.debug "Mismatched returned X-Trace ID: #{xtrace}"
56
+ end
57
+ end
58
+ end
59
+
60
+ Oboe::API.log('typhoeus', 'info', kvs)
61
+ response
62
+ rescue => e
63
+ Oboe::API.log_exception('typhoeus', e)
64
+ raise e
65
+ ensure
66
+ Oboe::API.log_exit('typhoeus')
67
+ end
68
+ end
69
+
70
+ module TyphoeusHydraRunnable
71
+ def self.included(klass)
72
+ ::Oboe::Util.method_alias(klass, :run, ::Typhoeus::Hydra)
73
+ end
74
+
75
+ def run_with_oboe
76
+ kvs = {}
77
+
78
+ kvs[:queued_requests] = queued_requests.count
79
+ kvs[:max_concurrency] = max_concurrency
80
+
81
+ # FIXME: Until we figure out a strategy to deal with libcurl internal
82
+ # threading and Ethon's use of easy handles, here we just do a simple
83
+ # trace of the hydra run.
84
+ Oboe::API.trace("typhoeus_hydra", kvs) do
85
+ run_without_oboe
86
+ end
87
+ end
88
+ end
89
+
90
+ end
91
+ end
92
+
93
+ if Oboe::Config[:typhoeus][:enabled]
94
+ if defined?(::Typhoeus)
95
+ Oboe.logger.info '[oboe/loading] Instrumenting typhoeus' if Oboe::Config[:verbose]
96
+ ::Oboe::Util.send_include(::Typhoeus::Request::Operations, ::Oboe::Inst::TyphoeusRequestOps)
97
+ ::Oboe::Util.send_include(::Typhoeus::Hydra, ::Oboe::Inst::TyphoeusHydraRunnable)
98
+ end
99
+ end
@@ -166,6 +166,11 @@ module Oboe
166
166
  platform_info['Ruby.Mongo.Version'] = "Mongo-#{::Gem.loaded_specs['mongo'].version}"
167
167
  end
168
168
 
169
+ # Report the DB adapter in use
170
+ platform_info['Ruby.Mysql.Version'] = Mysql::GemVersion::VERSION if defined?(Mysql::GemVersion::VERSION)
171
+ platform_info['Ruby.PG.Version'] = PG::VERSION if defined?(PG::VERSION)
172
+ platform_info['Ruby.Mysql2.Version'] = Mysql2::VERSION if defined?(Mysql2::VERSION)
173
+
169
174
  # Report the server in use (if possible)
170
175
  if defined?(::Unicorn)
171
176
  platform_info['Ruby.AppContainer.Version'] = "Unicorn-#{::Unicorn::Const::UNICORN_VERSION}"
@@ -8,8 +8,8 @@ module Oboe
8
8
  module Version
9
9
  MAJOR = 2
10
10
  MINOR = 7
11
- PATCH = 4
12
- BUILD = 1
11
+ PATCH = 5
12
+ BUILD = "wolf1"
13
13
 
14
14
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
15
15
  end
@@ -0,0 +1,154 @@
1
+ require 'minitest_helper'
2
+
3
+ describe Oboe::Inst::TyphoeusRequestOps do
4
+ before do
5
+ clear_all_traces
6
+ @collect_backtraces = Oboe::Config[:typhoeus][:collect_backtraces]
7
+ end
8
+
9
+ after do
10
+ Oboe::Config[:typhoeus][:collect_backtraces] = @collect_backtraces
11
+ end
12
+
13
+ it 'Typhoeus should be defined and ready' do
14
+ defined?(::Typhoeus::Request::Operations).wont_match nil
15
+ end
16
+
17
+ it 'Typhoeus should have oboe methods defined' do
18
+ [ :run_with_oboe ].each do |m|
19
+ ::Typhoeus::Request::Operations.method_defined?(m).must_equal true
20
+ end
21
+ end
22
+
23
+ it 'should trace a typhoeus request' do
24
+ Oboe::API.start_trace('typhoeus_test') do
25
+ Typhoeus.get("www.appneta.com/products/traceview/")
26
+ end
27
+
28
+ traces = get_all_traces
29
+ traces.count.must_equal 5
30
+
31
+ validate_outer_layers(traces, 'typhoeus_test')
32
+
33
+ traces[1]['Layer'].must_equal 'typhoeus'
34
+ traces[1].key?('Backtrace').must_equal Oboe::Config[:typhoeus][:collect_backtraces]
35
+
36
+ traces[2]['Layer'].must_equal 'typhoeus'
37
+ traces[2]['Label'].must_equal 'info'
38
+ traces[2]['IsService'].must_equal '1'
39
+ traces[2]['RemoteProtocol'].downcase.must_equal 'http'
40
+ traces[2]['RemoteHost'].must_equal 'www.appneta.com'
41
+ traces[2]['ServiceArg'].must_equal '/products/traceview/'
42
+ traces[2]['HTTPMethod'].must_equal 'get'
43
+ traces[2]['HTTPStatus'].must_equal '200'
44
+
45
+ traces[3]['Layer'].must_equal 'typhoeus'
46
+ traces[3]['Label'].must_equal 'exit'
47
+ end
48
+
49
+ it 'should trace a typhoeus request to an instr\'d app' do
50
+ Oboe::API.start_trace('typhoeus_test') do
51
+ Typhoeus.get("www.gameface.in/gamers")
52
+ end
53
+
54
+ traces = get_all_traces
55
+ traces.count.must_equal 5
56
+
57
+ validate_outer_layers(traces, 'typhoeus_test')
58
+
59
+ traces[1]['Layer'].must_equal 'typhoeus'
60
+ traces[1].key?('Backtrace').must_equal Oboe::Config[:typhoeus][:collect_backtraces]
61
+
62
+ traces[2]['Layer'].must_equal 'typhoeus'
63
+ traces[2]['Label'].must_equal 'info'
64
+ traces[2]['IsService'].must_equal '1'
65
+ traces[2]['RemoteProtocol'].downcase.must_equal 'http'
66
+ traces[2]['RemoteHost'].must_equal 'www.gameface.in'
67
+ traces[2]['ServiceArg'].must_equal '/gamers'
68
+ traces[2]['HTTPMethod'].must_equal 'get'
69
+ traces[2]['HTTPStatus'].must_equal '200'
70
+
71
+ traces[3]['Layer'].must_equal 'typhoeus'
72
+ traces[3]['Label'].must_equal 'exit'
73
+ end
74
+ it 'should trace a typhoeus request with error' do
75
+ Oboe::API.start_trace('typhoeus_test') do
76
+ Typhoeus.get("thisdomaindoesntexisthopefully.asdf/products/traceview/")
77
+ end
78
+
79
+ traces = get_all_traces
80
+ traces.count.must_equal 6
81
+
82
+ validate_outer_layers(traces, 'typhoeus_test')
83
+
84
+ traces[1]['Layer'].must_equal 'typhoeus'
85
+ traces[1].key?('Backtrace').must_equal Oboe::Config[:typhoeus][:collect_backtraces]
86
+
87
+ traces[2]['Layer'].must_equal 'typhoeus'
88
+ traces[2]['Label'].must_equal 'error'
89
+
90
+ traces[3]['Layer'].must_equal 'typhoeus'
91
+ traces[3]['Label'].must_equal 'info'
92
+ traces[3]['IsService'].must_equal '1'
93
+ traces[3]['RemoteProtocol'].downcase.must_equal 'http'
94
+ traces[3]['RemoteHost'].must_equal 'thisdomaindoesntexisthopefully.asdf'
95
+ traces[3]['ServiceArg'].must_equal '/products/traceview/'
96
+ traces[3]['HTTPMethod'].must_equal 'get'
97
+ traces[3]['HTTPStatus'].must_equal '0'
98
+
99
+ traces[3]['Layer'].must_equal 'typhoeus'
100
+ traces[3]['Label'].must_equal 'info'
101
+
102
+ traces[4]['Layer'].must_equal 'typhoeus'
103
+ traces[4]['Label'].must_equal 'exit'
104
+ end
105
+
106
+ it 'should trace parallel typhoeus requests' do
107
+ Oboe::API.start_trace('typhoeus_test') do
108
+ hydra = Typhoeus::Hydra.hydra
109
+
110
+ first_request = Typhoeus::Request.new("www.appneta.com/products/traceview/")
111
+ second_request = Typhoeus::Request.new("www.appneta.com/products/")
112
+ third_request = Typhoeus::Request.new("www.curlmyip.com")
113
+
114
+ hydra.queue first_request
115
+ hydra.queue second_request
116
+ hydra.queue third_request
117
+
118
+ hydra.run
119
+ end
120
+
121
+ traces = get_all_traces
122
+ traces.count.must_equal 4
123
+
124
+ validate_outer_layers(traces, 'typhoeus_test')
125
+
126
+ traces[1]['Layer'].must_equal 'typhoeus_hydra'
127
+ traces[1]['Label'].must_equal 'entry'
128
+
129
+ traces[2]['Layer'].must_equal 'typhoeus_hydra'
130
+ traces[2]['Label'].must_equal 'exit'
131
+ end
132
+
133
+ it 'should obey :collect_backtraces setting when true' do
134
+ Oboe::Config[:typhoeus][:collect_backtraces] = true
135
+
136
+ Oboe::API.start_trace('typhoeus_test') do
137
+ Typhoeus.get("www.appneta.com/products/traceview/")
138
+ end
139
+
140
+ traces = get_all_traces
141
+ layer_has_key(traces, 'typhoeus', 'Backtrace')
142
+ end
143
+
144
+ it 'should obey :collect_backtraces setting when false' do
145
+ Oboe::Config[:typhoeus][:collect_backtraces] = false
146
+
147
+ Oboe::API.start_trace('typhoeus_test') do
148
+ Typhoeus.get("www.appneta.com/products/traceview/")
149
+ end
150
+
151
+ traces = get_all_traces
152
+ layer_doesnt_have_key(traces, 'typhoeus', 'Backtrace')
153
+ end
154
+ end
@@ -23,7 +23,7 @@ describe Oboe::Config do
23
23
  instrumentation = Oboe::Config.instrumentation_list
24
24
 
25
25
  # Verify the number of individual instrumentations
26
- instrumentation.count.must_equal 15
26
+ instrumentation.count.must_equal 16
27
27
 
28
28
  Oboe::Config[:action_controller][:enabled].must_equal true
29
29
  Oboe::Config[:action_view][:enabled].must_equal true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oboe
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.4.1
4
+ version: 2.7.5.wolf1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Giacomo Lombardo
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-26 00:00:00.000000000 Z
12
+ date: 2014-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -53,6 +53,7 @@ files:
53
53
  - ".travis.yml"
54
54
  - Appraisals
55
55
  - CHANGELOG.md
56
+ - CONFIG.md
56
57
  - Gemfile
57
58
  - LICENSE
58
59
  - README.md
@@ -111,6 +112,7 @@ files:
111
112
  - lib/oboe/inst/rack.rb
112
113
  - lib/oboe/inst/redis.rb
113
114
  - lib/oboe/inst/resque.rb
115
+ - lib/oboe/inst/typhoeus.rb
114
116
  - lib/oboe/instrumentation.rb
115
117
  - lib/oboe/loading.rb
116
118
  - lib/oboe/logger.rb
@@ -150,6 +152,7 @@ files:
150
152
  - test/instrumentation/redis_sortedsets_test.rb
151
153
  - test/instrumentation/redis_strings_test.rb
152
154
  - test/instrumentation/resque_test.rb
155
+ - test/instrumentation/typhoeus_test.rb
153
156
  - test/minitest_helper.rb
154
157
  - test/profiling/method_test.rb
155
158
  - test/support/config_test.rb
@@ -170,9 +173,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
173
  version: 1.8.6
171
174
  required_rubygems_version: !ruby/object:Gem::Requirement
172
175
  requirements:
173
- - - ">="
176
+ - - ">"
174
177
  - !ruby/object:Gem::Version
175
- version: '0'
178
+ version: 1.3.1
176
179
  requirements: []
177
180
  rubyforge_project:
178
181
  rubygems_version: 2.2.2
@@ -196,6 +199,7 @@ test_files:
196
199
  - test/instrumentation/redis_strings_test.rb
197
200
  - test/instrumentation/redis_sets_test.rb
198
201
  - test/instrumentation/http_test.rb
202
+ - test/instrumentation/typhoeus_test.rb
199
203
  - test/instrumentation/resque_test.rb
200
204
  - test/instrumentation/em_http_request_test.rb
201
205
  - test/instrumentation/moped_test.rb