aws-xray 0.16.3 → 0.16.4

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: efddd11613513c31deae81a7c19e585c27561d65
4
- data.tar.gz: 634485ac1a3a2d4f1c64b20feb639e7b4a1f8f44
3
+ metadata.gz: c18e62bee058b20f2bbfc0a46732b491974cfd1b
4
+ data.tar.gz: 245d0a54a8eda2e84fb317eaed923f7aa340a042
5
5
  SHA512:
6
- metadata.gz: 8f496597a77629249e31d91c238235bffa6e9429ee86335a94db18936f41ec6dd22e7de96c69330d6cd509474e9609cef23da4911cb9454dc2576f90e7437c21
7
- data.tar.gz: 1515645eba3847d0fe33d00f941a52bcd3c962adecffb4ebc637967fd6b15621d2e3366d1d7a2d0415b8e9f981c52dc53517088ff1609bdb3f617d9e6c76f10e
6
+ metadata.gz: c25b50647422653efcaecaae9fef3d22be3aa70dd90ee24839531f0a64e39905d34bd43c529793cda76a90865ba43e6674245640127a804479b480978f662952
7
+ data.tar.gz: 4e7ef29b919b9ae8d97d9027c7c99397611df28216196d6782bdee3476269aff99aaed83cc5034979e112b13c5c8d7bdd71b233b3c6521bea657bc70b371203d
@@ -23,20 +23,7 @@ module Aws
23
23
 
24
24
  res = Context.current.disable_trace(:net_http) { @app.call(req_env) }
25
25
  res.on_complete do |res_env|
26
- sub.set_http_response(res_env.status, res_env.response_headers['Content-Length'])
27
- case res_env.status
28
- when 499
29
- cause = Cause.new(stack: caller, message: 'Got 499', type: 'http_request_error')
30
- sub.set_error(error: true, throttle: true, cause: cause)
31
- when 400..498
32
- cause = Cause.new(stack: caller, message: 'Got 4xx', type: 'http_request_error')
33
- sub.set_error(error: true, cause: cause)
34
- when 500..599
35
- cause = Cause.new(stack: caller, message: 'Got 5xx', type: 'http_request_error')
36
- sub.set_error(fault: true, remote: true, cause: cause)
37
- else
38
- # pass
39
- end
26
+ sub.set_http_response_with_error(res_env.status, res_env.response_headers['Content-Length'], remote: true)
40
27
  end
41
28
  end
42
29
  end
@@ -28,21 +28,7 @@ module Aws
28
28
 
29
29
  res = request_without_aws_xray(req, *args, &block)
30
30
 
31
- sub.set_http_response(res.code.to_i, res['Content-Length'])
32
- case res.code.to_i
33
- when 499
34
- cause = Cause.new(stack: caller, message: 'Got 499', type: 'http_request_error')
35
- sub.set_error(error: true, throttle: true, cause: cause)
36
- when 400..498
37
- cause = Cause.new(stack: caller, message: 'Got 4xx', type: 'http_request_error')
38
- sub.set_error(error: true, cause: cause)
39
- when 500..599
40
- cause = Cause.new(stack: caller, message: 'Got 5xx', type: 'http_request_error')
41
- sub.set_error(fault: true, remote: true, cause: cause)
42
- else
43
- # pass
44
- end
45
-
31
+ sub.set_http_response_with_error(res.code.to_i, res['Content-Length'], remote: true)
46
32
  res
47
33
  end
48
34
  end
@@ -39,7 +39,8 @@ module Aws
39
39
  Context.current.base_trace do |seg|
40
40
  seg.set_http_request(Request.build_from_rack_env(env))
41
41
  status, headers, body = @app.call(env)
42
- seg.set_http_response(status, headers['Content-Length'] || 0)
42
+ length = headers['Content-Length'] || 0
43
+ seg.set_http_response_with_error(status, length, remote: false)
43
44
  headers[TRACE_HEADER] = trace.to_header_value
44
45
  [status, headers, body]
45
46
  end
@@ -43,6 +43,28 @@ module Aws
43
43
  @http_response = Response.new(status, length)
44
44
  end
45
45
 
46
+ # Automatically set error according to status code.
47
+ # @param [Integer] status HTTP status
48
+ # @param [Integer] length Size of HTTP response body
49
+ # @param [Boolean] remote Whether the response is from remote server or not.
50
+ def set_http_response_with_error(status, length, remote:)
51
+ set_http_response(status, length)
52
+ type = remote ? 'http_request_error' : 'http_response_error'
53
+ case status.to_i
54
+ when 499
55
+ cause = Cause.new(stack: caller, message: 'Got 499', type: type)
56
+ set_error(error: true, throttle: true, cause: cause)
57
+ when 400..498
58
+ cause = Cause.new(stack: caller, message: 'Got 4xx', type: type)
59
+ set_error(error: true, cause: cause)
60
+ when 500..599
61
+ cause = Cause.new(stack: caller, message: 'Got 5xx', type: type)
62
+ set_error(fault: true, remote: remote, cause: cause)
63
+ else
64
+ # pass
65
+ end
66
+ end
67
+
46
68
  # @param [Boolean] error Indicating that a client error occurred (response status code was 4XX Client Error).
47
69
  # @param [Boolean] throttle Indicating that a request was throttled (response status code was 429 Too Many Requests).
48
70
  # @param [Boolean] fault Indicating that a server error occurred (response status code was 5XX Server Error).
@@ -1,5 +1,5 @@
1
1
  module Aws
2
2
  module Xray
3
- VERSION = '0.16.3'
3
+ VERSION = '0.16.4'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-xray
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.3
4
+ version: 0.16.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taiki Ono
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-12 00:00:00.000000000 Z
11
+ date: 2017-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
177
  version: '0'
178
178
  requirements: []
179
179
  rubyforge_project:
180
- rubygems_version: 2.6.11
180
+ rubygems_version: 2.5.2
181
181
  signing_key:
182
182
  specification_version: 4
183
183
  summary: The unofficial X-Ray Tracing SDK for Ruby.