ruby-zipkin 0.2.2 → 0.2.5
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.
- data/lib/ruby-zipkin/version.rb +1 -1
- data/lib/ruby-zipkin.rb +23 -26
- metadata +4 -4
data/lib/ruby-zipkin/version.rb
CHANGED
data/lib/ruby-zipkin.rb
CHANGED
@@ -20,31 +20,28 @@ module RubyZipkin extend self
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def call(env)
|
23
|
-
|
24
|
-
::Trace.
|
23
|
+
|
24
|
+
::Trace.default_endpoint = ::Trace.default_endpoint.with_service_name(@service_name).with_port(@scribe_port)
|
25
|
+
::Trace.sample_rate = 1
|
25
26
|
|
26
27
|
env[ZipkinTraceHeader::PARENT_SPAN_ID] = @spanid
|
27
28
|
env[ZipkinTraceHeader::TRACE_ID] = @tid
|
28
29
|
|
29
|
-
begin
|
30
|
-
tracing_filter(get_or_create_trace_id(env), env)
|
31
|
-
rescue => trace_error
|
32
|
-
puts trace_error.message, trace_error.backtrace
|
33
|
-
end
|
34
|
-
|
35
30
|
@status, @headers, @response = @app.call(env)
|
31
|
+
tracing_filter(get_or_create_trace_id(env), env, @headers)
|
36
32
|
[@status, @headers, @response]
|
37
33
|
end
|
38
34
|
|
39
35
|
private
|
40
|
-
def tracing_filter(trace_id, env)
|
36
|
+
def tracing_filter(trace_id, env, headers=nil)
|
41
37
|
@lock.synchronize do
|
38
|
+
puts "zipkin trace id #{trace_id}"
|
42
39
|
::Trace.push(trace_id)
|
43
40
|
::Trace.set_rpc_name(env["PATH_INFO"])
|
44
41
|
::Trace.record(::Trace::BinaryAnnotation.new("http.uri", env["PATH_INFO"], "STRING", ::Trace.default_endpoint))
|
45
42
|
::Trace.record(::Trace::Annotation.new(::Trace::Annotation::SERVER_RECV, ::Trace.default_endpoint))
|
46
|
-
|
47
|
-
|
43
|
+
trace_hash(env)
|
44
|
+
trace_hash(headers)
|
48
45
|
end
|
49
46
|
yield if block_given?
|
50
47
|
ensure
|
@@ -54,31 +51,31 @@ module RubyZipkin extend self
|
|
54
51
|
end
|
55
52
|
end
|
56
53
|
|
57
|
-
def
|
58
|
-
|
59
|
-
|
54
|
+
def trace_hash(content)
|
55
|
+
if content
|
56
|
+
content.each do |k,v|
|
57
|
+
MetadataLogger.log(k.to_s, v.to_s)
|
58
|
+
end
|
60
59
|
end
|
61
60
|
end
|
62
61
|
|
63
62
|
def get_or_create_trace_id(env)
|
64
|
-
if env.
|
65
|
-
@tid = env[ZipkinTraceHeader::TRACE_ID]
|
66
|
-
else
|
63
|
+
if env[ZipkinTraceHeader::TRACE_ID].nil? or env[ZipkinTraceHeader::TRACE_ID].to_s.empty?
|
67
64
|
@tid = Trace.generate_id
|
68
|
-
|
65
|
+
@parentspan = nil
|
69
66
|
|
70
|
-
|
71
|
-
@spanid = env[ZipkinTraceHeader::SPAN_ID]
|
67
|
+
env[ZipkinTraceHeader::TRACE_ID] = @tid
|
72
68
|
else
|
73
|
-
@
|
74
|
-
end
|
69
|
+
@tid = env[ZipkinTraceHeader::TRACE_ID]
|
75
70
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
@parentspan = nil
|
71
|
+
if !env[ZipkinTraceHeader::SPAN_ID].nil? and !env[ZipkinTraceHeader::SPAN_ID].to_s.empty?
|
72
|
+
@parentspan = env[ZipkinTraceHeader::SPAN_ID]
|
73
|
+
end
|
80
74
|
end
|
81
75
|
|
76
|
+
@spanid = Trace.generate_id
|
77
|
+
env[ZipkinTraceHeader::SPAN_ID] = @spanid
|
78
|
+
|
82
79
|
# from Finagle source: flags are 0 = none , 1 = debug
|
83
80
|
Trace::TraceId.new @tid, @parentspan, @spanid, true, 0
|
84
81
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-zipkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 5
|
10
|
+
version: 0.2.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ivan Marcin
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-09-
|
18
|
+
date: 2013-09-27 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: finagle-thrift
|