class Jaeger::Extractors::JaegerRackCodec
Public Class Methods
extract(carrier)
click to toggle source
# File lib/jaeger/extractors.rb, line 43 def self.extract(carrier) serialized_trace = carrier['HTTP_UBER_TRACE_ID'] serialized_trace = CGI.unescape(serialized_trace) if serialized_trace context = SerializedJaegerTrace.parse(serialized_trace) return nil unless context carrier.each do |key, value| baggage_match = key.match(/\AHTTP_UBERCTX_(\w+)\Z/) if baggage_match key = baggage_match[1].downcase.tr('_', '-') context.set_baggage_item(key, CGI.unescape(value)) end end context end