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
  @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 24
def build(event)
  headers = Hash.new
  headers.merge!(@extra_headers)
  headers[CLIENT_HEADER] = CLIENT_HEADER_VALUE
  headers[CATEGORY_HEADER] = event.sprintf(@source_category) unless @source_category.blank?
  headers[HOST_HEADER] = event.sprintf(@source_host) unless @source_host.blank?
  headers[NAME_HEADER] = event.sprintf(@source_name) unless @source_name.blank?
  append_content_header(headers)
  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 45
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 37
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