Class: Ditliti::Span
- Inherits:
-
Object
- Object
- Ditliti::Span
- Defined in:
- lib/ditliti.rb
Overview
Returned by Client#start_span; call #finish when the operation completes to record and send the span.
Instance Method Summary collapse
- #finish(extra_tags: {}) ⇒ Object
-
#initialize(client, operation_name, parent_span_id, ctx, tags) ⇒ Span
constructor
A new instance of Span.
- #span_id ⇒ Object
- #trace_id ⇒ Object
- #traceparent ⇒ Object
Constructor Details
#initialize(client, operation_name, parent_span_id, ctx, tags) ⇒ Span
Returns a new instance of Span.
61 62 63 64 65 66 67 68 69 |
# File 'lib/ditliti.rb', line 61 def initialize(client, operation_name, parent_span_id, ctx, ) @client = client @operation_name = operation_name @parent_span_id = parent_span_id @ctx = ctx @tags = @started_at = Time.now.utc @started_monotonic = Process.clock_gettime(Process::CLOCK_MONOTONIC) end |
Instance Method Details
#finish(extra_tags: {}) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/ditliti.rb', line 83 def finish(extra_tags: {}) duration_ms = (Process.clock_gettime(Process::CLOCK_MONOTONIC) - @started_monotonic) * 1000 @client.record_span( trace_id: @ctx.trace_id, span_id: @ctx.span_id, parent_span_id: @parent_span_id, operation_name: @operation_name, duration_ms: duration_ms, started_at: @started_at, tags: @tags.merge() ) end |
#span_id ⇒ Object
75 76 77 |
# File 'lib/ditliti.rb', line 75 def span_id @ctx.span_id end |
#trace_id ⇒ Object
71 72 73 |
# File 'lib/ditliti.rb', line 71 def trace_id @ctx.trace_id end |
#traceparent ⇒ Object
79 80 81 |
# File 'lib/ditliti.rb', line 79 def traceparent @ctx.to_traceparent end |