zipkin-tracer 0.43.1 → 0.47.1

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
  SHA256:
3
- metadata.gz: 2493a14e47c3a0a3b5f1873e37a0d3fdfcc6c8cba395fbb8c894edacec1449c4
4
- data.tar.gz: 7f27e5b54765e4374be3cd18181bcb52b7629ac12c2b9c00f56b9a03d67bea5b
3
+ metadata.gz: ce3094b9f74dd042c34745150a69644c87e61acb21b973c0aac0eae21e4b1a94
4
+ data.tar.gz: bf11f2ddb0503cf448cf2e0595418bce982cb1c4f1fd7594fbce0db5e3422a2f
5
5
  SHA512:
6
- metadata.gz: f067698e91c87ee24909f7c4f3f47ffa3c081b06e8d6bade1788231835694c4f91d07e3373658427672b20d2e9a7403395bb989a1192b371c3ad1d4e59907c26
7
- data.tar.gz: b0f099816909682ec8c6fec3a72426f5beb38ace33a5553b8214eb8778604cd33d9f641db3715548660671f0107c868f2c1f15cc1558fc12b1707f3cdf68fdc5
6
+ metadata.gz: 4ea9e6b556a501c882b06c22261e65d44e917d695f0624b677f261751e2bfd6054b6152dde01773c2b92e016226b40242252ae9d3a1b1d1dd734b420f22bc397
7
+ data.tar.gz: 5dd88683e1f4b1727acbd41ca2ae0457cae8ff100853beaee5cb578e87a55fa1ebd733951b915a1047c4c3328005337f59df8bb40840cc5d386fd53525fd5f22
data/.gitignore CHANGED
@@ -9,16 +9,20 @@
9
9
  /test/version_tmp/
10
10
  /tmp/
11
11
 
12
- ## Documentation cache and generated files:
12
+ # Documentation cache and generated files:
13
13
  /.yardoc/
14
14
  /_yardoc/
15
15
  /doc/
16
16
  /rdoc/
17
17
 
18
- ## Environment normalisation:
18
+ # Environment normalisation:
19
19
  /.bundle/
20
20
  /lib/bundler/man/
21
21
 
