zipkin-tracer 0.4.0 → 0.5.1

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODAyNWNhMDMzYmJjY2RiODkyNGIwNjY1Y2FiYTZhZmRiN2E3NmJlYw==
5
- data.tar.gz: !binary |-
6
- MmZlNDUwMDI5ZmY5N2E0YjlmNWY0NGFhNDU4MWQ4OWNkYTA5YzE3MA==
2
+ SHA1:
3
+ metadata.gz: cc36cf36304c766a560916c48018e38589f70ddf
4
+ data.tar.gz: 284ef99f881958de1282d5132a52c46441fdba7f
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OWQzOWFjYTBkYmExZTgwYzRmOWI2M2ZiZTEyMWY4ZDdmOGE0M2Q3ODVkZmYy
10
- N2MwMWFjNjg4NzM4N2RhNDJjYTAzNDFiNDA1YzgxMjIxODhiYjIxMzk3ZjFm
11
- ZDNlYjE4YzgyZjQyZTU2Mzk1ZDM0ZDc5ZTI5ZDUwZjMyMjJiZDA=
12
- data.tar.gz: !binary |-
13
- MWM4NDY3MGZhMzI4NDhlOGU1YmIxNTNiODdjM2U4M2FiNmM4ZDI1ODA2ODM4
14
- MDI1NjExYjM2NzY5M2JlN2E4ZmYxODQ3OGVmZTQ1MWEzZWVmNTM4NWYzNjFh
15
- Mjk5ZTVlOGNmZDliYjM3YzIyMWU3MDZhZTljZDQ4OWE3OWE3MjA=
6
+ metadata.gz: b092180723094e71621a49226c49af1f053d9576c48555c9212081278a3e67692b3d35678f1b5795605d1bc8aa00e9ebe091d810cec6f75a909ccefd4dd96bd9
7
+ data.tar.gz: 4f466e1962b76d1cf60bedb49648c43c233a6fe3a98db000026d2798371dcac289e558c4f13274caf956b6cbca7198cdd916e256398ed9d6517bc45d128c8746
@@ -0,0 +1,43 @@
1
+ module ZipkinTracer
2
+
3
+ class Config
4
+ attr_reader :service_name, :service_port, :scribe_server, :zookeeper, :sample_rate,
5
+ :scribe_max_buffer, :annotate_plugin, :filter_plugin, :whitelist_plugin
6
+
7
+ def initialize(app, config_hash)
8
+ config = config_hash || app_config(app)
9
+ @service_name = config[:service_name]
10
+ @service_port = config[:service_port]
11
+ @scribe_server = config[:scribe_server]
12
+ @zookeeper = config[:zookeeper]
13
+ @sample_rate = config[:sample_rate] || DEFAULTS[:sample_rate]
14
+ @scribe_max_buffer = config[:scribe_max_buffer] || DEFAULTS[:scribe_max_buffer]
15
+ @annotate_plugin = config[:annotate_plugin] # call for trace annotation
16
+ @filter_plugin = config[:filter_plugin] # skip tracing if returns false
17
+ @whitelist_plugin = config[:whitelist_plugin] # force sampling if returns true
18
+ end
19
+
20
+ def using_scribe?
21
+ !!(@scribe_server && defined?(::Scribe))
22
+ end
23
+
24
+ def using_kafka?
25
+ !!(@zookeeper && RUBY_PLATFORM == 'java' && defined?(::Hermann))
26
+ end
27
+
28
+ private
29
+
30
+ DEFAULTS = {
31
+ scribe_max_buffer: 10,
32
+ sample_rate: 0.1
33
+ }
34
+
35
+ def app_config(app)
36
+ if app.respond_to?(:config) && app.config.respond_to?(:zipkin_tracer)
37
+ app.config.zipkin_tracer
38
+ else
39
+ {}
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,56 @@
1
+ require 'faraday'
2
+ require 'finagle-thrift'
3
+ require 'finagle-thrift/trace'
4
+ require 'uri'
5
+
6
+ module ZipkinTracer
7
+ class FaradayHandler < ::Faraday::Middleware
8
+ B3_HEADERS = {
9
+ :trace_id => "X-B3-TraceId",
10
+ :parent_id => "X-B3-ParentSpanId",
11
+ :span_id => "X-B3-SpanId",
12
+ :sampled => "X-B3-Sampled",
13
+ :flags => "X-B3-Flags"
14
+ }.freeze
15
+
16
+ def initialize(app, service_name=nil)
17
+ @app = app
18
+ @service_name = service_name
19
+ end
20
+
21
+ def call(env)
22
+ # handle either a URI object (passed by Faraday v0.8.x in testing), or something string-izable
23
+ url = env[:url].respond_to?(:host) ? env[:url] : URI.parse(env[:url].to_s)
24
+ service_name = @service_name || url.host.split('.').first # default to url-derived service name
25
+ endpoint = ::Trace::Endpoint.new(host_ip_for(url.host), url.port, service_name)
26
+
27
+ ::Trace.unwind do
28
+ trace_id = ::Trace.id
29
+ ::Trace.push(trace_id.next_id)
30
+ B3_HEADERS.each do |method, header|
31
+ env[:request_headers][header] = ::Trace.id.send(method).to_s
32
+ end
33
+
34
+ # annotate with method (GET/POST/etc.) and uri path
35
+ ::Trace.set_rpc_name(env[:method].to_s.upcase)
36
+ ::Trace.record(::Trace::BinaryAnnotation.new("http.uri", url.path, "STRING", endpoint))
37
+ ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_SEND, endpoint))
38
+ result = @app.call(env).on_complete do |renv|
39
+ # record HTTP status code on response
40
+ ::Trace.record(::Trace::BinaryAnnotation.new("http.status", [renv[:status]].pack('n'), "I16", endpoint))
41
+ end
42
+ ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_RECV, endpoint))
43
+ result
44
+ end
45
+ end
46
+
47
+ # get host IP for specified hostname, catching exceptions
48
+ def host_ip_for(hostname)
49
+ ::Trace::Endpoint.host_to_i32(hostname)
50
+ rescue
51
+ # default to 0.0.0.0 if lookup fails
52
+ 0x00000000
53
+ end
54
+ private :host_ip_for
55
+ end
56
+ end
@@ -0,0 +1,116 @@
1
+ # Copyright 2012 Twitter Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ require 'finagle-thrift'
15
+ require 'finagle-thrift/trace'
16
+ require 'scribe'
17
+
18
+ require 'zipkin-tracer/config'
19
+ require 'zipkin-tracer/careless_scribe'
20
+
21
+ if RUBY_PLATFORM == 'java'
22
+ require 'hermann/producer'
23
+ require 'zipkin-tracer/zipkin_kafka_tracer'
24
+ end
25
+
26
+ module ZipkinTracer extend self
27
+
28
+ class RackHandler
29
+ B3_REQUIRED_HEADERS = %w[HTTP_X_B3_TRACEID HTTP_X_B3_PARENTSPANID HTTP_X_B3_SPANID HTTP_X_B3_SAMPLED]
30
+ B3_OPT_HEADERS = %w[HTTP_X_B3_FLAGS]
31
+
32
+ def initialize(app, config=nil)
33
+ @app = app
34
+ @lock = Mutex.new
35
+
36
+ config = Config.new(app, config)
37
+
38
+ ::Trace.tracer = if config.using_scribe?
39
+ scribe = config.scribe_server ? Scribe.new(config.scribe_server) : Scribe.new()
40
+ ::Trace::ZipkinTracer.new(CarelessScribe.new(scribe), config.scribe_max_buffer)
41
+ elsif config.using_kafka?
42
+ kafkaTracer = ::Trace::ZipkinKafkaTracer.new
43
+ kafkaTracer.connect(config.zookeeper)
44
+ kafkaTracer
45
+ end
46
+ @config = config
47
+
48
+ end
49
+
50
+ def call(env)
51
+ # skip certain requests
52
+ return @app.call(env) if filtered?(env)
53
+
54
+ ::Trace.default_endpoint = ::Trace.default_endpoint.with_service_name(@config.service_name).with_port(@config.service_port)
55
+ ::Trace.sample_rate=(@config.sample_rate)
56
+ whitelisted = force_sample?(env)
57
+ id = get_or_create_trace_id(env, whitelisted) # note that this depends on the sample rate being set
58
+ tracing_filter(id, env, whitelisted) { @app.call(env) }
59
+ end
60
+
61
+ private
62
+ def annotate(env, status, response_headers, response_body)
63
+ @config.annotate_plugin.call(env, status, response_headers, response_body) if @config.annotate_plugin
64
+ end
65
+
66
+ def filtered?(env)
67
+ @config.filter_plugin && !@config.filter_plugin.call(env)
68
+ end
69
+
70
+ def force_sample?(env)
71
+ @config.whitelist_plugin && @config.whitelist_plugin.call(env)
72
+ end
73
+
74
+ def tracing_filter(trace_id, env, whitelisted=false)
75
+ synchronize do
76
+ ::Trace.push(trace_id)
77
+ ::Trace.set_rpc_name(env["REQUEST_METHOD"]) # get/post and all that jazz
78
+ ::Trace.record(::Trace::BinaryAnnotation.new("http.uri", env["PATH_INFO"], "STRING", ::Trace.default_endpoint))
79
+ ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::SERVER_RECV, ::Trace.default_endpoint))
80
+ ::Trace.record(::Trace::Annotation.new('whitelisted', ::Trace.default_endpoint)) if whitelisted
81
+ end
82
+ status, headers, body = yield if block_given?
83
+ ensure
84
+ synchronize do
85
+ ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::SERVER_SEND, ::Trace.default_endpoint))
86
+ annotate(env, status, headers, body)
87
+ ::Trace.pop
88
+ end
89
+ end
90
+
91
+ private
92
+
93
+ def synchronize(&block)
94
+ @lock.synchronize do
95
+ yield
96
+ end
97
+ rescue# Nothing wonky that the tracer does should stop us from using the app!!!
98
+ end
99
+
100
+ def get_or_create_trace_id(env, whitelisted, default_flags = ::Trace::Flags::EMPTY)
101
+ trace_parameters = if B3_REQUIRED_HEADERS.all? { |key| env.has_key?(key) }
102
+ env.values_at(*B3_REQUIRED_HEADERS)
103
+ else
104
+ new_id = Trace.generate_id
105
+ [new_id, nil, new_id, ("true" if whitelisted || Trace.should_sample?)]
106
+ end
107
+ trace_parameters[3] = (trace_parameters[3] == "true")
108
+
109
+ trace_parameters += env.values_at(*B3_OPT_HEADERS) # always check flags
110
+ trace_parameters[4] = (trace_parameters[4] || default_flags).to_i
111
+
112
+ Trace::TraceId.new(*trace_parameters)
113
+ end
114
+ end
115
+
116
+ end
@@ -12,6 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  module ZipkinTracer
15
- VERSION = "0.4.0"
15
+ VERSION = "0.5.1"
16
16
  end
