zipkin-tracer 0.5.1 → 0.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 +13 -5
- data/lib/zipkin-tracer.rb +1 -0
- data/lib/zipkin-tracer/config.rb +11 -1
- data/lib/zipkin-tracer/faraday/zipkin-tracer.rb +13 -5
- data/lib/zipkin-tracer/rack/zipkin-tracer.rb +4 -1
- data/lib/zipkin-tracer/version.rb +1 -1
- metadata +48 -48
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTE1MTJjMmE1MzQyMDZjYzUzYjViZTQ2ZTg0ZmFkZmJjOTgxZTZhYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NGUzYTY2NWUwZDI2ZWIwM2RjMzBjOWNlMTYyMjE2ZjliOGM5M2ZhZg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YWM0MzJlNjM1NWJhMGVkYmRmNzFkNzVhZGUzOWI3ZWJmM2MxZjVmOGI3Mzdj
|
10
|
+
OTViZWU3OTk3MTVjZmNmMzZiZTk0NGYxZTQwMzE4MWFlYjM4MjBhZDUxNDMw
|
11
|
+
YWNjMTBhMGI5Yzc0OTBlNjFkZjJjYzdmMWI4MmMzMWNmYzZkNGQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YmRiMDdhNWYzNDk1YjU5ZmZhY2FhMDFiMTk4N2E5NzY1ZGJiOWZkY2E3MjY0
|
14
|
+
ZmI1Y2FkODg2ZjQ2N2YyMTU4ZGMzMWFjMmU0ZDVjZDYxYjNkMmQyYTk1ZTZk
|
15
|
+
OTliMTMwMjYxZDQ1Nzc3YmJjMjI0ZTkwYjM3Nzg5NzcxMDAzOTg=
|
data/lib/zipkin-tracer.rb
CHANGED
data/lib/zipkin-tracer/config.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
+
require 'logger'
|
1
2
|
module ZipkinTracer
|
2
3
|
|
3
4
|
class Config
|
4
5
|
attr_reader :service_name, :service_port, :scribe_server, :zookeeper, :sample_rate,
|
5
|
-
:scribe_max_buffer, :annotate_plugin, :filter_plugin, :whitelist_plugin
|
6
|
+
:scribe_max_buffer, :annotate_plugin, :filter_plugin, :whitelist_plugin, :logger
|
6
7
|
|
7
8
|
def initialize(app, config_hash)
|
8
9
|
config = config_hash || app_config(app)
|
@@ -15,6 +16,7 @@ module ZipkinTracer
|
|
15
16
|
@annotate_plugin = config[:annotate_plugin] # call for trace annotation
|
16
17
|
@filter_plugin = config[:filter_plugin] # skip tracing if returns false
|
17
18
|
@whitelist_plugin = config[:whitelist_plugin] # force sampling if returns true
|
19
|
+
@logger = config[:logger] || fallback_logger
|
18
20
|
end
|
19
21
|
|
20
22
|
def using_scribe?
|
@@ -27,6 +29,14 @@ module ZipkinTracer
|
|
27
29
|
|
28
30
|
private
|
29
31
|
|
32
|
+
def fallback_logger
|
33
|
+
if defined?(Rails) # If we happen to be inside a Rails app, use its logger
|
34
|
+
Rails.logger
|
35
|
+
else
|
36
|
+
Logger.new(STDOUT)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
30
40
|
DEFAULTS = {
|
31
41
|
scribe_max_buffer: 10,
|
32
42
|
sample_rate: 0.1
|
@@ -33,17 +33,25 @@ module ZipkinTracer
|
|
33
33
|
|
34
34
|
# annotate with method (GET/POST/etc.) and uri path
|
35
35
|
::Trace.set_rpc_name(env[:method].to_s.upcase)
|
36
|
-
|
37
|
-
|
36
|
+
record(::Trace::BinaryAnnotation.new("http.uri", url.path, "STRING", endpoint))
|
37
|
+
record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_SEND, endpoint))
|
38
38
|
result = @app.call(env).on_complete do |renv|
|
39
39
|
# record HTTP status code on response
|
40
|
-
|
40
|
+
record(::Trace::BinaryAnnotation.new("http.status", [renv[:status]].pack('n'), "I16", endpoint))
|
41
41
|
end
|
42
|
-
|
42
|
+
record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_RECV, endpoint))
|
43
43
|
result
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
private
|
48
|
+
|
49
|
+
def record(annotation)
|
50
|
+
::Trace.record(annotation)
|
51
|
+
rescue Exception # Sockets errors inherit from Exception, not from StandardError
|
52
|
+
#TODO: if this class some day accepts a config hash, add a logger
|
53
|
+
end
|
54
|
+
|
47
55
|
# get host IP for specified hostname, catching exceptions
|
48
56
|
def host_ip_for(hostname)
|
49
57
|
::Trace::Endpoint.host_to_i32(hostname)
|
@@ -51,6 +59,6 @@ module ZipkinTracer
|
|
51
59
|
# default to 0.0.0.0 if lookup fails
|
52
60
|
0x00000000
|
53
61
|
end
|
54
|
-
|
62
|
+
|
55
63
|
end
|
56
64
|
end
|
@@ -94,7 +94,10 @@ module ZipkinTracer extend self
|
|
94
94
|
@lock.synchronize do
|
95
95
|
yield
|
96
96
|
end
|
97
|
-
|
97
|
+
# Nothing wonky that the tracer does should stop us from using the app!!!
|
98
|
+
# Usually is better to rescue StandardError but the socket layer can launch Errno kind of exceptions
|
99
|
+
rescue Exception => e
|
100
|
+
@config.logger.error("Exception #{e.message} while sending Zipkin traces. #{e.backtrace}")
|
98
101
|
end
|
99
102
|
|
100
103
|
def get_or_create_trace_id(env, whitelisted, default_flags = ::Trace::Flags::EMPTY)
|
metadata
CHANGED
@@ -1,143 +1,143 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zipkin-tracer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.6'
|
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
|
-
date: 2015-09-
|
13
|
+
date: 2015-09-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: finagle-thrift
|
17
|
-
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 1.4.1
|
22
|
-
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
25
|
requirements:
|
24
26
|
- - ~>
|
25
27
|
- !ruby/object:Gem::Version
|
26
28
|
version: 1.4.1
|
27
|
-
prerelease: false
|
28
|
-
type: :runtime
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: scribe
|
31
|
-
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - ~>
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 0.2.4
|
36
|
-
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
39
|
requirements:
|
38
40
|
- - ~>
|
39
41
|
- !ruby/object:Gem::Version
|
40
42
|
version: 0.2.4
|
41
|
-
prerelease: false
|
42
|
-
type: :runtime
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rack
|
45
|
-
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - ~>
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '1.6'
|
50
|
-
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
53
|
requirements:
|
52
54
|
- - ~>
|
53
55
|
- !ruby/object:Gem::Version
|
54
56
|
version: '1.6'
|
55
|
-
prerelease: false
|
56
|
-
type: :runtime
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rspec
|
59
|
-
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '3.3'
|
64
|
-
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
67
|
requirements:
|
66
68
|
- - ~>
|
67
69
|
- !ruby/object:Gem::Version
|
68
70
|
version: '3.3'
|
69
|
-
prerelease: false
|
70
|
-
type: :development
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rack-test
|
73
|
-
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0.6'
|
78
|
-
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
81
|
requirements:
|
80
82
|
- - ~>
|
81
83
|
- !ruby/object:Gem::Version
|
82
84
|
version: '0.6'
|
83
|
-
prerelease: false
|
84
|
-
type: :development
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rake
|
87
|
-
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - ~>
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '10.0'
|
92
|
-
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
95
|
requirements:
|
94
96
|
- - ~>
|
95
97
|
- !ruby/object:Gem::Version
|
96
98
|
version: '10.0'
|
97
|
-
prerelease: false
|
98
|
-
type: :development
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: pry
|
101
|
-
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - ~>
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: '0.10'
|
106
|
-
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
109
|
requirements:
|
108
110
|
- - ~>
|
109
111
|
- !ruby/object:Gem::Version
|
110
112
|
version: '0.10'
|
111
|
-
prerelease: false
|
112
|
-
type: :development
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: faraday
|
115
|
-
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - ~>
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0.8'
|
120
|
-
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
123
|
requirements:
|
122
124
|
- - ~>
|
123
125
|
- !ruby/object:Gem::Version
|
124
126
|
version: '0.8'
|
125
|
-
prerelease: false
|
126
|
-
type: :development
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: hermann
|
129
|
-
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0.25'
|
134
|
-
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
137
|
requirements:
|
136
138
|
- - ~>
|
137
139
|
- !ruby/object:Gem::Version
|
138
140
|
version: '0.25'
|
139
|
-
prerelease: false
|
140
|
-
type: :development
|
141
141
|
description: Adds tracing instrumentation for ruby applications
|
142
142
|
email:
|
143
143
|
- franklin@twitter.com
|
@@ -147,34 +147,34 @@ executables: []
|
|
147
147
|
extensions: []
|
148
148
|
extra_rdoc_files: []
|
149
149
|
files:
|
150
|
-
- lib/zipkin-tracer.rb
|
151
150
|
- lib/zipkin-tracer/careless_scribe.rb
|
152
151
|
- lib/zipkin-tracer/config.rb
|
153
|
-
- lib/zipkin-tracer/version.rb
|
154
|
-
- lib/zipkin-tracer/zipkin_kafka_tracer.rb
|
155
152
|
- lib/zipkin-tracer/faraday/zipkin-tracer.rb
|
156
153
|
- lib/zipkin-tracer/rack/zipkin-tracer.rb
|
154
|
+
- lib/zipkin-tracer/version.rb
|
155
|
+
- lib/zipkin-tracer/zipkin_kafka_tracer.rb
|
156
|
+
- lib/zipkin-tracer.rb
|
157
157
|
homepage: https://github.com/openzipkin/zipkin-tracer
|
158
158
|
licenses: []
|
159
159
|
metadata: {}
|
160
|
-
post_install_message:
|
160
|
+
post_install_message:
|
161
161
|
rdoc_options: []
|
162
162
|
require_paths:
|
163
163
|
- lib
|
164
164
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
165
|
requirements:
|
166
|
-
- - '>='
|
166
|
+
- - ! '>='
|
167
167
|
- !ruby/object:Gem::Version
|
168
168
|
version: '0'
|
169
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - '>='
|
171
|
+
- - ! '>='
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: 1.3.5
|
174
174
|
requirements: []
|
175
|
-
rubyforge_project:
|
176
|
-
rubygems_version: 2.1.
|
177
|
-
signing_key:
|
175
|
+
rubyforge_project:
|
176
|
+
rubygems_version: 2.1.11
|
177
|
+
signing_key:
|
178
178
|
specification_version: 4
|
179
179
|
summary: Ruby tracing via Zipkin
|
180
180
|
test_files: []
|