class Datadog::Statsd::Serialization::ServiceCheckSerializer

Constants

SERVICE_CHECK_BASIC_OPTIONS

Attributes

tag_serializer[R]

Public Class Methods

new(global_tags: []) click to toggle source
# File lib/datadog/statsd/serialization/service_check_serializer.rb, line 12
def initialize(global_tags: [])
  @tag_serializer = TagSerializer.new(global_tags)
end

Public Instance Methods

format(name, status, options = EMPTY_OPTIONS) click to toggle source
# File lib/datadog/statsd/serialization/service_check_serializer.rb, line 16
def format(name, status, options = EMPTY_OPTIONS)
  String.new.tap do |service_check|
    # line basics
    service_check << "_sc"
    service_check << "|"
    service_check << name.to_s
    service_check << "|"
    service_check << status.to_s

    # we are serializing the generic service check options
    # before serializing specialized options that need edge-cases
    SERVICE_CHECK_BASIC_OPTIONS.each do |option_key, shortcut|
      if value = options[option_key]
        service_check << '|'
        service_check << shortcut
        service_check << value.to_s.delete('|')
      end
    end

    if message = options[:message]
      service_check << '|m:'
      service_check << escape_message(message)
    end

    # also returns the global tags from serializer
    if tags = tag_serializer.format(options[:tags])
      service_check << '|#'
      service_check << tags
    end
  end
end

Protected Instance Methods

escape_message(message) click to toggle source
# File lib/datadog/statsd/serialization/service_check_serializer.rb, line 51
def escape_message(message)
  message.delete('|').tap do |m|
    m.gsub!("\n", '\n')
    m.gsub!('m:', 'm\:')
  end
end