17
17
 
data/lib/zipkin-tracer.rb CHANGED
@@ -1,113 +1,7 @@
1
- # Copyright 2012 Twitter Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- require 'finagle-thrift'
15
- require 'finagle-thrift/trace'
16
- require 'scribe'
1
+ require 'zipkin-tracer/rack/zipkin-tracer'
17
2
 
18
- require 'zipkin-tracer/careless_scribe'
19
-
20
- if RUBY_PLATFORM == 'java'
21
- require 'hermann/producer'
22
- require 'zipkin-tracer/zipkin_kafka_tracer'
23
- end
24
-
25
- module ZipkinTracer extend self
26
-
27
- class RackHandler
28
- B3_REQUIRED_HEADERS = %w[HTTP_X_B3_TRACEID HTTP_X_B3_PARENTSPANID HTTP_X_B3_SPANID HTTP_X_B3_SAMPLED]
29
- B3_OPT_HEADERS = %w[HTTP_X_B3_FLAGS]
30
-
31
- def initialize(app, config=nil)
32
- @app = app
33
- @lock = Mutex.new
34
-
35
- config ||= app.config.zipkin_tracer # if not specified, try on app (e.g. Rails 3+)
36
- @service_name = config[:service_name]
37
- @service_port = config[:service_port]
38
-
39
- ::Trace.tracer = if config[:scribe_server] && defined?(::Scribe)
40
- scribe = config[:scribe_server] ? Scribe.new(config[:scribe_server]) : Scribe.new()
41
- scribe_max_buffer = config[:scribe_max_buffer] ? config[:scribe_max_buffer] : 10
42
- ::Trace::ZipkinTracer.new(CarelessScribe.new(scribe), scribe_max_buffer)
43
- elsif config[:zookeeper] && RUBY_PLATFORM == 'java' && defined?(::Hermann)
44
- kafkaTracer = ::Trace::ZipkinKafkaTracer.new
45
- kafkaTracer.connect(config[:zookeeper])
46
- kafkaTracer
47
- end
48
-
49
- @sample_rate = config[:sample_rate] ? config[:sample_rate] : 0.1
50
- @annotate_plugin = config[:annotate_plugin] # call for trace annotation
51
- @filter_plugin = config[:filter_plugin] # skip tracing if returns false
52
- @whitelist_plugin = config[:whitelist_plugin] # force sampling if returns true
53
- end
54
-
55
- def call(env)
56
- # skip certain requests
57
- return @app.call(env) if filtered?(env)
58
-
59
- ::Trace.default_endpoint = ::Trace.default_endpoint.with_service_name(@service_name).with_port(@service_port)
60
- ::Trace.sample_rate=(@sample_rate)
61
- whitelisted = force_sample?(env)
62
- id = get_or_create_trace_id(env, whitelisted) # note that this depends on the sample rate being set
63
- tracing_filter(id, env, whitelisted) { @app.call(env) }
64
- end
65
-
66
- private
67
- def annotate(env, status, response_headers, response_body)
68
- @annotate_plugin.call(env, status, response_headers, response_body) if @annotate_plugin
69
- end
70
-
71
- def filtered?(env)
72
- @filter_plugin && !@filter_plugin.call(env)
73
- end
74
-
75
- def force_sample?(env)
76
- @whitelist_plugin && @whitelist_plugin.call(env)
77
- end
78
-
79
- def tracing_filter(trace_id, env, whitelisted=false)
80
- @lock.synchronize do
81
- ::Trace.push(trace_id)
82
- ::Trace.set_rpc_name(env["REQUEST_METHOD"]) # get/post and all that jazz
83
- ::Trace.record(::Trace::BinaryAnnotation.new("http.uri", env["PATH_INFO"], "STRING", ::Trace.default_endpoint))
84
- ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::SERVER_RECV, ::Trace.default_endpoint))
85
- ::Trace.record(::Trace::Annotation.new('whitelisted', ::Trace.default_endpoint)) if whitelisted
86
- end
87
- status, headers, body = yield if block_given?
88
- ensure
89
- @lock.synchronize do
90
- ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::SERVER_SEND, ::Trace.default_endpoint))
91
- annotate(env, status, headers, body)
92
- ::Trace.pop
93
- end
94
- end
95
-
96
- private
97
- def get_or_create_trace_id(env, whitelisted, default_flags = ::Trace::Flags::EMPTY)
98
- trace_parameters = if B3_REQUIRED_HEADERS.all? { |key| env.has_key?(key) }
99
- env.values_at(*B3_REQUIRED_HEADERS)
100
- else
101
- new_id = Trace.generate_id
102
- [new_id, nil, new_id, ("true" if whitelisted || Trace.should_sample?)]
103
- end
104
- trace_parameters[3] = (trace_parameters[3] == "true")
105
-
106
- trace_parameters += env.values_at(*B3_OPT_HEADERS) # always check flags
107
- trace_parameters[4] = (trace_parameters[4] || default_flags).to_i
108
-
109
- Trace::TraceId.new(*trace_parameters)
110
- end
111
- end
112
-
113
- end
3
+ begin
4
+ require 'faraday'
5
+ require 'zipkin-tracer/faraday/zipkin-tracer'
6
+ rescue LoadError #Faraday is not available, we do not load our code.
7
+ end
metadata CHANGED
@@ -1,129 +1,143 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zipkin-tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franklin Hu
8
8
  - R Tyler Croy
