class Fluent::Plugin::NamedQueriesParser

fluentd parser for bind/named queries format

Constants

REGEXP
TIME_FORMAT

Public Class Methods

new(event_time = Fluent::EventTime) click to toggle source
Calls superclass method
# File lib/fluent/plugin/parser_named_queries.rb, line 44
def initialize(event_time = Fluent::EventTime)
  super()
  @mutex = Mutex.new
  @event_time = event_time
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/parser_named_queries.rb, line 50
def configure(conf)
  super
  @time_parser = time_parser_create(format: TIME_FORMAT)
end
parse(text) { |nil, nil| ... } click to toggle source
# File lib/fluent/plugin/parser_named_queries.rb, line 55
def parse(text)
  m = REGEXP.match(text)
  unless m
    yield nil, nil
    return
  end

  time = m['time']
  time = if time
           @mutex.synchronize { @time_parser.parse(time) }
         else
           @event_time.now
         end

  record = {}
  m.names.each do |name|
    next if name == 'time'

    record[name] = m[name] if m[name]
  end

  record['client_port'] = record['client_port'].to_i if record['client_port']

  record.update(Fluent::Plugin::Bind::Utils.parse_flags(record['query_flags'], prefix: 'query_flag_'))

  yield time, record
end