22
+ # Appraisal related files
23
+ /gemfiles/.bundle/
24
+ /gemfiles/*.gemfile.lock
25
+
22
26
  # for a library or gem, you might want to ignore these files since the code is
23
27
  # intended to run in multiple environments; otherwise, check them in:
24
28
  # Gemfile.lock
@@ -1,15 +1,22 @@
1
1
  language: ruby
2
2
  dist: bionic
3
- jdk:
4
- - openjdk11
3
+ jdk: openjdk11
4
+
5
5
  rvm:
6
- - 2.7
7
- - 2.6
8
- - 2.5
9
- - 2.4
10
6
  - 2.3
7
+ - 2.4
8
+ - 2.5
9
+ - 2.6
10
+ - 2.7
11
11
  - jruby-9.1
12
12
  - jruby-9.2
13
+
14
+ gemfile:
15
+ - gemfiles/faraday_0.x.gemfile
16
+ - gemfiles/faraday_1.x.gemfile
17
+
18
+ script: bundle exec rspec
19
+
13
20
  deploy:
14
21
  provider: rubygems
15
22
  api_key:
@@ -18,7 +25,8 @@ deploy:
18
25
  on:
19
26
  tags: true
20
27
  repo: openzipkin/zipkin-ruby
21
- condition: "$TRAVIS_RUBY_VERSION == 2.6"
28
+ condition: $TRAVIS_RUBY_VERSION == 2.7 && $BUNDLE_GEMFILE == $TRAVIS_BUILD_DIR/gemfiles/faraday_1.x.gemfile
29
+
22
30
  notifications:
23
31
  webhooks:
24
32
  urls:
@@ -26,4 +34,3 @@ notifications:
26
34
  - https://webhooks.gitter.im/e/e57478303f87ecd7bffc
27
35
  on_success: change
28
36
  on_failure: always
29
- script: "bundle exec rspec"
@@ -0,0 +1,7 @@
1
+ appraise 'faraday_0.x' do
2
+ gem 'faraday', '~> 0.13'
3
+ end
4
+
5
+ appraise 'faraday_1.x' do
6
+ gem 'faraday', '~> 1.0'
7
+ end
@@ -1,3 +1,18 @@
1
+ # 0.47.1
2
+ * Fix to set `SERVER` span kind at the beginning to avoid being flushed before closing.
3
+
4
+ # 0.47.0
5
+ * Add a `check_routes` option to make the routable request check optional.
6
+
7
+ # 0.46.0
8
+ * Add Amazon SQS tracer.
9
+
10
+ # 0.45.0
11
+ * Add a `trace_context` option to the TraceWrapper utility class to retrieve trace data.
12
+
13
+ # 0.44.0
14
+ * Allow Faraday 1.x.
15
+
1
16
  # 0.43.1
2
17
  * Fix to not flush `PRODUCER` span when a server span is in the stack.
3
18
 
data/README.md CHANGED
@@ -21,6 +21,7 @@ use ZipkinTracer::RackHandler, config
21
21
  * `:service_name` **REQUIRED** - the name of the service being traced. There are two ways to configure this value. Either write the service name in the config file or set the "DOMAIN" environment variable (e.g. 'test-service.example.com' or 'test-service'). The environment variable takes precedence over the config file value.
22
22
  * `:sample_rate` (default: 0.1) - the ratio of requests to sample, from 0 to 1
23
23
  * `:sampled_as_boolean` - When set to true (default but deprecrated), it uses true/false for the `X-B3-Sampled` header. When set to false uses 1/0 which is preferred.
24
+ * `:check_routes` - When set to `true`, only routable requests are sampled. Defaults to `false`.
24
25
  * `:trace_id_128bit` - When set to true, high 8-bytes will be prepended to trace_id. The upper 4-bytes are epoch seconds and the lower 4-bytes are random. This makes it convertible to Amazon X-Ray trace ID format v1. (See http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-request-tracing.html)
25
26
  * `:async` - By default senders will flush traces asynchronously. Set to `false` to make that process synchronous. Only supported by the HTTP, RabbitMQ, and SQS senders.
26
27
  * `:logger` - The default logger for Rails apps is `Rails.logger`, else it is `STDOUT`. Use this option to pass a custom logger.
@@ -43,11 +44,6 @@ use ZipkinTracer::RackHandler, config
43
44
 
44
45
  ### Sending traces on outgoing requests with Faraday
45
46
 
46
- First, Faraday has to be part of your Gemfile:
47
- ```
48
- gem 'faraday', '~> 0.8'
49
- ```
50
-
51
47
  For the Faraday middleware to have the correct trace ID, the rack middleware should be used in your application as explained above.
52
48
 
53
49
  Then include `ZipkinTracer::FaradayHandler` as a Faraday middleware:
@@ -56,10 +52,8 @@ Then include `ZipkinTracer::FaradayHandler` as a Faraday middleware:
56
52
  require 'faraday'
57
53
  require 'zipkin-tracer'
58
54
 
59
- conn = Faraday.new(:url => 'http://localhost:9292/') do |faraday|
55
+ conn = Faraday.new(url: 'http://localhost:9292/') do |faraday|
60
56
  faraday.use ZipkinTracer::FaradayHandler, 'service_name' # 'service_name' is optional (but recommended)
61
- # default Faraday stack
62
- faraday.request :url_encoded
63
57
  faraday.adapter Faraday.default_adapter
64
58
  end
65
59
  ```
@@ -88,6 +82,38 @@ end
88
82
 
89
83
  By default workers aren't traced. You can specify the workers that you want to trace with traceable_workers config option. If you want all your workers to be traced pass [:all] to traceable_workers option (traceable_workers: [:all]).
90
84
 
85
+ ### Tracing Amazon SQS messages
86
+
87
+ Amazon SQS tracing can be turned on by requiring [zipkin-tracer/sqs/adapter](lib/zipkin-tracer/sqs/adapter.rb):
88
+ ```ruby
89
+ require 'zipkin-tracer/sqs/adapter'
90
+ ```
91
+
92
+ This SQS adapter overrides the `send_message` and `send_message_batch` methods to add trace data as message attributes and to generate a producer span when the methods are called. Since all SQS messages are affected, it is not recommended to use this feature with the [SQS sender](lib/zipkin-tracer/zipkin_sqs_sender.rb).
93
+
94
+ When receiving messages, you need to pass the `message_attribute_names: ['All']` option to retrive message attributes:
95
+ ```ruby
96
+ resp = sqs.receive_message(
97
+ queue_url: queue_url,
98
+ message_attribute_names: ['All']
99
+ )
100
+ ```
101
+
102
+ Then you can utilize the [TraceWrapper](#tracewrapper) class to generate a consumer span:
103
+ ```ruby
104
+ msg = resp.messages.first
105
+ trace_context = msg.message_attributes.each_with_object({}) { |(key, value), hsh| hsh[key.to_sym] = value.string_value }
106
+
107
+ TraceWrapper.wrap_in_custom_span(config, 'receive_message',
108
+ span_kind: Trace::Span::Kind::CONSUMER,
109
+ trace_context: trace_context
110
+ ) do |span|
111
+ span.remote_endpoint = Trace::Endpoint.remote_endpoint(nil, 'amazon-sqs')
112
+ span.record_tag('queue.url', queue_url)
113
+ :
114
+ end
115
+ ```
116
+
91
117
  ### Local tracing
92
118
 
93
119
  `ZipkinTracer::TraceClient` provides an API to record local traces in your application.
@@ -249,6 +275,18 @@ TraceWrapper.wrap_in_custom_span(config, "custom span") do |span|
249
275
  end
250
276
  ```
251
277
 
278
+ The `trace_context:` keyword argument can be used to retrieve trace data:
279
+ ```ruby
280
+ trace_context = {
281
+ trace_id: '234555b04cf7e099',
282
+ span_id: '234555b04cf7e099',
283
+ sampled: 'true'
284
+ }
285
+
286
+ TraceWrapper.wrap_in_custom_span(config, "custom span", trace_context: trace_context) do |span|
287
+ :
288
+ end
289
+ ```
252
290
 
253
291
  ## Development
254
292
 
@@ -0,0 +1,18 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "faraday", "~> 0.13"
6
+
7
+ platforms :ruby do
8
+ gem "benchmark-ips"
9
+ gem "rbtrace"
10
+ gem "byebug"
11
+ gem "simplecov", require: false
12
+ end
13
+
14
+ platforms :jruby do
15
+ gem "hermann", "~> 0.27.0"
16
+ end
17
+
18
+ gemspec path: "../"
@@ -0,0 +1,18 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "faraday", "~> 1.0"
6
+
7
+ platforms :ruby do
8
+ gem "benchmark-ips"
9
+ gem "rbtrace"
10
+ gem "byebug"
11
+ gem "simplecov", require: false
12
+ end
13
+
14
+ platforms :jruby do
15
+ gem "hermann", "~> 0.27.0"
16
+ end
17
+
18
+ gemspec path: "../"
@@ -5,7 +5,7 @@ require 'zipkin-tracer/rack/zipkin-tracer'
5
5
  module ZipkinTracer
6
6
  # Configuration of this gem. It reads the configuration and provides default values
7
7
  class Config
8
- attr_reader :service_name, :sample_rate, :sampled_as_boolean, :trace_id_128bit, :async, :logger,
8
+ attr_reader :service_name, :sample_rate, :sampled_as_boolean, :check_routes, :trace_id_128bit, :async, :logger,
9
9
  :json_api_host, :zookeeper, :kafka_producer, :kafka_topic, :sqs_queue_name, :sqs_region, :log_tracing,
10
10
  :annotate_plugin, :filter_plugin, :whitelist_plugin, :rabbit_mq_connection, :rabbit_mq_exchange,
11
11
  :rabbit_mq_routing_key, :write_b3_single_format
@@ -47,6 +47,8 @@ module ZipkinTracer
47
47
  if @sampled_as_boolean
48
48
  @logger && @logger.warn("Using a boolean in the Sampled header is deprecated. Consider setting sampled_as_boolean to false")
49
49
  end
50
+ # When set to true, only routable requests are sampled
51
+ @check_routes = config[:check_routes].nil? ? DEFAULTS[:check_routes] : config[:check_routes]
50
52
 
51
53
  # When set to true, high 8-bytes will be prepended to trace_id.
52
54
  # The upper 4-bytes are epoch seconds and the lower 4-bytes are random.
@@ -95,6 +97,7 @@ module ZipkinTracer
95
97
  DEFAULTS = {
96
98
  sample_rate: 0.1,
97
99
  sampled_as_boolean: true,
100
+ check_routes: false,
98
101
  trace_id_128bit: false,
99
102
  write_b3_single_format: false
100
103
  }
@@ -11,15 +11,17 @@ module ZipkinTracer
11
11
 
12
12
  each_endpoint(spans) do |endpoint|
13
13
  hostname = endpoint.ipv4
14
- unless resolved_ip_address?(hostname.to_s)
15
- endpoint.ipv4 = resolved_hosts[hostname]
16
- end
14
+ next unless hostname
15
+ next if resolved_ip_address?(hostname.to_s)
16
+
17
+ endpoint.ipv4 = resolved_hosts[hostname]
17
18
  end
18
19
  end
19
20
 
20
21
  private
22
+
21
23
  LOCALHOST = '127.0.0.1'.freeze
22
- LOCALHOST_I32 = 0x7f000001.freeze
24
+ LOCALHOST_I32 = 0x7f000001
23
25
  MAX_I32 = ((2 ** 31) - 1)
24
26
  MASK = (2 ** 32) - 1
25
27
  IP_FIELD = 3
@@ -49,10 +51,9 @@ module ZipkinTracer
49
51
  end
50
52
 
51
53
  def resolve(hosts, ip_format)
52
- hosts.inject({}) do |host_map, host|
54
+ hosts.each_with_object({}) do |host, host_map|
53
55
  hostname = host.ipv4 # This field has been temporarly used to store the hostname.
54
- host_map[hostname] = host_to_format(hostname, ip_format)
55
- host_map
56
+ host_map[hostname] = host_to_format(hostname, ip_format) if hostname
56
57
  end
57
58
  end
58
59
 
@@ -25,6 +25,7 @@ module ZipkinTracer
25
25
  @app.call(env)
26
26
  else
27
27
  @tracer.with_new_span(trace_id, span_name(env)) do |span|
28
+ span.kind = Trace::Span::Kind::SERVER
28
29
  trace!(span, zipkin_env) { @app.call(env) }
29
30
  end
30
31
  end
@@ -55,7 +56,6 @@ module ZipkinTracer
55
56
  end
56
57
 
57
58
  def trace_server_information(span, zipkin_env, status)
58
- span.kind = Trace::Span::Kind::SERVER
59
59
  span.record_status(status)
60
60
  SERVER_RECV_TAGS.each { |annotation_key, env_key| span.record_tag(annotation_key, zipkin_env.env[env_key]) }
61
61
  end
@@ -71,7 +71,7 @@ module ZipkinTracer
71
71
  if parent_trace_sampled # A service upstream decided this goes in all the way
72
72
  parent_trace_sampled
73
73
  else
74
- new_sampled_header_value(force_sample? || current_trace_sampled? && !filtered? && routable_request?)
74
+ new_sampled_header_value(force_sample? || current_trace_sampled? && !filtered? && traceable_request?)
75
75
  end
76
76
  end
77
77
 
@@ -83,9 +83,10 @@ module ZipkinTracer
83
83
  @config.filter_plugin && !@config.filter_plugin.call(@env)
84
84
  end
85
85
 
86
- def routable_request?
86
+ def traceable_request?
87
+ return true unless @config.check_routes
88
+
87
89
  Application.routable_request?(@env)
88
90
  end
89
-
90
91
  end
91
92
  end
@@ -0,0 +1,4 @@
1
+ require 'aws-sdk-sqs'
2
+ require 'zipkin-tracer/sqs/zipkin-tracer'
3
+
4
+ Aws::SQS::Client.prepend(ZipkinTracer::SqsHandler)
@@ -0,0 +1,57 @@
1
+ module ZipkinTracer
2
+ # This module is designed to prepend to the SQS client to add trace data as message attributes.
3
+ # https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-sdk-sqs/lib/aws-sdk-sqs/client.rb
4
+ module SqsHandler
5
+ def send_message(params = {}, options = {})
6
+ zipkin_sqs_trace_wrapper(params, __method__) { |params_with_trace| super(params_with_trace, options) }
7
+ end
8
+
9
+ def send_message_batch(params = {}, options = {})
10
+ zipkin_sqs_trace_wrapper(params, __method__) { |params_with_trace| super(params_with_trace, options) }
11
+ end
12
+
13
+ private
14
+
15
+ ZIPKIN_KEYS = %i[trace_id parent_id span_id sampled].freeze
16
+ ZIPKIN_REMOTE_ENDPOINT_SQS = Trace::Endpoint.remote_endpoint(nil, 'amazon-sqs')
17
+
18
+ def zipkin_sqs_trace_wrapper(params, method_name)
19
+ trace_id = TraceGenerator.new.next_trace_id
20
+ zipkin_set_message_attributes(params, method_name, trace_id)
21
+
22
+ TraceContainer.with_trace_id(trace_id) do
23
+ if Trace.tracer && trace_id.sampled?
24
+ Trace.tracer.with_new_span(trace_id, method_name) do |span|
25
+ span.kind = Trace::Span::Kind::PRODUCER
26
+ span.remote_endpoint = ZIPKIN_REMOTE_ENDPOINT_SQS
27
+ span.record_tag('queue.url', params[:queue_url])
28
+ yield(params)
29
+ end
30
+ else
31
+ yield(params)
32
+ end
33
+ end
34
+ end
35
+
36
+ def zipkin_set_message_attributes(params, method_name, trace_id)
37
+ attributes = zipkin_message_attributes(trace_id)
38
+ case method_name
39
+ when :send_message
40
+ params[:message_attributes] = attributes.merge(params[:message_attributes] || {})
41
+ when :send_message_batch
42
+ params[:entries].each do |entry|
43
+ entry[:message_attributes] = attributes.merge(entry[:message_attributes] || {})
44
+ end
45
+ end
46
+ end
47
+
48
+ def zipkin_message_attributes(trace_id)
49
+ ZIPKIN_KEYS.each_with_object({}) do |zipkin_key, message_attributes|
50
+ zipkin_value = trace_id.send(zipkin_key)
51
+ next unless zipkin_value
52
+
53
+ message_attributes[zipkin_key] = { string_value: zipkin_value.to_s, data_type: 'String' }
54
+ end
55
+ end
56
+ end
57
+ end
@@ -115,21 +115,21 @@ module Trace
115
115
  end
116
116
 
117
117
  def next_id
118
- TraceId.new(@trace_id, @span_id, ZipkinTracer::TraceGenerator.new.generate_id, @sampled, @flags)
118
+ TraceId.new(trace_id, span_id, ZipkinTracer::TraceGenerator.new.generate_id, sampled, flags)
119
119
  end
120
120
 
121
121
  # the debug flag is used to ensure the trace passes ALL samplers
122
122
  def debug?
123
- @flags & Flags::DEBUG == Flags::DEBUG
123
+ flags & Flags::DEBUG == Flags::DEBUG
124
124
  end
125
125
 
126
126
  def sampled?
127
- debug? || ['1', 'true'].include?(@sampled)
127
+ debug? || %w[1 true].include?(sampled)
128
128
  end
129
129
 
130
130
  def to_s
131
- "TraceId(trace_id = #{@trace_id.to_s}, parent_id = #{@parent_id.to_s}, span_id = #{@span_id.to_s}," \
132
- " sampled = #{@sampled.to_s}, flags = #{@flags.to_s}, shared = #{@shared.to_s})"
131
+ "TraceId(trace_id = #{trace_id}, parent_id = #{parent_id}, span_id = #{span_id}," \
132
+ " sampled = #{sampled}, flags = #{flags}, shared = #{shared})"
133
133
  end
134
134
  end
135
135
 
@@ -277,8 +277,8 @@ module Trace
277
277
  end
278
278
 
279
279
  def self.remote_endpoint(url, remote_service_name)
280
- service_name = remote_service_name || url.host.split('.').first || UNKNOWN_URL # default to url-derived service name
281
- Endpoint.new(url.host, url.port, service_name)
280
+ service_name = remote_service_name || url&.host&.split('.')&.first || UNKNOWN_URL # default to url-derived service name
281
+ Endpoint.new(url&.host, url&.port, service_name)
282
282
  end
283
283
 
284
284
  def to_h
@@ -1,10 +1,13 @@
1
1
  module ZipkinTracer
2
2
  class TraceWrapper
3
- def self.wrap_in_custom_span(config, span_name, span_kind: Trace::Span::Kind::SERVER, app: nil)
3
+ REQUIRED_KEYS = %i[trace_id span_id].freeze
4
+ KEYS = %i[trace_id parent_id span_id sampled].freeze
5
+
6
+ def self.wrap_in_custom_span(config, span_name, span_kind: Trace::Span::Kind::SERVER, app: nil, trace_context: nil)
4
7
  raise ArgumentError, "you must provide a block" unless block_given?
5
8
 
6
9
  initialize_tracer(app, config)
7
- trace_id = ZipkinTracer::TraceGenerator.new.next_trace_id
10
+ trace_id = next_trace_id(trace_context)
8
11
 
9
12
  ZipkinTracer::TraceContainer.with_trace_id(trace_id) do
10
13
  if trace_id.sampled?
@@ -24,5 +27,13 @@ module ZipkinTracer
24
27
  zipkin_config = ZipkinTracer::Config.new(app, config).freeze
25
28
  ZipkinTracer::TracerFactory.new.tracer(zipkin_config)
26
29
  end
30
+
31
+ def self.next_trace_id(trace_context)
32
+ if trace_context.is_a?(Hash) && REQUIRED_KEYS.all? { |key| trace_context.key?(key) }
33
+ Trace::TraceId.new(*trace_context.values_at(*KEYS), Trace::Flags::EMPTY).next_id
34
+ else
35
+ ZipkinTracer::TraceGenerator.new.next_trace_id
36
+ end
37
+ end
27
38
  end
28
39
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ZipkinTracer
2
- VERSION = '0.43.1'.freeze
4
+ VERSION = '0.47.1'
3
5
  end
@@ -7,8 +7,7 @@ module Trace
7
7
  # Senders dealing with zipkin should inherit from this class and implement the
8
8
  # flush! method which actually sends the information
9
9
  class ZipkinSenderBase
10
-
11
- def initialize(options={})
10
+ def initialize(options = {})
12
11
  @options = options
13
12
  reset
14
13
  end
@@ -40,7 +39,10 @@ module Trace
40
39
 
41
40
  def skip_flush?(span)
42
41
  return true if span.kind == Trace::Span::Kind::CLIENT && span.has_parent_span?
43
- return true if span.kind == Trace::Span::Kind::PRODUCER && spans.any? { |s| s.kind == Trace::Span::Kind::SERVER }
42
+
43
+ if span.kind == Trace::Span::Kind::PRODUCER
44
+ return true if spans.any? { |s| s.kind == Trace::Span::Kind::SERVER || s.kind == Trace::Span::Kind::CONSUMER }
45
+ end
44
46
  end
45
47
 
46
48
  def flush!
@@ -62,6 +64,5 @@ module Trace
62
64
  def reset
63
65
  Thread.current[THREAD_KEY] = []
64
66
  end
65
-
66
67
  end
67
68
  end
@@ -24,16 +24,17 @@ Gem::Specification.new do |s|
24
24
  end
25
25
  s.require_paths = ['lib']
26
26
 
27
- s.add_dependency 'faraday', '~> 0.13'
27
+ s.add_dependency 'faraday', '>= 0.13', '< 2.0'
28
28
  s.add_dependency 'rack', '>= 1.0'
29
29
  s.add_dependency 'sucker_punch', '~> 2.0'
30
30
 
31
+ s.add_development_dependency 'appraisal'
31
32
  s.add_development_dependency 'aws-sdk-sqs', '~> 1.0'
32
33
  s.add_development_dependency 'excon', '~> 0.53'
33
34
  s.add_development_dependency 'rspec', '~> 3.8'
34
35
  s.add_development_dependency 'rspec-json_expectations', '~> 2.2'
35
36
  s.add_development_dependency 'rack-test', '~> 1.1'
36
- s.add_development_dependency 'rake', '~> 10.0'
37
+ s.add_development_dependency 'rake', '~> 13.0'
37
38
  s.add_development_dependency 'timecop', '~> 0.8'
38
39
  s.add_development_dependency 'webmock', '~> 3.0'
39
40
  s.add_development_dependency 'simplecov', '~> 0.16'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zipkin-tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.43.1
4
+ version: 0.47.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franklin Hu
@@ -14,22 +14,28 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2020-03-25 00:00:00.000000000 Z
17
+ date: 2020-10-07 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: faraday
21
21
  requirement: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0.13'
26
+ - - "<"
27
+ - !ruby/object:Gem::Version
28
+ version: '2.0'
26
29
  type: :runtime
27
30
  prerelease: false
28
31
  version_requirements: !ruby/object:Gem::Requirement
29
32
  requirements:
30
- - - "~>"
33
+ - - ">="
31
34
  - !ruby/object:Gem::Version
32
35
  version: '0.13'
36
+ - - "<"
37
+ - !ruby/object:Gem::Version
38
+ version: '2.0'
33
39
  - !ruby/object:Gem::Dependency
34
40
  name: rack
35
41
  requirement: !ruby/object:Gem::Requirement
@@ -58,6 +64,20 @@ dependencies:
58
64
  - - "~>"
59
65
  - !ruby/object:Gem::Version
60
66
  version: '2.0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: appraisal
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
61
81
  - !ruby/object:Gem::Dependency
62
82
  name: aws-sdk-sqs
63
83
  requirement: !ruby/object:Gem::Requirement
@@ -134,14 +154,14 @@ dependencies:
134
154
  requirements:
135
155
  - - "~>"
136
156
  - !ruby/object:Gem::Version
137
- version: '10.0'
157
+ version: '13.0'
138
158
  type: :development
139
159
  prerelease: false
140
160
  version_requirements: !ruby/object:Gem::Requirement
141
161
  requirements:
142
162
  - - "~>"
143
163
  - !ruby/object:Gem::Version
144
- version: '10.0'
164
+ version: '13.0'
145
165
  - !ruby/object:Gem::Dependency
146
166
  name: timecop
147
167
  requirement: !ruby/object:Gem::Requirement
@@ -200,6 +220,7 @@ files:
200
220
  - ".gitignore"
201
221
  - ".rspec"
202
222
  - ".travis.yml"
223
+ - Appraisals
203
224
  - CHANGELOG.md
204
225
  - Gemfile
205
226
  - LICENSE
@@ -209,6 +230,8 @@ files:
209
230
  - Rakefile
210
231
  - bin/console
211
232
  - bin/setup
233
+ - gemfiles/faraday_0.x.gemfile
234
+ - gemfiles/faraday_1.x.gemfile
212
235
  - lib/zipkin-tracer.rb
213
236
  - lib/zipkin-tracer/application.rb
214
237
  - lib/zipkin-tracer/config.rb
@@ -218,6 +241,8 @@ files:
218
241
  - lib/zipkin-tracer/rack/zipkin-tracer.rb
219
242
  - lib/zipkin-tracer/rack/zipkin_env.rb
220
243
  - lib/zipkin-tracer/sidekiq/middleware.rb
244
+ - lib/zipkin-tracer/sqs/adapter.rb
245
+ - lib/zipkin-tracer/sqs/zipkin-tracer.rb
221
246
  - lib/zipkin-tracer/trace.rb
222
247
  - lib/zipkin-tracer/trace_client.rb
223
248
  - lib/zipkin-tracer/trace_container.rb