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