Class: Sentry::OpenTelemetry::OTLPPropagator

Inherits:
Propagator
  • Object
show all
Defined in:
lib/sentry/opentelemetry/otlp_propagator.rb

Constant Summary

Constants inherited from Propagator

Propagator::FIELDS, Propagator::SENTRY_BAGGAGE_KEY, Propagator::SENTRY_TRACE_KEY

Instance Method Summary collapse

Methods inherited from Propagator

#extract, #fields

Instance Method Details

#inject(carrier, context: ::OpenTelemetry::Context.current, setter: ::OpenTelemetry::Context::Propagation.text_map_setter) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sentry/opentelemetry/otlp_propagator.rb', line 6

def inject(
  carrier,
  context: ::OpenTelemetry::Context.current,
  setter: ::OpenTelemetry::Context::Propagation.text_map_setter
)
  span_context = ::OpenTelemetry::Trace.current_span(context).context
  return unless span_context.valid?

  setter.set(carrier, SENTRY_TRACE_HEADER_NAME, to_sentry_trace(span_context))

  baggage = context[SENTRY_BAGGAGE_KEY]
  if baggage.is_a?(Sentry::Baggage)
    baggage_string = baggage.serialize
    setter.set(carrier, BAGGAGE_HEADER_NAME, baggage_string) unless baggage_string&.empty?
  end
end