ruby-zipkin 0.2.2 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module RubyZipkin
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.5"
3
3
  end
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
- ::Trace.default_endpoint = ::Trace.default_endpoint.with_service_name(@service_name).with_port(@service_port)
24
- ::Trace.sample_rate = 0.1
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
- ::Trace.record(::Trace::Annotation.new(@service_name, ::Trace.default_endpoint))
47
- trace_rack_request(env)
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 trace_rack_request(env)
58
- env.each do |k,v|
59
- MetadataLogger.log(k.to_s, v.to_s)
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.has_key?(ZipkinTraceHeader::TRACE_ID)
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
- end
65
+ @parentspan = nil
69
66
 
70
- if env.has_key?(ZipkinTraceHeader::SPAN_ID)
71
- @spanid = env[ZipkinTraceHeader::SPAN_ID]
67
+ env[ZipkinTraceHeader::TRACE_ID] = @tid
72
68
  else
73
- @spanid = Trace.generate_id
74
- end
69
+ @tid = env[ZipkinTraceHeader::TRACE_ID]
75
70
 
76
- if env.has_key?(ZipkinTraceHeader::PARENT_SPAN_ID)
77
- @parentspan = env[ZipkinTraceHeader::PARENT_SPAN_ID]
78
- else
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: 19
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.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-25 00:00:00 Z
18
+ date: 2013-09-27 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: finagle-thrift