class RequestTracer::Trace::TraceId

A trace is a set of spans that are associated with the same request

Attributes

parent_id[R]
span_id[R]
trace_id[R]

Public Class Methods

create(h) click to toggle source
# File lib/request_tracer/trace.rb, line 55
def self.create(h)
  self.new(h["trace_id"], h["parent_span_id"], h["span_id"])
end
new(trace_id, parent_id, span_id) click to toggle source
# File lib/request_tracer/trace.rb, line 58
def initialize(trace_id, parent_id, span_id)
  @trace_id = SpanId.from_value(trace_id)
  @parent_id = parent_id && SpanId.from_value(parent_id)
  @span_id = SpanId.from_value(span_id)
end
spawn_from_hash(h) click to toggle source
# File lib/request_tracer/trace.rb, line 51
def self.spawn_from_hash(h)
  span_id = Trace.generate_id
  self.new(h["trace_id"] || span_id, h["span_id"], Trace.generate_id)
end

Public Instance Methods

[](key) click to toggle source
# File lib/request_tracer/trace.rb, line 75
def [](key)
  to_h[key]
end
next_id() click to toggle source
# File lib/request_tracer/trace.rb, line 64
def next_id
  TraceId.new(@trace_id, @span_id, Trace.generate_id)
end
to_h() click to toggle source
# File lib/request_tracer/trace.rb, line 72
def to_h
  {"trace_id" => @trace_id.to_s, "parent_span_id" => (@parent_id || "").to_s, "span_id" => @span_id.to_s}
end
to_json() click to toggle source
# File lib/request_tracer/trace.rb, line 78
def to_json
  to_h.to_json
end
to_s() click to toggle source
# File lib/request_tracer/trace.rb, line 68
def to_s
  "TraceId(trace_id = #{@trace_id.to_s}, parent_id = #{@parent_id.to_s}, span_id = #{@span_id.to_s}"
end