Module: Honeycomb::HoneycombModernPropagation::MarshalTraceContext
- Defined in:
- lib/honeycomb/propagation/honeycomb_modern.rb
Overview
Serialize trace headers
Class Method Summary collapse
- .parse_faraday_env(_env, propagation_context) ⇒ Object
- .to_trace_header(propagation_context) ⇒ Object
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_header ⇒ Object
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 |