module Honeycomb::AWSPropagation::UnmarshalTraceContext

Parse trace headers

Public Class Methods

get_fields(fields) click to toggle source
# File lib/honeycomb/propagation/aws.rb, line 27
def get_fields(fields)
  trace_id, parent_span_id = nil
  trace_fields = {}
  fields.each do |entry|
    key, value = entry.split("=", 2)
    case key.downcase
    when "root"
      trace_id = value
    when "self"
      parent_span_id = value
    when "parent"
      parent_span_id = value if parent_span_id.nil?
    else
      trace_fields[key] = value unless key.empty?
    end
  end

  [trace_id, parent_span_id, trace_fields]
end
parse(serialized_trace) click to toggle source
# File lib/honeycomb/propagation/aws.rb, line 8
def parse(serialized_trace)
  unless serialized_trace.nil?
    split = serialized_trace.split(";")

    trace_id, parent_span_id, trace_fields = get_fields(split)

    parent_span_id = trace_id if parent_span_id.nil?

    trace_fields = nil if trace_fields.empty?

    if !trace_id.nil? && !parent_span_id.nil?
      # return nil for dataset
      return [trace_id, parent_span_id, trace_fields, nil]
    end
  end

  [nil, nil, nil, nil]
end

Public Instance Methods

parse(serialized_trace) click to toggle source
# File lib/honeycomb/propagation/aws.rb, line 8
def parse(serialized_trace)
  unless serialized_trace.nil?
    split = serialized_trace.split(";")

    trace_id, parent_span_id, trace_fields = get_fields(split)

    parent_span_id = trace_id if parent_span_id.nil?

    trace_fields = nil if trace_fields.empty?

    if !trace_id.nil? && !parent_span_id.nil?
      # return nil for dataset
      return [trace_id, parent_span_id, trace_fields, nil]
    end
  end

  [nil, nil, nil, nil]
end

Private Instance Methods

get_fields(fields) click to toggle source
# File lib/honeycomb/propagation/aws.rb, line 27
def get_fields(fields)
  trace_id, parent_span_id = nil
  trace_fields = {}
  fields.each do |entry|
    key, value = entry.split("=", 2)
    case key.downcase
    when "root"
      trace_id = value
    when "self"
      parent_span_id = value
    when "parent"
      parent_span_id = value if parent_span_id.nil?
    else
      trace_fields[key] = value unless key.empty?
    end
  end

  [trace_id, parent_span_id, trace_fields]
end