Class: OpenTelemetry::Trace::Propagation::TraceContext::TextMapExtractor
- Inherits:
-
Object
- Object
- OpenTelemetry::Trace::Propagation::TraceContext::TextMapExtractor
- Includes:
- Context::Propagation::DefaultGetter
- Defined in:
- lib/opentelemetry/trace/propagation/trace_context/text_map_extractor.rb
Overview
Extracts context from carriers in the W3C Trace Context format
Instance Method Summary collapse
-
#extract(carrier, context, &getter) {|Carrier, String| ... } ⇒ Context
Extract a remote SpanContext from the supplied carrier.
-
#initialize(traceparent_key: 'traceparent', tracestate_key: 'tracestate') ⇒ TextMapExtractor
constructor
Returns a new TextMapExtractor that extracts context using the specified header keys.
Methods included from Context::Propagation::DefaultGetter
Constructor Details
#initialize(traceparent_key: 'traceparent', tracestate_key: 'tracestate') ⇒ TextMapExtractor
Returns a new TextMapExtractor that extracts context using the specified header keys
20 21 22 23 24 |
# File 'lib/opentelemetry/trace/propagation/trace_context/text_map_extractor.rb', line 20 def initialize(traceparent_key: 'traceparent', tracestate_key: 'tracestate') @traceparent_key = traceparent_key @tracestate_key = tracestate_key end |
Instance Method Details
#extract(carrier, context, &getter) {|Carrier, String| ... } ⇒ Context
Extract a remote SpanContext from the supplied carrier. Invalid headers will result in a new, valid, non-remote SpanContext.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/opentelemetry/trace/propagation/trace_context/text_map_extractor.rb', line 38 def extract(carrier, context, &getter) getter ||= default_getter tp = TraceParent.from_string(getter.call(carrier, @traceparent_key)) tracestate = Tracestate.from_string(getter.call(carrier, @tracestate_key)) span_context = Trace::SpanContext.new(trace_id: tp.trace_id, span_id: tp.span_id, trace_flags: tp.flags, tracestate: tracestate, remote: true) span = Trace::Span.new(span_context: span_context) OpenTelemetry::Trace.context_with_span(span) rescue OpenTelemetry::Error context end |