9
9
  - James Way
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
  date: 2015-09-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: finagle-thrift
17
- requirement: !ruby/object:Gem::Requirement
17
+ version_requirements: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: 1.4.1
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
22
+ requirement: !ruby/object:Gem::Requirement
25
23
  requirements:
26
24
  - - ~>
27
25
  - !ruby/object:Gem::Version
28
26
  version: 1.4.1
27
+ prerelease: false
28
+ type: :runtime
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: scribe
31
- requirement: !ruby/object:Gem::Requirement
31
+ version_requirements: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ~>
34
34
  - !ruby/object:Gem::Version
35
35
  version: 0.2.4
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
36
+ requirement: !ruby/object:Gem::Requirement
39
37
  requirements:
40
38
  - - ~>
41
39
  - !ruby/object:Gem::Version
42
40
  version: 0.2.4
41
+ prerelease: false
42
+ type: :runtime
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rack
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ~>
48
+ - !ruby/object:Gem::Version
49
+ version: '1.6'
45
50
  requirement: !ruby/object:Gem::Requirement
46
51
  requirements:
47
- - - ! '>='
52
+ - - ~>
48
53
  - !ruby/object:Gem::Version
49
- version: '0'
50
- type: :runtime
54
+ version: '1.6'
51
55
  prerelease: false
