Class: RequestTracer::Trace::TraceId

Inherits:
Object
  • Object
show all
Defined in:
lib/request_tracer/trace.rb

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(trace_id, parent_id, span_id) ⇒ TraceId

Returns a new instance of TraceId.



58
59
60
61
62
# 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

Instance Attribute Details

#parent_idObject (readonly)

Returns the value of attribute parent_id.



50
51
52
# File 'lib/request_tracer/trace.rb', line 50

def parent_id
  @parent_id
end

#span_idObject (readonly)

Returns the value of attribute span_id.



50
51
52
# File 'lib/request_tracer/trace.rb', line 50

def span_id
  @span_id
end

#trace_idObject (readonly)

Returns the value of attribute trace_id.



50
51
52
# File 'lib/request_tracer/trace.rb', line 50

def trace_id
  @trace_id
end

Class Method Details

.create(h) ⇒ Object



55
56
57
# 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

.spawn_from_hash(h) ⇒ Object



51
52
53
54
# 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

Instance Method Details

#[](key) ⇒ Object



75
76
77
# File 'lib/request_tracer/trace.rb', line 75

def [](key)
  to_h[key]
end

#next_idObject



64
65
66
# File 'lib/request_tracer/trace.rb', line 64

def next_id
  TraceId.new(@trace_id, @span_id, Trace.generate_id)
end

#to_hObject



72
73
74
# 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_jsonObject



78
79
80
# File 'lib/request_tracer/trace.rb', line 78

def to_json
  to_h.to_json
end

#to_sObject



68
69
70
# 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