Class: ZipkinTracer::TraceClient

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

Overview

The trace client provides the user of this library an API to interact with tracing information.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.local_component_span(local_component_value, &block) ⇒ Object



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

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

Instance Method Details

#trace(local_component_value, &block) ⇒ Object

Raises:

  • (ArgumentError)


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

def trace(local_component_value, &block)
  raise ArgumentError, "no block given" unless block
  @trace_id = TraceGenerator.new.next_trace_id
  result = nil
  if @trace_id.sampled?
    TraceContainer.with_trace_id(@trace_id) do
      Trace.tracer.with_new_span(@trace_id, local_component_value) do |span|
        result = block.call(span)
        span.record_local_component local_component_value
      end
    end
  else
    result = block.call(NullSpan.new)
  end
  result
end