56
+ type: :runtime
57
+ - !ruby/object:Gem::Dependency
58
+ name: rspec
52
59
  version_requirements: !ruby/object:Gem::Requirement
53
60
  requirements:
54
- - - ! '>='
61
+ - - ~>
55
62
  - !ruby/object:Gem::Version
56
- version: '0'
57
- - !ruby/object:Gem::Dependency
58
- name: rspec
63
+ version: '3.3'
59
64
  requirement: !ruby/object:Gem::Requirement
60
65
  requirements:
61
66
  - - ~>
62
67
  - !ruby/object:Gem::Version
63
- version: 3.0.0
64
- type: :development
68
+ version: '3.3'
65
69
  prerelease: false
70
+ type: :development
71
+ - !ruby/object:Gem::Dependency
72
+ name: rack-test
66
73
  version_requirements: !ruby/object:Gem::Requirement
67
74
  requirements:
68
75
  - - ~>
69
76
  - !ruby/object:Gem::Version
70
- version: 3.0.0
71
- - !ruby/object:Gem::Dependency
72
- name: rack-test
77
+ version: '0.6'
73
78
  requirement: !ruby/object:Gem::Requirement
74
79
  requirements:
75
- - - ! '>='
80
+ - - ~>
76
81
  - !ruby/object:Gem::Version
