class Fluent::Plugin::MySQLSlowQueryInput

Public Instance Methods

parser_create(conf) click to toggle source
# File lib/fluent/plugin/in_mysql_slow_query.rb, line 24
def parser_create(conf)
  return MySlog.new
end
receive_lines(lines, tail_watcher) click to toggle source
# File lib/fluent/plugin/in_mysql_slow_query.rb, line 37
def receive_lines(lines, tail_watcher)
  es = Fluent::MultiEventStream.new
  @parser.divide(lines).each do |record|
    begin
      record = stringify_keys @parser.parse_record(record)
      if time = record.delete('date')
        time = time.to_i
      else
        time = Time.now.to_i
      end

      if record['db'].nil? || record['db'].empty?
        record['db'] = @last_use_database ? @last_use_database : search_last_use_database()
      end

      es.add(time, record)
    rescue
      $log.warn record, :error=>$!.to_s
      $log.debug_backtrace
    end
  end

  unless es.empty?
    begin
      router.emit_stream(@tag, es)
    rescue
    end
  end
end
search_last_use_database() click to toggle source
# File lib/fluent/plugin/in_mysql_slow_query.rb, line 28
def search_last_use_database
  last_use_query = File.open(@path).grep(/^use /).last
  if last_use_query
    last_use_database = last_use_query.match(/^use ([^;]+)/)
    @last_use_database = last_use_database[1] if last_use_database
    return @last_use_database
  end
end

Private Instance Methods

stringify_keys(record) click to toggle source
# File lib/fluent/plugin/in_mysql_slow_query.rb, line 69
def stringify_keys(record)
  result = {}
  record.each_key do |key|
    result[key.to_s] = record[key]
  end
  result
end