Module: Honeycomb::HoneycombModernPropagation::MarshalTraceContext

Defined in:
lib/honeycomb/propagation/honeycomb_modern.rb

Overview

Serialize trace headers

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse_faraday_env(_env, propagation_context) ⇒ Object



71
72
73
74
75
# File 'lib/honeycomb/propagation/honeycomb_modern.rb', line 71

def self.parse_faraday_env(_env, propagation_context)
  {
    "X-Honeycomb-Trace" => to_trace_header(propagation_context),
  }
end

.to_trace_header(propagation_context) ⇒ Object



77
78
79
80
81
82
83
84
85
86
# File 'lib/honeycomb/propagation/honeycomb_modern.rb', line 77

def self.to_trace_header(propagation_context)
  fields = propagation_context.trace_fields
  context = Base64.urlsafe_encode64(JSON.generate(fields)).strip
  data_to_propogate = [
    "trace_id=#{propagation_context.trace_id}",
    "parent_id=#{propagation_context.parent_id}",
    "context=#{context}",
  ]
  "1;#{data_to_propogate.join(',')}"
end

Instance Method Details

#to_trace_headerObject



61
62
63
64
65
66
67
68
69
# File 'lib/honeycomb/propagation/honeycomb_modern.rb', line 61

def to_trace_header
  context = Base64.urlsafe_encode64(JSON.generate(trace.fields)).strip
  data_to_propogate = [
    "trace_id=#{trace.id}",
    "parent_id=#{id}",
    "context=#{context}",
  ]
  "1;#{data_to_propogate.join(',')}"
end