oboe 2.7.4.1-java → 2.7.5.wolf1-java

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 570a95fa0704a3eb54054bd343b5bdc661ef3253
4
- data.tar.gz: 46781b156509cede59ceba33ec68dfca31ecf20c
3
+ metadata.gz: 9b6feae15cd8088b6791d3a9bbd0c8bd24b928fc
4
+ data.tar.gz: edc309ac1f8393c96e0bb9621b8d9d9dc759defa
5
5
  SHA512:
6
- metadata.gz: e2d30131c03a69051289abc0cdcfaae97c98b5c9f4bef2b00eec1d728e726a682da8515c7a30897604dc693e521594d370e0adc725063d31df77ccaea64fdde8
7
- data.tar.gz: d6420e2b475315e064884817bcd2f197eb80e83e9008bd0f5f2f46f191883d19eedce0dffb16201169eccf00a27812c47858dd811229da482e49c2f41af7c23a
6
+ metadata.gz: f84879fa15a8a8319c1c116f7a5530744d14d0f61dda6e93b8fec50317f4b585ef758815d4e986f35822eb7d596937651fdfa4cf4b03d07a1de21d85db166969
7
+ data.tar.gz: 60065de5f383d1d7c66636770912aa4202a0b97020a6f9303c2150887dc88b0dd43a28a2caec9a293e76bb0021eadf8a85b9a2d3dabceb7034400fab775cce0c
@@ -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: java
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
@@ -51,6 +51,7 @@ files:
51
51
  - .travis.yml
52
52
  - Appraisals
53
53
  - CHANGELOG.md
54
+ - CONFIG.md
54
55
  - Gemfile
55
56
  - LICENSE
56
57
  - README.md
@@ -109,6 +110,7 @@ files:
109
110
  - lib/oboe/inst/rack.rb
110
111
  - lib/oboe/inst/redis.rb
111
112
  - lib/oboe/inst/resque.rb
113
+ - lib/oboe/inst/typhoeus.rb
112
114
  - lib/oboe/instrumentation.rb
113
115
  - lib/oboe/loading.rb
114
116
  - lib/oboe/logger.rb
@@ -148,6 +150,7 @@ files:
148
150
  - test/instrumentation/redis_sortedsets_test.rb
149
151
  - test/instrumentation/redis_strings_test.rb
150
152
  - test/instrumentation/resque_test.rb
153
+ - test/instrumentation/typhoeus_test.rb
151
154
  - test/minitest_helper.rb
152
155
  - test/profiling/method_test.rb
153
156
  - test/support/config_test.rb
@@ -168,9 +171,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
171
  version: 1.8.6
169
172
  required_rubygems_version: !ruby/object:Gem::Requirement
170
173
  requirements:
171
- - - '>='
174
+ - - '>'
172
175
  - !ruby/object:Gem::Version
173
- version: '0'
176
+ version: 1.3.1
174
177
  requirements: []
175
178
  rubyforge_project:
176
179
  rubygems_version: 2.1.9
@@ -194,6 +197,7 @@ test_files:
194
197
  - test/instrumentation/redis_strings_test.rb
195
198
  - test/instrumentation/redis_sets_test.rb
196
199
  - test/instrumentation/http_test.rb
200
+ - test/instrumentation/typhoeus_test.rb
197
201
  - test/instrumentation/resque_test.rb
198
202
  - test/instrumentation/em_http_request_test.rb
199
203
  - test/instrumentation/moped_test.rb