Sha256: 2c6f72bbecf64e03cde338533c1e88a423cd16bbb0eace8789c67ff7ef5ca5f1
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
# frozen_string_literal: true module Jaeger module Client module Injectors class JaegerTextMapCodec def self.inject(span_context, carrier) carrier['uber-trace-id'] = [ span_context.trace_id.to_s(16), span_context.span_id.to_s(16), span_context.parent_id.to_s(16), span_context.flags.to_s(16) ].join(':') end end class JaegerBinaryCodec def self.inject(_span_context, _carrier) warn 'Jaeger::Client with binary format is not supported yet' end end class B3RackCodec def self.inject(span_context, carrier) carrier['x-b3-traceid'] = TraceId.to_hex(span_context.trace_id) carrier['x-b3-spanid'] = TraceId.to_hex(span_context.span_id) carrier['x-b3-parentspanid'] = TraceId.to_hex(span_context.parent_id) # flags (for debug) and sampled headers are mutually exclusive if span_context.flags == Jaeger::Client::SpanContext::Flags::DEBUG carrier['x-b3-flags'] = '1' else carrier['x-b3-sampled'] = span_context.flags.to_s(16) end end end DEFAULT_INJECTORS = { OpenTracing::FORMAT_TEXT_MAP => JaegerTextMapCodec, OpenTracing::FORMAT_BINARY => JaegerBinaryCodec, OpenTracing::FORMAT_RACK => JaegerTextMapCodec }.freeze def self.prepare(extractors) DEFAULT_INJECTORS.reduce(extractors) do |acc, (format, default)| provided_extractors = Array(extractors[format]) provided_extractors += [default] if provided_extractors.empty? acc.merge(format => provided_extractors) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jaeger-client-0.7.1 | lib/jaeger/client/injectors.rb |
jaeger-client-0.7.0 | lib/jaeger/client/injectors.rb |