Class: RequestTracer::Trace::TraceId
- Inherits:
-
Object
- Object
- RequestTracer::Trace::TraceId
- 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
-
#parent_id ⇒ Object
readonly
Returns the value of attribute parent_id.
-
#span_id ⇒ Object
readonly
Returns the value of attribute span_id.
-
#trace_id ⇒ Object
readonly
Returns the value of attribute trace_id.
Class Method Summary collapse
Instance Method Summary collapse
- #[](key) ⇒ Object
-
#initialize(trace_id, parent_id, span_id) ⇒ TraceId
constructor
A new instance of TraceId.
- #next_id ⇒ Object
- #to_h ⇒ Object
- #to_json ⇒ Object
- #to_s ⇒ Object
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_id ⇒ Object (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_id ⇒ Object (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_id ⇒ Object (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_id ⇒ Object
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_h ⇒ Object
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_json ⇒ Object
78 79 80 |
# File 'lib/request_tracer/trace.rb', line 78 def to_json to_h.to_json end |
#to_s ⇒ Object
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 |