Module: Honeycomb::HoneycombPropagation::MarshalTraceContext
- Included in:
- PropagationSerializer
- Defined in:
- lib/honeycomb/propagation/honeycomb.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
75 76 77 78 79 |
# File 'lib/honeycomb/propagation/honeycomb.rb', line 75 def self.parse_faraday_env(_env, propagation_context) { "X-Honeycomb-Trace" => to_trace_header(propagation_context), } end |
.to_trace_header(propagation_context) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/honeycomb/propagation/honeycomb.rb', line 81 def self.to_trace_header(propagation_context) fields = propagation_context.trace_fields context = Base64.urlsafe_encode64(JSON.generate(fields)).strip dataset = propagation_context.dataset encoded_dataset = URI.encode_www_form_component(dataset) data_to_propogate = [ "dataset=#{encoded_dataset}", "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
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/honeycomb/propagation/honeycomb.rb', line 63 def to_trace_header context = Base64.urlsafe_encode64(JSON.generate(trace.fields)).strip encoded_dataset = URI.encode_www_form_component(builder.dataset) data_to_propogate = [ "dataset=#{encoded_dataset}", "trace_id=#{trace.id}", "parent_id=#{id}", "context=#{context}", ] "1;#{data_to_propogate.join(',')}" end |