Class: Datadog::Statsd::Serialization::FieldSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/statsd/serialization/field_serializer.rb

Constant Summary collapse

VALID_CARDINALITY =
[:none, :low, :orchestrator, :high]

Instance Method Summary collapse

Constructor Details

#initialize(container_id, external_data) ⇒ FieldSerializer

Returns a new instance of FieldSerializer.



9
10
11
12
# File 'lib/datadog/statsd/serialization/field_serializer.rb', line 9

def initialize(container_id, external_data)
  @container_id = container_id
  @external_data = external_data
end

Instance Method Details

#format(cardinality) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/datadog/statsd/serialization/field_serializer.rb', line 14

def format(cardinality)
  if @container_id.nil? && @external_data.nil? && cardinality.nil?
    return ""
  end

  field = String.new
  field << "|c:#{@container_id}" unless @container_id.nil?
  field << "|e:#{@external_data}" unless @external_data.nil?

  unless cardinality.nil?
    unless VALID_CARDINALITY.include?(cardinality.to_sym)
      raise ArgumentError, "Invalid cardinality #{cardinality}. Valid options are #{VALID_CARDINALITY.join(', ')}."
    end

    field << "|card:#{cardinality}"
  end

  field
end