class Honeykiq::BeelineSpan

Attributes

tracing_mode[R]

Public Class Methods

new(tracing_mode) click to toggle source
# File lib/honeykiq/beeline_span.rb, line 3
def initialize(tracing_mode)
  @tracing_mode = tracing_mode
end

Public Instance Methods

call(name:, serialized_trace:, &block) click to toggle source
# File lib/honeykiq/beeline_span.rb, line 7
def call(name:, serialized_trace:, &block)
  case tracing_mode
  when :link then link_span(name, serialized_trace, &block)
  when :child then child_span(name, serialized_trace, &block)
  when :child_trace then child_trace(name, serialized_trace, &block)
  else Honeycomb.start_span(name: name, &block)
  end
end

Private Instance Methods

child_span(name, serialized_trace, &block) click to toggle source
# File lib/honeykiq/beeline_span.rb, line 43
def child_span(name, serialized_trace, &block)
  Honeycomb.start_span(name: name, serialized_trace: serialized_trace, &block)
end
child_trace(name, serialized_trace, &block) click to toggle source
# File lib/honeykiq/beeline_span.rb, line 47
def child_trace(name, serialized_trace, &block)
  parent_trace_id, = TraceParser.parse(serialized_trace)

  Honeycomb.start_span(name: name, 'parent.trace_id': parent_trace_id, &block)
end