lib/instana/tracing/span_context.rb in instana-1.197.0.pre1 vs lib/instana/tracing/span_context.rb in instana-1.197.0.pre2

- old
+ new

@@ -29,32 +29,37 @@ def span_id_header ::Instana::Util.id_to_header(@span_id) end def trace_parent_header - return '' unless valid? - - trace = (@baggage[:external_trace_id] || @trace_id).rjust(32, '0') - parent = @span_id.rjust(16, '0') + trace = (@baggage[:external_trace_id] || trace_id_header).rjust(32, '0') + parent = span_id_header.rjust(16, '0') flags = @level == 1 ? "01" : "00" "00-#{trace}-#{parent}-#{flags}" end def trace_state_header - return '' unless valid? + external_state = @baggage[:external_state] || '' + state = external_state.split(/,/) - state = ["in=#{trace_id_header};#{span_id_header}", @baggage[:external_state]] + if @level == 1 + state = state.reject { |s| s.start_with?('in=') } + state.unshift("in=#{trace_id_header};#{span_id_header}") + end + state.compact.join(',') end def to_hash { :trace_id => @trace_id, :span_id => @span_id } end - private - def valid? - @baggage && @trace_id && @span_id + @baggage && @trace_id && !@trace_id.emtpy? + end + + def active? + @level == 1 end end end