77
- version: '0'
78
- type: :development
82
+ version: '0.6'
79
83
  prerelease: false
84
+ type: :development
85
+ - !ruby/object:Gem::Dependency
86
+ name: rake
80
87
  version_requirements: !ruby/object:Gem::Requirement
81
88
  requirements:
82
- - - ! '>='
89
+ - - ~>
83
90
  - !ruby/object:Gem::Version
84
- version: '0'
85
- - !ruby/object:Gem::Dependency
86
- name: rake
91
+ version: '10.0'
87
92
  requirement: !ruby/object:Gem::Requirement
88
93
  requirements:
89
- - - ! '>='
94
+ - - ~>
90
95
  - !ruby/object:Gem::Version
91
- version: '0'
92
- type: :development
96
+ version: '10.0'
93
97
  prerelease: false
98
+ type: :development
99
+ - !ruby/object:Gem::Dependency
100
+ name: pry
94
101
  version_requirements: !ruby/object:Gem::Requirement
95
102
  requirements:
96
- - - ! '>='
103
+ - - ~>
97
104
  - !ruby/object:Gem::Version
98
- version: '0'
99
- - !ruby/object:Gem::Dependency
100
- name: pry
105
+ version: '0.10'
101
106
  requirement: !ruby/object:Gem::Requirement
