class Fluent::Plugin::ParseMultipleValueQueryOutput

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 16
def initialize
  super
  require 'rack'
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 24
def configure(conf)
  super
end
multi_workers_ready?() click to toggle source
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 36
def multi_workers_ready?
  true
end
parse_query_string(record, query_string) click to toggle source
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 66
def parse_query_string(record, query_string)
  begin
    target = sub_key ? (record[sub_key] ||= {}) : record

    parsed_query = Rack::Utils.parse_nested_query(query_string)
    parsed_query.each do |key, value|
      if value == ''
        target[key] = ''
      else
        if value.class == Array && remove_empty_array
          if value.empty? || value == [''] || value == [nil]
            target.delete(key)
          else
            target[key] = value
          end
        else
          target[key] = value
        end
      end
    end
  rescue StandardError => e
    log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.message} record:#{record} bactrace:#{e.backtrace.first}")
  end
  record
end
parse_uri(record) click to toggle source
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 54
def parse_uri(record)
  return unless record[key]
  if only_query_string
    parse_query_string(record, record[key])
  else
    url = without_host ? "http://example.com#{record[key]}" : record[key]

    query = URI.parse(url).query
    parse_query_string(record, query)
  end
end
process(tag, es) click to toggle source
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 40
def process(tag, es)
  es.each do |time, record|
    t = tag.dup
    new_record = parse_uri(record)

    t = @tag_prefix + t unless @tag_prefix.nil?

    router.emit(t, time, new_record)
  end
  chain.next
rescue StandardError => e
  log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.message} tag:#{tag} es:#{es} bactrace:#{e.backtrace.first}")
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 32
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_parse_multiple_value_query.rb, line 28
def start
  super
end