aws-xray 0.9.5 → 0.9.6

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: 4f77fd82652bf06893e19113dcfaa5c63a5edc3d
4
- data.tar.gz: 7a8600ae15a4d91bd6eb6851438fdf4dd4a8e278
3
+ metadata.gz: 49d78b0969ee078afa62cbc258f473c778b70058
4
+ data.tar.gz: 5f9f8dd748de3e9792d6f89a820fb67e4af1e8cc
5
5
  SHA512:
6
- metadata.gz: 95504c375874a4b29bd2d658c8efcc32ae36327e1324ea87ffd63dc40aee0918e4a7c837eaa8bf3b1b475d6aa7954ddd3fec691b1ffe8f796939736265bc34d0
7
- data.tar.gz: 852ed588119d19c51a22f6406288adf76ff8d76f4bba0d7cbeb625640d74936c7e544f74bca7b872332cdb0dcf639e2bb1f39ae24a09960720b55d0ea30f1f22
6
+ metadata.gz: bf5667f8ddfc6b89c5c1ff5131925e4a75da426716401511b039ccf219f0761180301ea53d2431b70fb3a3589fd2753a6817d76bf65261152388a7ff61d28d46
7
+ data.tar.gz: fb0a771492810d55279fafe53b94a8ab530baf7945f300e433cfa73aa17f31cd25aa20b2b9137e4485755839b748d50ab3e8d7bbe39a22dbb9176424e1074cb9
@@ -1,5 +1,6 @@
1
1
  require 'socket'
2
2
  require 'aws/xray/annotation_normalizer'
3
+ require 'aws/xray/version_detector'
3
4
 
4
5
  module Aws
5
6
  module Xray
@@ -3,7 +3,6 @@ module Aws
3
3
  module HeaderParser
4
4
  extend self
5
5
 
6
- # XXX: returns error when given invaild header_value
7
6
  # Header format document: http://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader
8
7
  def parse(header_value)
9
8
  h = {}
@@ -13,7 +12,7 @@ module Aws
13
12
  header_value.chars.each_with_index do |c, i|
14
13
  next if space?(c)
15
14
  if delim?(c)
16
- h[key] = value
15
+ h[key] = value unless key.empty?
17
16
  key, value = '', ''
18
17
  value_mode = false
19
18
  next
@@ -1,7 +1,6 @@
1
1
  require 'aws/xray/trace'
2
2
  require 'aws/xray/client'
3
3
  require 'aws/xray/context'
4
- require 'aws/xray/version_detector'
5
4
 
6
5
  module Aws
7
6
  module Xray
@@ -32,12 +31,7 @@ module Aws
32
31
  private
33
32
 
34
33
  def call_with_tracing(env)
35
- header_value = env[TRACE_ENV]
36
- trace = if header_value
37
- Trace.build_from_header_value(header_value)
38
- else
39
- Trace.generate
40
- end
34
+ trace = build_trace(env[TRACE_ENV])
41
35
  env[ORIGINAL_TRACE_ENV] = env[TRACE_ENV] # just for the record
42
36
  env[TRACE_ENV] = trace.to_header_value
43
37
 
@@ -45,12 +39,20 @@ module Aws
45
39
  Context.current.base_trace do |seg|
46
40
  seg.set_http_request(Request.build_from_rack_env(env))
47
41
  status, headers, body = @app.call(env)
48
- seg.set_http_response(status, headers['Content-Length'])
42
+ seg.set_http_response(status, headers['Content-Length'] || 0)
49
43
  headers[TRACE_HEADER] = trace.to_header_value
50
44
  [status, headers, body]
51
45
  end
52
46
  end
53
47
  end
48
+
49
+ def build_trace(header_value)
50
+ if header_value
51
+ Trace.build_from_header_value(header_value)
52
+ else
53
+ Trace.generate
54
+ end
55
+ end
54
56
  end
55
57
  end
56
58
  end
@@ -17,7 +17,6 @@ module Aws
17
17
 
18
18
  attr_reader :name, :id, :trace_id, :parent_id
19
19
 
20
- # TODO: securerandom?
21
20
  def initialize(name:, trace_id:, parent_id: nil)
22
21
  @name = name
23
22
  @id = SecureRandom.hex(8)
@@ -9,14 +9,14 @@ module Aws
9
9
  new(root: generate_root(now))
10
10
  end
11
11
 
12
- def build_from_header_value(header_value)
12
+ def build_from_header_value(header_value, now = Time.now)
13
13
  h = HeaderParser.parse(header_value)
14
- new(root: h.fetch('Root'), sampled: h['Sampled'] != '0', parent: h['Parent'])
14
+ root = h['Root'] || generate_root(now)
15
+ new(root: root, sampled: h['Sampled'] != '0', parent: h['Parent'])
15
16
  end
16
17
 
17
18
  private
18
19
 
19
- # XXX: securerandom?
20
20
  def generate_root(now)
21
21
  "1-#{now.to_i.to_s(16)}-#{SecureRandom.hex(12)}"
22
22
  end
@@ -1,5 +1,5 @@
1
1
  module Aws
2
2
  module Xray
3
- VERSION = '0.9.5'
3
+ VERSION = '0.9.6'
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.9.5
4
+ version: 0.9.6
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-03 00:00:00.000000000 Z
11
+ date: 2017-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday