httprb-opentracing 0.3.0 → 0.4.0.pre

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: 50b18a2d9a0feda14fd4a6ae95e83990e8d0a8c5
4
- data.tar.gz: ad8f234aabbdf45219673abb58a118e87a058b53
3
+ metadata.gz: e601dfdf8da237f5fe9141cdc60700ff86fc2171
4
+ data.tar.gz: 352c715930e748714e3005653c7438f9957d4b0a
5
5
  SHA512:
6
- metadata.gz: ab6f34d863c17bba047b8bfc89559d6cf30101e47dd5d8cba50a7109db2c90462ac8be894f0be8f306113da58634979e8d0b9d5bfd7a1daaf042c5016d364b2f
7
- data.tar.gz: afbe3a44cc99fd5d93887c95174af889a7939f4613893c0de47ff9e4068171d2f01b3566bbd3c2f0c791d27add2324505e0071fb29f13c5126b952b034a26a60
6
+ metadata.gz: 0b15e644bca4cc6ef7ab3c16cd50c22ae56b2019b6d99dcd74f7f80fbcb4c0e11016a0b6baf79404b12ff1874e20d830a46e7bae47e6941e1bbb60d17c4c4fd6
7
+ data.tar.gz: 364b19b2e0034991269655bcc7f807a27025126bc14c6c01837a1f06c8403ecdbbcad9c2d44cf9f5240c4e9c2ce63a395d419ac4a40757a55c6187397f10beb8
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- httprb-opentracing (0.3.0)
4
+ httprb-opentracing (0.4.0.pre)
5
5
  opentracing (~> 0.5.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- addressable (2.6.0)
11
- public_suffix (>= 2.0.2, < 4.0)
10
+ addressable (2.7.0)
11
+ public_suffix (>= 2.0.2, < 5.0)
12
12
  byebug (11.0.1)
13
13
  crack (0.4.3)
14
14
  safe_yaml (~> 1.0.0)
@@ -16,19 +16,19 @@ GEM
16
16
  domain_name (0.5.20190701)
17
17
  unf (>= 0.0.5, < 1.0.0)
18
18
  hashdiff (1.0.0)
19
- http (2.2.3.doxpre1)
19
+ http (4.1.1)
20
20
  addressable (~> 2.3)
21
21
  http-cookie (~> 1.0)
22
- http-form_data (~> 1.0.1)
22
+ http-form_data (~> 2.0)
23
23
  http_parser.rb (~> 0.6.0)
24
24
  http-cookie (1.0.3)
25
25
  domain_name (~> 0.5)
26
- http-form_data (1.0.3)
26
+ http-form_data (2.1.1)
27
27
  http_parser.rb (0.6.0)
28
28
  opentracing (0.5.0)
29
29
  opentracing_test_tracer (0.1.1)
30
30
  opentracing
31
- public_suffix (3.1.1)
31
+ public_suffix (4.0.1)
32
32
  rake (10.5.0)
33
33
  rspec (3.8.0)
34
34
  rspec-core (~> 3.8.0)
data/README.md CHANGED
@@ -33,7 +33,7 @@ If you need more control over the tracer or which requests get their own span yo
33
33
  ```
34
34
  HTTP::Tracer.instrument(
35
35
  tracer: tracer,
36
- ignore_request: ->(verb, uri, opts) { uri.host == 'localhost' }
36
+ ignore_request: ->(request, opts) { request.uri.host == 'localhost' }
37
37
  )
38
38
  ```
39
39
 
@@ -8,7 +8,7 @@ module HTTP
8
8
  class << self
9
9
  attr_accessor :ignore_request, :tracer
10
10
 
11
- IngoreRequest = ->(_verb, _uri, _opts) { false }
11
+ IngoreRequest = ->(_request, _options) { false }
12
12
 
13
13
  def instrument(tracer: OpenTracing.global_tracer, ignore_request: IngoreRequest)
14
14
  begin
@@ -20,7 +20,7 @@ module HTTP
20
20
 
21
21
  @ignore_request = ignore_request
22
22
  @tracer = tracer
23
- patch_request
23
+ patch_perform
24
24
  end
25
25
 
26
26
  def compatible_version?
@@ -28,30 +28,26 @@ module HTTP
28
28
  end
29
29
 
30
30
  def remove
31
- return unless ::HTTP::Client.method_defined?(:request_original)
31
+ return unless ::HTTP::Client.method_defined?(:perform_without_tracing)
32
32
 
33
33
  ::HTTP::Client.class_eval do
34
- remove_method :request
35
- alias_method :request, :request_original
36
- remove_method :request_original
34
+ remove_method :perform
35
+ alias_method :perform, :perform_without_tracing
36
+ remove_method :perform_without_tracing
37
37
  end
38
38
  end
39
39
 
40
- def patch_request
40
+ def patch_perform
41
41
  ::HTTP::Client.class_eval do
42
- alias_method :request_original, :request
43
-
44
- def request(verb, uri, opts = {})
45
- options = HTTP::Options.new.merge(opts)
46
- parsed_uri = uri.is_a?(String) ? URI(uri) : uri
47
-
48
- if ::HTTP::Tracer.ignore_request.call(verb, uri, options)
49
- res = request_original(verb, uri, options)
42
+ def perform_with_tracing(request, options)
43
+ if ::HTTP::Tracer.ignore_request.call(request, options)
44
+ res = perform_without_tracing(request, options)
50
45
  else
51
- path, host, port = nil
52
- path = parsed_uri.path if parsed_uri.respond_to?(:path)
53
- host = parsed_uri.host if parsed_uri.respond_to?(:host)
54
- port = parsed_uri.port if parsed_uri.respond_to?(:port)
46
+ path, host, port, verb = nil
47
+ path = request.uri.path if request.uri.respond_to?(:path)
48
+ host = request.uri.host if request.uri.respond_to?(:host)
49
+ port = request.uri.port if request.uri.respond_to?(:port)
50
+ verb = request.verb.to_s.upcase if request.respond_to?(:verb)
55
51
 
56
52
  tags = {
57
53
  'component' => 'ruby-httprb',
@@ -60,14 +56,14 @@ module HTTP
60
56
  'http.url' => path,
61
57
  'peer.host' => host,
62
58
  'peer.port' => port
63
- }
59
+ }.compact
64
60
 
65
61
  tracer = ::HTTP::Tracer.tracer
66
62
 
67
63
  tracer.start_active_span('http.request', tags: tags) do |scope|
68
64
  OpenTracing.inject(scope.span.context, OpenTracing::FORMAT_RACK, options.headers)
69
65
 
70
- res = request_original(verb, uri, options)
66
+ res = perform_without_tracing(request, options)
71
67
 
72
68
  scope.span.set_tag('http.status_code', res.status)
73
69
  scope.span.set_tag('error', true) if res.is_a?(StandardError)
@@ -76,6 +72,9 @@ module HTTP
76
72
 
77
73
  res
78
74
  end
75
+
76
+ alias perform_without_tracing perform
77
+ alias perform perform_with_tracing
79
78
  end
80
79
  end
81
80
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module HTTP
4
4
  module Tracer
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0.pre'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httprb-opentracing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Fischer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-06 00:00:00.000000000 Z
11
+ date: 2019-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentracing
@@ -164,9 +164,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
164
  version: '0'
165
165
  required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - ">="
167
+ - - ">"
168
168
  - !ruby/object:Gem::Version
169
- version: '0'
169
+ version: 1.3.1
170
170
  requirements: []
171
171
  rubyforge_project:
172
172
  rubygems_version: 2.5.2.3