Sha256: 8270e0c9db0d3dbb560072f4da4a1575dd39bddd018bc437c626f1bb0735ce33
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
# typed: true require_relative '../tracing/span' require_relative '../tracing/distributed/datadog' module Datadog module OpenTracer # DistributedHeaders provides easy access and validation to headers # @public_api class DistributedHeaders def initialize(carrier) @carrier = carrier end def valid? # Sampling priority is optional. !trace_id.nil? && !parent_id.nil? end def trace_id id Tracing::Distributed::Datadog::TRACE_ID_KEY end def parent_id id Tracing::Distributed::Datadog::PARENT_ID_KEY end def sampling_priority hdr = @carrier[Tracing::Distributed::Datadog::SAMPLING_PRIORITY_KEY] # 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 def origin hdr = @carrier[Tracing::Distributed::Datadog::ORIGIN_KEY] # Only return the value if it is not an empty string hdr if hdr != '' end private def id(header) value = @carrier[header].to_i return if value.zero? || value >= Datadog::Tracing::Span::EXTERNAL_MAX_ID value < 0 ? value + 0x1_0000_0000_0000_0000 : value end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-1.7.0 | lib/datadog/opentracer/distributed_headers.rb |