class Datadog::OpenTracer::DistributedHeaders
DistributedHeaders
provides easy access and validation to headers
Public Class Methods
new(carrier)
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 10 def initialize(carrier) @carrier = carrier end
Public Instance Methods
origin()
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 37 def origin hdr = @carrier[HTTP_HEADER_ORIGIN] # Only return the value if it is not an empty string hdr if hdr != '' end
parent_id()
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 23 def parent_id id HTTP_HEADER_PARENT_ID end
sampling_priority()
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 27 def sampling_priority hdr = @carrier[HTTP_HEADER_SAMPLING_PRIORITY] # It's important to make a difference between no header, # and a header defined to zero. return unless hdr value = hdr.to_i return if value < 0 value end
trace_id()
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 19 def trace_id id HTTP_HEADER_TRACE_ID end
valid?()
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 14 def valid? # Sampling priority is optional. !trace_id.nil? && !parent_id.nil? end
Private Instance Methods
id(header)
click to toggle source
# File lib/ddtrace/opentracer/distributed_headers.rb, line 45 def id(header) value = @carrier[header].to_i return if value.zero? || value >= Datadog::Span::MAX_ID value < 0 ? value + 0x1_0000_0000_0000_0000 : value end