aws-xray 0.19.0.beta1 → 0.19.0.beta2

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: 9f0218d89ab6e56b753057c38781e756412ca766
4
- data.tar.gz: 232fb91a69d318c535249803a4c1f292158b4331
3
+ metadata.gz: 04bfc0455b6d3432e76d99375ae6f13a4a025d2d
4
+ data.tar.gz: 62f8cd7d1a8987845e7ac16830c2ef2d8ae1aeac
5
5
  SHA512:
6
- metadata.gz: da3574d466ec8181955f4d3919c95240da461339c2ef101c33c8d34dd652b995b75ee5d00319302ee7f5e7513e3d3484e4d9d43d2cc08fbc2f043ffee37d08df
7
- data.tar.gz: 277dedd93475c26178400807dfb2aaa7b8cf0c27e9cc032c815a52271fcc0848db66ec4dce0903a6b902f83257fed4469061c0428a4b9da8a180db60e8ea687a
6
+ metadata.gz: f0fff3ec264805f7308d72d0ec04482b68b389a180e07bc5d2e18d2ac5a32659808499f6a67504b3839220d03b59bcad3f24a137c979dd54129553f1ee1ccafb
7
+ data.tar.gz: 72b263ce13cec59bceaeac920c9218109a5b58f4a2b8e5bfa74e4345fc565793ec71c868486a6fabbfad5ab8ad1f1a6c91cf5f506c58523013a159f778096fc2
data/README.md CHANGED
@@ -133,7 +133,7 @@ end
133
133
 
134
134
  ## Configurations
135
135
  ### X-Ray agent location
136
- aws-xray does not send any trace data dby efault. Set `AWS_XRAY_LOCATION` environment variable like `AWS_XRAY_LOCATION=localhost:2000`
136
+ aws-xray does not send any trace data by default. Set `AWS_XRAY_LOCATION` environment variable like `AWS_XRAY_LOCATION=localhost:2000`
137
137
  or set proper aws-agent location with configuration interface like `Aws::Xray.config.client_options = { host: "localhost", port: 2000 }`.
138
138
 
139
139
  In container environments, we often run xray agent container beside application container.
@@ -1,3 +1,5 @@
1
+ require 'logger'
2
+
1
3
  require 'aws/xray/version'
2
4
  require 'aws/xray/errors'
3
5
  require 'aws/xray/trace'
@@ -19,6 +21,7 @@ module Aws
19
21
  class << self
20
22
  attr_reader :config
21
23
  end
24
+ Worker.reset(Worker::Configuration.new)
22
25
 
23
26
  # @param [String] name a logical name of this tracing context.
24
27
  def self.trace(name: nil)
@@ -18,13 +18,16 @@ module Aws
18
18
  # When UDPSocket#send can not send all bytes, just give up it.
19
19
  # @param [Aws::Xray::Segment] segment
20
20
  def send_segment(segment)
21
+ Aws::Xray.config.logger.debug("#{Thread.current}: Client#send_segment started")
21
22
  payload = %!{"format": "json", "version": 1}\n#{segment.to_json}\n!
22
23
 
23
24
  begin
24
25
  if @sock # test env or not aws-xray is not enabled
25
26
  send_payload(payload)
27
+ Aws::Xray.config.logger.debug("#{Thread.current}: Client#send_segment called #send_payload in the same thread")
26
28
  else # production env
27
29
  Worker.post(payload, self.copy)
30
+ Aws::Xray.config.logger.debug("#{Thread.current}: Client#send_segment posted a job to worker")
28
31
  end
29
32
  rescue QueueIsFullError => e
30
33
  begin
@@ -38,11 +41,13 @@ module Aws
38
41
  # Will be called in other threads.
39
42
  # @param [String] payload
40
43
  def send_payload(payload)
44
+ Aws::Xray.config.logger.debug("#{Thread.current}: Client#send_payload")
41
45
  sock = @sock || UDPSocket.new
42
46
 
43
47
  begin
44
48
  len = sock.send(payload, Socket::MSG_DONTWAIT, @host, @port)
45
49
  raise CanNotSendAllByteError.new(payload.size, len) if payload.size != len
50
+ Aws::Xray.config.logger.debug("#{Thread.current}: Client#send_payload successfully sent payload, len=#{len}")
46
51
  len
47
52
  rescue SystemCallError, SocketError, CanNotSendAllByteError => e
48
53
  begin
@@ -7,6 +7,10 @@ module Aws
7
7
  module Xray
8
8
  # thread-unsafe, suppose to be used only in initialization phase.
9
9
  class Configuration
10
+ def initialize
11
+ @logger = ::Logger.new($stdout).tap {|l| l.level = Logger::INFO }
12
+ end
13
+
10
14
  # @return [String] name Logical service name for this application.
11
15
  def name
12
16
  @name ||= ENV['AWS_XRAY_NAME']
@@ -98,6 +102,10 @@ module Aws
98
102
  end
99
103
  # @param [Float] sampling_rate
100
104
  attr_writer :sampling_rate
105
+
106
+ # @param [Logger] logger
107
+ # @return [Logger]
108
+ attr_accessor :logger
101
109
  end
102
110
  end
103
111
  end
@@ -1,5 +1,5 @@
1
1
  module Aws
2
2
  module Xray
3
- VERSION = '0.19.0.beta1'
3
+ VERSION = '0.19.0.beta2'
4
4
  end
5
5
  end
@@ -17,7 +17,9 @@ module Aws
17
17
  # @param [String] payload to send
18
18
  # @param [Aws::Xray::Client] client
19
19
  def post(payload, client)
20
+ Aws::Xray.config.logger.debug("#{Thread.current}: Worker.post received a job")
20
21
  @queue.push(Item.new(payload, client.copy))
22
+ Aws::Xray.config.logger.debug("#{Thread.current}: Worker.post pushed a job")
21
23
  rescue ThreadError => e
22
24
  raise QueueIsFullError.new(e)
23
25
  end
@@ -38,19 +40,20 @@ module Aws
38
40
  def run
39
41
  th = Thread.new(@queue) do |queue|
40
42
  loop do
43
+ Aws::Xray.config.logger.debug("#{Thread.current}: Worker#run waits a job")
41
44
  item = queue.pop
45
+ Aws::Xray.config.logger.debug("#{Thread.current}: Worker#run received a job")
42
46
  if item.is_a?(Item)
43
47
  item.client.send_payload(item.payload)
48
+ Aws::Xray.config.logger.debug("#{Thread.current}: Worker#run sent a payload")
44
49
  else
45
- # TODO
50
+ Aws::Xray.config.logger.debug("#{Thread.current}: Worker#run received invalid item, ignored it")
46
51
  end
47
52
  end
48
53
  end
49
54
  th.abort_on_exception = true
50
55
  th
51
56
  end
52
-
53
- reset(Aws::Xray::Worker::Configuration.new)
54
57
  end
55
58
  end
56
59
  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.19.0.beta1
4
+ version: 0.19.0.beta2
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-18 00:00:00.000000000 Z
11
+ date: 2017-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday