Class: ZipkinTracer::TraceGenerator

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

Overview

This class generates trace ids.

Instance Method Summary collapse

Instance Method Details

#currentObject



13
14
15
16
17
18
19
# File 'lib/zipkin-tracer/trace_generator.rb', line 13

def current
  if TraceContainer.tracing_information_set?
    TraceContainer.current
  else
    generate_trace_id
  end
end

#generate_idObject



34
35
36
# File 'lib/zipkin-tracer/trace_generator.rb', line 34

def generate_id
  rand(TRACE_ID_UPPER_BOUND)
end

#generate_id_from_span_id(span_id) ⇒ Object



30
31
32
# File 'lib/zipkin-tracer/trace_generator.rb', line 30

def generate_id_from_span_id(span_id)
  Trace.trace_id_128bit ? generate_id_128bit(span_id) : span_id
end

#generate_trace_idObject



21
22
23
24
# File 'lib/zipkin-tracer/trace_generator.rb', line 21

def generate_trace_id
  span_id = generate_id
  Trace::TraceId.new(generate_id_from_span_id(span_id), nil, span_id, should_sample?.to_s, Trace::Flags::EMPTY)
end

#next_trace_idObject

Next id, based on the current information in the container



5
6
7
8
9
10
11
# File 'lib/zipkin-tracer/trace_generator.rb', line 5

def next_trace_id
  if TraceContainer.tracing_information_set?
    TraceContainer.current.next_id
  else
    generate_trace_id
  end
end

#should_sample?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/zipkin-tracer/trace_generator.rb', line 26

def should_sample?
  rand < (Trace.sample_rate || DEFAULT_SAMPLE_RATE)
end