102
107
  requirements:
103
- - - ! '>='
108
+ - - ~>
104
109
  - !ruby/object:Gem::Version
105
- version: '0'
106
- type: :development
110
+ version: '0.10'
107
111
  prerelease: false
112
+ type: :development
113
+ - !ruby/object:Gem::Dependency
114
+ name: faraday
108
115
  version_requirements: !ruby/object:Gem::Requirement
109
116
  requirements:
110
- - - ! '>='
117
+ - - ~>
111
118
  - !ruby/object:Gem::Version
112
- version: '0'
113
- - !ruby/object:Gem::Dependency
114
- name: hermann
119
+ version: '0.8'
115
120
  requirement: !ruby/object:Gem::Requirement
116
121
  requirements:
117
122
  - - ~>
118
123
  - !ruby/object:Gem::Version
119
- version: '0.25'
120
- type: :development
124
+ version: '0.8'
121
125
  prerelease: false
126
+ type: :development
127
+ - !ruby/object:Gem::Dependency
128
+ name: hermann
122
129
  version_requirements: !ruby/object:Gem::Requirement
123
130
  requirements:
124
131
  - - ~>
125
132
  - !ruby/object:Gem::Version
126
133
  version: '0.25'
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '0.25'
139
+ prerelease: false
140
+ type: :development
127
141
  description: Adds tracing instrumentation for ruby applications
128
142
  email:
129
143
  - franklin@twitter.com
@@ -133,31 +147,34 @@ executables: []
133
147
  extensions: []
134
148
  extra_rdoc_files: []
135
149
  files:
150
+ - lib/zipkin-tracer.rb
136
151
  - lib/zipkin-tracer/careless_scribe.rb
152
+ - lib/zipkin-tracer/config.rb
137
153
  - lib/zipkin-tracer/version.rb
138
154
  - lib/zipkin-tracer/zipkin_kafka_tracer.rb
139
- - lib/zipkin-tracer.rb
155
+ - lib/zipkin-tracer/faraday/zipkin-tracer.rb
156
+ - lib/zipkin-tracer/rack/zipkin-tracer.rb
140
157
  homepage: https://github.com/openzipkin/zipkin-tracer
141
158
  licenses: []
142
159
  metadata: {}
143
- post_install_message:
160
+ post_install_message:
144
161
  rdoc_options: []
145
162
  require_paths:
146
163
  - lib
147
164
  required_ruby_version: !ruby/object:Gem::Requirement
148
165
  requirements:
149
- - - ! '>='
166
+ - - '>='
150
167
  - !ruby/object:Gem::Version
151
168
  version: '0'
152
169
  required_rubygems_version: !ruby/object:Gem::Requirement
153
170
  requirements:
154
- - - ! '>='
171
+ - - '>='
155
172
  - !ruby/object:Gem::Version
156
173
  version: 1.3.5
157
174
  requirements: []
158
- rubyforge_project:
159
- rubygems_version: 2.1.11
160
- signing_key:
175
+ rubyforge_project:
176
+ rubygems_version: 2.1.9
177
+ signing_key:
161
178
  specification_version: 4
162
179
  summary: Ruby tracing via Zipkin
163
180
  test_files: []