Module: Lapsoss::Adapters::Concerns::TraceContext

Extended by:
ActiveSupport::Concern
Included in:
OtlpAdapter
Defined in:
lib/lapsoss/adapters/concerns/trace_context.rb

Overview

Trace context utilities for OTLP and distributed tracing Provides trace/span ID generation and timestamp formatting

Instance Method Summary collapse

Instance Method Details

#generate_span_idString

Generate a W3C Trace Context compliant span ID (16 hex chars = 64 bits)

Returns:

  • (String)

    16 character hex string



22
23
24
# File 'lib/lapsoss/adapters/concerns/trace_context.rb', line 22

def generate_span_id
  SecureRandom.hex(8)
end

#generate_trace_idString

Generate a W3C Trace Context compliant trace ID (32 hex chars = 128 bits)

Returns:

  • (String)

    32 character hex string



16
17
18
# File 'lib/lapsoss/adapters/concerns/trace_context.rb', line 16

def generate_trace_id
  SecureRandom.hex(16)
end

#timestamp_micros(time) ⇒ Integer

Convert time to microseconds since Unix epoch (OpenObserve format)

Parameters:

  • time (Time)

    The time to convert

Returns:

  • (Integer)

    Microseconds since Unix epoch



37
38
39
40
# File 'lib/lapsoss/adapters/concerns/trace_context.rb', line 37

def timestamp_micros(time)
  time ||= Time.current
  (time.to_f * 1_000_000).to_i
end

#timestamp_millis(time) ⇒ Integer

Convert time to milliseconds since Unix epoch

Parameters:

  • time (Time)

    The time to convert

Returns:

  • (Integer)

    Milliseconds since Unix epoch



45
46
47
48
# File 'lib/lapsoss/adapters/concerns/trace_context.rb', line 45

def timestamp_millis(time)
  time ||= Time.current
  (time.to_f * 1_000).to_i
end

#timestamp_nanos(time) ⇒ Integer

Convert time to nanoseconds since Unix epoch (OTLP format)

Parameters:

  • time (Time)

    The time to convert

Returns:

  • (Integer)

    Nanoseconds since Unix epoch



29
30
31
32
# File 'lib/lapsoss/adapters/concerns/trace_context.rb', line 29

def timestamp_nanos(time)
  time ||= Time.current
  (time.to_f * 1_000_000_000).to_i
end