Class: ZipkinTracer::ExconHandler

Inherits:
Excon::Middleware::Base
  • Object
show all
Includes:
B3HeaderHelper
Defined in:
lib/zipkin-tracer/excon/zipkin-tracer.rb

Instance Method Summary collapse

Constructor Details

#initialize(_) ⇒ ExconHandler

Returns a new instance of ExconHandler.



8
9
10
# File 'lib/zipkin-tracer/excon/zipkin-tracer.rb', line 8

def initialize(_)
  super
end

Instance Method Details

#error_call(datum) ⇒ Object



12
13
14
# File 'lib/zipkin-tracer/excon/zipkin-tracer.rb', line 12

def error_call(datum)
  super(datum)
end

#request_call(datum) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/zipkin-tracer/excon/zipkin-tracer.rb', line 16

def request_call(datum)
  trace_id = TraceGenerator.new.next_trace_id

  TraceContainer.with_trace_id(trace_id) do
    set_b3_header(datum[:headers], trace_id)
    trace!(datum, trace_id) if Trace.tracer && trace_id.sampled?
  end

  super(datum)
end

#response_call(datum) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/zipkin-tracer/excon/zipkin-tracer.rb', line 27

def response_call(datum)
  if span = datum[:span]
    span.record_status(response_status(datum))
    Trace.tracer.end_span(span)
  end

  super(datum)
end