Class: ZipkinTracer::TraceClient

Inherits:
Object
  • Object
show all
Defined in:
lib/zipkin-tracer/trace_client.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.local_component_span(local_component_value, &block) ⇒ Object



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

def self.local_component_span(local_component_value, &block)
  client = self.new
  client.trace(local_component_value, &block)
end

Instance Method Details

#trace(local_component_value, &block) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/zipkin-tracer/trace_client.rb', line 13

def trace(local_component_value, &block)
  raise ArgumentError, "no block given" unless block

  @trace_id = Trace.id.next_id
  result = nil
  if @trace_id.sampled?
    Trace.with_trace_id(@trace_id) do
      Trace.tracer.with_new_span(@trace_id, Trace::BinaryAnnotation::LOCAL_COMPONENT) do |span|
        result = block.call(span)
        span.record_local_component local_component_value
      end
    end
  else
    result = block.call(NullSpan.new)
  end
  result
end