zipkin-tracer 0.15.1 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/zipkin-tracer/config.rb +2 -5
- data/lib/zipkin-tracer/tracer_factory.rb +1 -4
- data/lib/zipkin-tracer/version.rb +1 -1
- data/lib/zipkin-tracer/zipkin_json_tracer.rb +1 -1
- metadata +4 -34
- data/lib/zipkin-tracer/careless_scribe.rb +0 -68
- data/lib/zipkin-tracer/zipkin_scribe_tracer.rb +0 -30
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjYzMGY3YjgxYmZjMjdkMjU1Y2MyZDcxOTI2MDBjZjM3Y2ZlMmI5ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NGRmYmRjZTA1MGJlMmE5ZWU3MzE5ZmI3MTFkN2EwNDAxNDVmZWFhNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTgxNDgxNjg5NGYwMWM1YWIzNzQ0MDViY2IzMmE5ODRlNjgyMDkyNmJmZWIw
|
10
|
+
NjBhNDg5NDA4Njg1NTI1YjU2ODcyZTM4YmZhNTBjMTUwOWZhNDE2NjcyN2Jm
|
11
|
+
YzEwMmJkNWQ2NTg3NTdkM2YzZjFhZmE1M2JmY2ZiZjY5OTczNmU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDRkODlhMGEzYWE0M2M1YmI1OTNkMTg4MDJjOWI5ZWRjNDIwNTY3ZWUwNzc4
|
14
|
+
OGE1YmQ3YTBhNTRlMzE4ZmE4YmI2NDNhMzIwNGQ1MzVkMDA1YTdiNDEwODYw
|
15
|
+
MzllMTFhYTI3ZGNiYjdmNDhkZmQzMzZlY2VhM2FhNjY1YzUyYmQ=
|
data/lib/zipkin-tracer/config.rb
CHANGED
@@ -5,15 +5,14 @@ module ZipkinTracer
|
|
5
5
|
# Configuration of this gem. It reads the configuration and provides default values
|
6
6
|
class Config
|
7
7
|
attr_reader :service_name, :service_port, :json_api_host,
|
8
|
-
:
|
9
|
-
:
|
8
|
+
:zookeeper, :sample_rate, :logger,
|
9
|
+
:annotate_plugin, :filter_plugin, :whitelist_plugin
|
10
10
|
|
11
11
|
def initialize(app, config_hash)
|
12
12
|
config = config_hash || Application.config(app)
|
13
13
|
@service_name = config[:service_name]
|
14
14
|
@service_port = config[:service_port] || DEFAULTS[:service_port]
|
15
15
|
@json_api_host = config[:json_api_host]
|
16
|
-
@scribe_server = config[:scribe_server]
|
17
16
|
@zookeeper = config[:zookeeper]
|
18
17
|
@sample_rate = config[:sample_rate] || DEFAULTS[:sample_rate]
|
19
18
|
@annotate_plugin = config[:annotate_plugin] # call for trace annotation
|
@@ -26,8 +25,6 @@ module ZipkinTracer
|
|
26
25
|
def adapter
|
27
26
|
if present?(@json_api_host)
|
28
27
|
:json
|
29
|
-
elsif present?(@scribe_server)
|
30
|
-
:scribe
|
31
28
|
elsif present?(@zookeeper) && RUBY_PLATFORM == 'java'
|
32
29
|
:kafka
|
33
30
|
elsif @logger_setup
|
@@ -8,9 +8,6 @@ module ZipkinTracer
|
|
8
8
|
require 'zipkin-tracer/zipkin_json_tracer'
|
9
9
|
options = { json_api_host: config.json_api_host, logger: config.logger }
|
10
10
|
Trace::ZipkinJsonTracer.new(options)
|
11
|
-
when :scribe
|
12
|
-
require 'zipkin-tracer/zipkin_scribe_tracer'
|
13
|
-
Trace::ScribeTracer.new(scribe_server: config.scribe_server)
|
14
11
|
when :kafka
|
15
12
|
require 'zipkin-tracer/zipkin_kafka_tracer'
|
16
13
|
Trace::ZipkinKafkaTracer.new(zookeepers: config.zookeeper)
|
@@ -24,7 +21,7 @@ module ZipkinTracer
|
|
24
21
|
Trace.tracer = tracer
|
25
22
|
|
26
23
|
# TODO: move this to the TracerBase and kill scribe tracer
|
27
|
-
ip_format = config.adapter == :
|
24
|
+
ip_format = config.adapter == :kafka ? :i32 : :string
|
28
25
|
Trace.default_endpoint = Trace::Endpoint.local_endpoint(
|
29
26
|
config.service_port,
|
30
27
|
service_name(config.service_name),
|
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.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franklin Hu
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2016-02-
|
16
|
+
date: 2016-02-29 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: faraday
|
@@ -63,14 +63,14 @@ dependencies:
|
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
66
|
+
version: '2.0'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
69
|
version_requirements: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - ~>
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
73
|
+
version: '2.0'
|
74
74
|
- !ruby/object:Gem::Dependency
|
75
75
|
name: rspec
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,34 +141,6 @@ dependencies:
|
|
141
141
|
- - ~>
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '1.22'
|
144
|
-
- !ruby/object:Gem::Dependency
|
145
|
-
name: hermann
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - ~>
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '0.25'
|
151
|
-
type: :development
|
152
|
-
prerelease: false
|
153
|
-
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- - ~>
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0.25'
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
name: scribe
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
161
|
-
requirements:
|
162
|
-
- - ~>
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: 0.2.4
|
165
|
-
type: :development
|
166
|
-
prerelease: false
|
167
|
-
version_requirements: !ruby/object:Gem::Requirement
|
168
|
-
requirements:
|
169
|
-
- - ~>
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: 0.2.4
|
172
144
|
description: Adds tracing instrumentation for ruby applications
|
173
145
|
email:
|
174
146
|
- franklin@twitter.com
|
@@ -183,7 +155,6 @@ extra_rdoc_files: []
|
|
183
155
|
files:
|
184
156
|
- lib/zipkin-tracer.rb
|
185
157
|
- lib/zipkin-tracer/application.rb
|
186
|
-
- lib/zipkin-tracer/careless_scribe.rb
|
187
158
|
- lib/zipkin-tracer/config.rb
|
188
159
|
- lib/zipkin-tracer/faraday/zipkin-tracer.rb
|
189
160
|
- lib/zipkin-tracer/hostname_resolver.rb
|
@@ -196,7 +167,6 @@ files:
|
|
196
167
|
- lib/zipkin-tracer/zipkin_kafka_tracer.rb
|
197
168
|
- lib/zipkin-tracer/zipkin_logger_tracer.rb
|
198
169
|
- lib/zipkin-tracer/zipkin_null_tracer.rb
|
199
|
-
- lib/zipkin-tracer/zipkin_scribe_tracer.rb
|
200
170
|
- lib/zipkin-tracer/zipkin_tracer_base.rb
|
201
171
|
homepage: https://github.com/openzipkin/zipkin-tracer
|
202
172
|
licenses: []
|
@@ -1,68 +0,0 @@
|
|
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
|
-
|
15
|
-
require 'scribe'
|
16
|
-
require 'finagle-thrift' #depends on the thift gem
|
17
|
-
require 'sucker_punch'
|
18
|
-
|
19
|
-
module ScribeThrift
|
20
|
-
# This is here just for the monkey patching
|
21
|
-
class Client
|
22
|
-
# This method in the original class was both sending and receiving logs.
|
23
|
-
# The original class: https://github.com/twitter/scribe/blob/master/vendor/gen-rb/scribe.rb
|
24
|
-
# Receiving logs may take even several seconds, depending on the buffering of the collector.
|
25
|
-
# We are just sending and forgetting here, we do not really care about the result
|
26
|
-
def Log(messages)
|
27
|
-
send_Log(messages)
|
28
|
-
0 # 0 means success , the original code called recv_Log()
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# SuckerPunch creates a queue and a thread pool to work on jobs on the queue
|
34
|
-
# calling perform adds the code to the queue
|
35
|
-
class AsyncScribe
|
36
|
-
include SuckerPunch::Job
|
37
|
-
|
38
|
-
PROTOCOL_TIMEOUT = 10 # If the timeout is low, the protocol will lose spans when collector is not fast enough
|
39
|
-
CATEGORY = 'ruby' # Thrift-client already uses this as default, seems to not affect anything
|
40
|
-
ADD_NEWLINES_TO_MESSAGES = true # True is the default in Thrift-client, seems a necessary internal hack
|
41
|
-
|
42
|
-
def perform(server_address, *args)
|
43
|
-
# May seem wasteful to open a new connection per each span but the way the scribe is done
|
44
|
-
# it is difficult to ensure there will be no threading issues unless we create here the connection
|
45
|
-
scribe = Scribe.new(server_address, CATEGORY, ADD_NEWLINES_TO_MESSAGES, timeout: PROTOCOL_TIMEOUT)
|
46
|
-
scribe.log(*args)
|
47
|
-
rescue ThriftClient::NoServersAvailable, Thrift::Exception
|
48
|
-
# I couldn't care less
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# Scribe which rescue thrift errors to avoid them to raise to the client
|
53
|
-
class CarelessScribe
|
54
|
-
def initialize(scribe_server_address)
|
55
|
-
@server_address = scribe_server_address
|
56
|
-
end
|
57
|
-
|
58
|
-
def log(*args)
|
59
|
-
AsyncScribe.new.async.perform(@server_address, *args)
|
60
|
-
end
|
61
|
-
|
62
|
-
def batch(&block)
|
63
|
-
yield #We just yield here
|
64
|
-
# the block finagle-thrift-1.4.1/lib/finagle-thrift/tracer.rb flush! method will call log also.
|
65
|
-
rescue ThriftClient::NoServersAvailable, Thrift::Exception
|
66
|
-
# I couldn't care less
|
67
|
-
end
|
68
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'zipkin-tracer/zipkin_tracer_base'
|
2
|
-
require 'zipkin-tracer/careless_scribe'
|
3
|
-
require 'zipkin-tracer/hostname_resolver'
|
4
|
-
|
5
|
-
|
6
|
-
module Trace
|
7
|
-
class ScribeTracer < ZipkinTracerBase
|
8
|
-
TRACER_CATEGORY = "zipkin".freeze
|
9
|
-
|
10
|
-
def initialize(options)
|
11
|
-
@scribe = CarelessScribe.new(options[:scribe_server])
|
12
|
-
super(options)
|
13
|
-
end
|
14
|
-
|
15
|
-
def flush!
|
16
|
-
resolved_spans = ::ZipkinTracer::HostnameResolver.new.spans_with_ips(spans)
|
17
|
-
@scribe.batch do
|
18
|
-
messages = resolved_spans.map do |span|
|
19
|
-
buf = ''
|
20
|
-
trans = Thrift::MemoryBufferTransport.new(buf)
|
21
|
-
oprot = Thrift::BinaryProtocol.new(trans)
|
22
|
-
span.to_thrift.write(oprot)
|
23
|
-
Base64.encode64(buf).gsub("\n", "")
|
24
|
-
end
|
25
|
-
@scribe.log(messages, TRACER_CATEGORY)
|
26
|
-
end
|
27
|
-
reset
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|