class ElasticAPM::TraceContext::Tracestate::EsEntry

@api private

Constants

ASSIGN
LONG_TO_SHORT
SHORT_TO_LONG
SPLIT

Attributes

sample_rate[R]

Public Class Methods

new(values = nil) click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 48
def initialize(values = nil)
  parse(values)
end

Public Instance Methods

empty?() click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 64
def empty?
  !sample_rate
end
key() click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 54
def key
  'es'
end
sample_rate=(val) click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 68
def sample_rate=(val)
  @sample_rate = Util::PrecisionValidator.validate(
    val, precision: 4, minimum: 0.0001
  )
end
to_s() click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 74
def to_s
  return nil if empty?

  "es=#{value}"
end
value() click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 58
def value
  LONG_TO_SHORT.map do |l, s|
    "#{s}#{ASSIGN}#{send(l)}"
  end.join(SPLIT)
end

Private Instance Methods

parse(values) click to toggle source
# File lib/elastic_apm/trace_context/tracestate.rb, line 82
def parse(values)
  return unless values

  values.split(SPLIT).map do |kv|
    k, v = kv.split(ASSIGN)
    next unless SHORT_TO_LONG.key?(k)
    send("#{SHORT_TO_LONG[k]}=", v)
  end
end