lhc 9.1.0 → 9.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1759668d50d0a7291b762b0553b00dc123f89f02
4
- data.tar.gz: f5620c4d475ee6c5a0229b18391ac12f97af19fa
3
+ metadata.gz: f7fc2900acc370686fd4e81991eba4fa9cab42f9
4
+ data.tar.gz: b0e58a468ab2d7aebb40f19c7dd9b95be98d0bc3
5
5
  SHA512:
6
- metadata.gz: 41fcea12918b753278d4d6062fbd5bdb104d435382187799962c417ec3bd3a94a12607fca3cb2626613cf68543bded472e774a2f9a706540eee0b63a0187e12b
7
- data.tar.gz: e1a671c9f2a3f5d971a6195e8ed31f8bf72ba1b0aec690b3f7d8ae73d639adf8f68fb5f941d2ce8d960b3421518818050b1c265bdcd6c0771adaf6a91677e86a
6
+ metadata.gz: '089c956a35151c69a06dd0129e23c839e171a466f6142584f19eef0887b996e7741f416875c0082bac238079c901954f7049d77bf859090ee1b420d97bfb26a0'
7
+ data.tar.gz: 5504b40f3fd71c6f51c1c51b11052d216ba706dffff2ae9dfc1d67cad2e370399972afa5da6a2c7f1144ed462135479a4c379a80fd7360c318b8ae364ab10384
@@ -11,13 +11,16 @@ class LHC::Zipkin < LHC::Interceptor
11
11
  def before_request
12
12
  return unless dependencies?
13
13
  ZipkinTracer::TraceContainer.with_trace_id(trace_id) do
14
+ # add headers even if the current trace_id should not be sampled
14
15
  B3_HEADERS.each { |method, header| request.headers[header] = trace_id.send(method).to_s }
16
+ # only sample the current call if we're instructed to do so
15
17
  start_trace! if ::Trace.tracer && trace_id.sampled?
16
18
  end
17
19
  end
18
20
 
19
21
  def after_response
20
- return unless dependencies?
22
+ # only sample the current call if we're instructed to do so
23
+ return unless dependencies? && trace_id.sampled?
21
24
  end_trace!
22
25
  end
23
26
 
@@ -39,6 +42,7 @@ class LHC::Zipkin < LHC::Interceptor
39
42
  @trace_id ||= ZipkinTracer::TraceGenerator.new.next_trace_id
40
43
  end
41
44
 
45
+ # register a new span with zipkin tracer
42
46
  def span
43
47
  @span ||= ::Trace.tracer.start_span(trace_id, url.path)
44
48
  end
@@ -1,3 +1,3 @@
1
1
  module LHC
2
- VERSION ||= '9.1.0'
2
+ VERSION ||= '9.1.1'
3
3
  end
@@ -13,7 +13,7 @@ describe LHC::Zipkin do
13
13
  trace_id: 'trace_id',
14
14
  parent_id: 'parent_id',
15
15
  span_id: 'span_id',
16
- sampled: 'sampled',
16
+ sampled: true,
17
17
  flags: 'flags'
18
18
  )
19
19
  end
@@ -23,7 +23,7 @@ describe LHC::Zipkin do
23
23
  expect(headers['X-B3-TraceId']).to eq('trace_id')
24
24
  expect(headers['X-B3-ParentSpanId']).to eq('parent_id')
25
25
  expect(headers['X-B3-SpanId']).to eq('span_id')
26
- expect(headers['X-B3-Sampled']).to eq('sampled')
26
+ expect(headers['X-B3-Sampled']).to eq('true')
27
27
  expect(headers['X-B3-Flags']).to eq('flags')
28
28
  end
29
29
  end
@@ -49,4 +49,60 @@ describe LHC::Zipkin do
49
49
  expect(headers['X-B3-Flags']).to be_nil
50
50
  end
51
51
  end
52
+
53
+ describe 'creating new spans' do
54
+ context 'sampled? is false' do
55
+ before(:all) do
56
+ ::ZipkinTracer::TraceContainer.setup_mock(
57
+ trace_id: 'trace_id',
58
+ parent_id: 'parent_id',
59
+ span_id: 'span_id',
60
+ sampled: false,
61
+ flags: 'flags'
62
+ )
63
+ end
64
+
65
+ it 'adds the proper X-B3 headers' do
66
+ headers = LHC.get(:local).request.headers
67
+ expect(headers['X-B3-TraceId']).to eq('trace_id')
68
+ expect(headers['X-B3-ParentSpanId']).to eq('parent_id')
69
+ expect(headers['X-B3-SpanId']).to eq('span_id')
70
+ expect(headers['X-B3-Sampled']).to eq('false')
71
+ expect(headers['X-B3-Flags']).to eq('flags')
72
+ end
73
+
74
+ it 'does not register a new span' do
75
+ # ensure no span was registered, by checking no call on span
76
+ expect_any_instance_of(described_class).not_to receive(:span).and_call_original
77
+ LHC.get(:local)
78
+ end
79
+ end
80
+
81
+ context 'sampled? is true' do
82
+ before(:all) do
83
+ ::ZipkinTracer::TraceContainer.setup_mock(
84
+ trace_id: 'trace_id',
85
+ parent_id: 'parent_id',
86
+ span_id: 'span_id',
87
+ sampled: true,
88
+ flags: 'flags'
89
+ )
90
+ end
91
+
92
+ it 'adds the proper X-B3 headers' do
93
+ headers = LHC.get(:local).request.headers
94
+ expect(headers['X-B3-TraceId']).to eq('trace_id')
95
+ expect(headers['X-B3-ParentSpanId']).to eq('parent_id')
96
+ expect(headers['X-B3-SpanId']).to eq('span_id')
97
+ expect(headers['X-B3-Sampled']).to eq('true')
98
+ expect(headers['X-B3-Flags']).to eq('flags')
99
+ end
100
+
101
+ it 'does register a new span' do
102
+ # ensure a span was registered, by checking call on span
103
+ expect_any_instance_of(described_class).to receive(:span).at_least(1).times.and_call_original
104
+ LHC.get(:local)
105
+ end
106
+ end
107
+ end
52
108
  end
@@ -42,7 +42,7 @@ module ZipkinTracer
42
42
  end
43
43
 
44
44
  def sampled
45
- 'sampled'
45
+ ZipkinTracer::TraceContainer.current.sampled
46
46
  end
47
47
 
48
48
  def flags
@@ -50,7 +50,7 @@ module ZipkinTracer
50
50
  end
51
51
 
52
52
  def sampled?
53
- true
53
+ ZipkinTracer::TraceContainer.current.sampled
54
54
  end
55
55
  end
56
56
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhc
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.0
4
+ version: 9.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/local-ch/lhc/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-15 00:00:00.000000000 Z
11
+ date: 2018-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -368,7 +368,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
368
368
  requirements:
369
369
  - Ruby >= 2.0.0
370
370
  rubyforge_project:
371
- rubygems_version: 2.6.12
371
+ rubygems_version: 2.6.14
372
372
  signing_key:
373
373
  specification_version: 4
374
374
  summary: LocalHttpClient