Class: LHC::Zipkin
- Inherits:
-
Interceptor
- Object
- Interceptor
- LHC::Zipkin
- Defined in:
- lib/lhc/interceptors/zipkin.rb
Constant Summary collapse
- B3_HEADERS =
{ trace_id: 'X-B3-TraceId'.freeze, parent_id: 'X-B3-ParentSpanId'.freeze, span_id: 'X-B3-SpanId'.freeze, sampled: 'X-B3-Sampled'.freeze, flags: 'X-B3-Flags'.freeze }.freeze
- TRUE =
true in binary annotation
'1'.freeze
Instance Attribute Summary
Attributes inherited from Interceptor
Instance Method Summary collapse
Methods inherited from Interceptor
#after_request, #before_raw_request, #before_response, dup, #initialize, #response
Constructor Details
This class inherits a constructor from LHC::Interceptor
Instance Method Details
#after_response ⇒ Object
21 22 23 24 25 |
# File 'lib/lhc/interceptors/zipkin.rb', line 21 def after_response # only sample the current call if we're instructed to do so return unless dependencies? && trace_id.sampled? end_trace! end |
#before_request ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/lhc/interceptors/zipkin.rb', line 11 def before_request return unless dependencies? ZipkinTracer::TraceContainer.with_trace_id(trace_id) do # add headers even if the current trace_id should not be sampled B3_HEADERS.each { |method, header| request.headers[header] = trace_id.send(method).to_s } # only sample the current call if we're instructed to do so start_trace! if ::Trace.tracer && trace_id.sampled? end end |