class MysqlDumpSlow::Counter

Constants

TIME_BASE_SEC

Attributes

abstract_query[R]
total_count[R]
total_lock_time[R]
total_query_time[R]
total_rows_sent[R]
user_hosts[R]

Public Class Methods

new(abstract_query) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 7
def initialize(abstract_query)
  @abstract_query = abstract_query
end

Public Instance Methods

average_lock_time() click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 27
def average_lock_time
  total_lock_time / total_count
end
average_query_time() click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 23
def average_query_time
  total_query_time / total_count
end
average_rows_sent() click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 31
def average_rows_sent
  total_rows_sent / total_count
end
count_up(log) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 11
def count_up(log)
  count_up_query_time(log.query_time)
  count_up_lock_time(log.lock_time)
  count_up_rows_sent(log.rows_sent)
  count_up_user_host(log.user_host)
  count_up_counter
end
to_mysqldumpslow() click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 35
    def to_mysqldumpslow
      <<-EOS
Count: #{total_count}  Time=#{average_query_time/1000}s (#{total_query_time/1000}s)  Lock=#{average_lock_time/1000}s (#{total_lock_time/1000}s)  Rows=#{average_rows_sent} (#{total_rows_sent}),  #{ user_hosts.size == 1 ? user_hosts.first : user_hosts.size.to_s + 'hosts'}
  #{abstract_query}
      EOS
    end
total_user_host() click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 19
def total_user_host
  @user_hosts.size
end

Private Instance Methods

count_up_counter() click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 44
def count_up_counter
  @total_count ||= 0
  @total_count +=  1
end
count_up_lock_time(lock_time) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 54
def count_up_lock_time(lock_time)
  @total_lock_time ||= 0
  @total_lock_time += time_to_ms(lock_time - TIME_BASE_SEC)
end
count_up_query_time(query_time) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 49
def count_up_query_time(query_time)
  @total_query_time ||= 0
  @total_query_time += time_to_ms(query_time - TIME_BASE_SEC)
end
count_up_rows_sent(rows_sent) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 59
def count_up_rows_sent(rows_sent)
  @total_rows_sent ||= 0
  @total_rows_sent += rows_sent
end
count_up_user_host(user_host) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 64
def count_up_user_host(user_host)
  @user_hosts ||= []
  @user_hosts << user_host unless @user_hosts.include?(user_host)
end
time_to_ms(time) click to toggle source
# File lib/mysql_dump_slow/counter.rb, line 69
def time_to_ms(time)
  time.instance_eval { self.to_i * 1000 + (usec / 1000) }
end