class LogStash::Outputs::SumoLogic::HeaderBuilder

Public Class Methods

new(config) click to toggle source
# File lib/logstash/outputs/sumologic/header_builder.rb, line 10
def initialize(config)
  
  @extra_headers = config["extra_headers"] ||= {}
  @source_category = config["source_category"] ||= CATEGORY_HEADER_DEFAULT
  @stats_category = config["stats_category"] ||= CATEGORY_HEADER_DEFAULT_STATS
  @source_host = config["source_host"] ||= Socket.gethostname
  @source_name = config["source_name"] ||= NAME_HEADER_DEFAULT
  @metrics = config["metrics"]
  @fields_as_metrics = config["fields_as_metrics"]
  @metrics_format = (config["metrics_format"] ||= CARBON2).downcase
  @compress = config["compress"]
  @compress_encoding = config["compress_encoding"]

end

Public Instance Methods

build(event) click to toggle source
# File lib/logstash/outputs/sumologic/header_builder.rb, line 25
def build(event)
  headers = Hash.new
  headers.merge!(@extra_headers)
  headers[CLIENT_HEADER] = CLIENT_HEADER_VALUE
  headers[CATEGORY_HEADER] = event.sprintf(@source_category) unless blank?(@source_category)
  headers[HOST_HEADER] = event.sprintf(@source_host) unless blank?(@source_host)
  headers[NAME_HEADER] = event.sprintf(@source_name) unless blank?(@source_name)
  append_content_header(headers)
  append_compress_header(headers)
  headers
end
build_stats() click to toggle source
# File lib/logstash/outputs/sumologic/header_builder.rb, line 37
def build_stats()
  headers = Hash.new
  headers.merge!(@extra_headers)
  headers[CLIENT_HEADER] = CLIENT_HEADER_VALUE
  headers[CATEGORY_HEADER] = @stats_category
  headers[HOST_HEADER] = Socket.gethostname
  headers[NAME_HEADER] = NAME_HEADER_DEFAULT
  headers[CONTENT_TYPE] = CONTENT_TYPE_CARBON2 
  append_compress_header(headers)
  headers
end

Private Instance Methods

append_compress_header(headers) click to toggle source
# File lib/logstash/outputs/sumologic/header_builder.rb, line 58
def append_compress_header(headers)
  if @compress
    headers[CONTENT_ENCODING] = (@compress_encoding == GZIP) ? GZIP : DEFLATE
  end
end
append_content_header(headers) click to toggle source
# File lib/logstash/outputs/sumologic/header_builder.rb, line 50
def append_content_header(headers)
  contentType = CONTENT_TYPE_LOG
  if @metrics || @fields_as_metrics
    contentType = (@metrics_format == GRAPHITE) ? CONTENT_TYPE_GRAPHITE : CONTENT_TYPE_CARBON2
  end
  headers[CONTENT_TYPE] = contentType
end