aws-xray 0.9.5 → 0.9.6

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: 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