class DBPurger::Metrics

DBPurger::Metrics keeps track of each part of the purge process

Attributes

delete_stats[R]
filter_stats[R]
finished_at[R]
lookup_stats[R]
purge_stats[R]
started_at[R]

Public Class Methods

new() click to toggle source
# File lib/db-purger/metrics.rb, line 13
def initialize
  reset!
end

Public Instance Methods

as_json(_opts = {}) click to toggle source
# File lib/db-purger/metrics.rb, line 68
def as_json(_opts = {})
  {
    took: elapsed_time_in_seconds,
    started_at: @started_at,
    finished_at: @finished_at,
    purge_stats: @purge_stats,
    delete_stats: @delete_stats,
    lookup_stats: @lookup_stats,
    filter_stats: @filter_stats
  }
end
elapsed_time_in_seconds() click to toggle source
# File lib/db-purger/metrics.rb, line 30
def elapsed_time_in_seconds
  (@finished_at || Time.now) - @started_at
end
finished!() click to toggle source
# File lib/db-purger/metrics.rb, line 26
def finished!
  @finished_at = Time.now
end
reset!() click to toggle source
# File lib/db-purger/metrics.rb, line 17
def reset!
  @started_at = Time.now
  @purge_stats = {}
  @delete_stats = {}
  @lookup_stats = {}
  @filter_stats = {}
  @finished_at = nil
end
update_delete_records_stats(table_name, duration, num_deleted, num_expected_to_delete = nil) click to toggle source
# File lib/db-purger/metrics.rb, line 42
def update_delete_records_stats(table_name, duration, num_deleted, num_expected_to_delete = nil)
  stats = (@delete_stats[table_name] ||= Hash.new(0))
  stats[:duration] += duration
  stats[:num_delete_queries] += 1
  stats[:num_deleted] += num_deleted
  stats[:num_expected_to_delete] += num_expected_to_delete if num_expected_to_delete
  stats
end
update_lookup_stats(table_name, duration, records_found) click to toggle source
# File lib/db-purger/metrics.rb, line 51
def update_lookup_stats(table_name, duration, records_found)
  stats = (@lookup_stats[table_name] ||= Hash.new(0))
  stats[:duration] += duration
  stats[:num_lookups] += 1
  stats[:records_found] += records_found
  stats
end
update_purge_stats(table_name, duration, num_records) click to toggle source
# File lib/db-purger/metrics.rb, line 34
def update_purge_stats(table_name, duration, num_records)
  stats = (@purge_stats[table_name] ||= Hash.new(0))
  stats[:duration] += duration
  stats[:num_purges] += 1
  stats[:num_records] += num_records
  stats
end
update_search_filter_stats(table_name, duration, records_found, records_selected) click to toggle source
# File lib/db-purger/metrics.rb, line 59
def update_search_filter_stats(table_name, duration, records_found, records_selected)
  stats = (@filter_stats[table_name] ||= Hash.new(0))
  stats[:duration] += duration
  stats[:num_lookups] += 1
  stats[:records_found] += records_found
  stats[:records_selected] += records_selected
  stats
end