Class: DBPurger::Metrics
- Inherits:
-
Object
- Object
- DBPurger::Metrics
- Defined in:
- lib/db-purger/metrics.rb
Overview
DBPurger::Metrics keeps track of each part of the purge process
Instance Attribute Summary collapse
-
#delete_stats ⇒ Object
readonly
Returns the value of attribute delete_stats.
-
#filter_stats ⇒ Object
readonly
Returns the value of attribute filter_stats.
-
#finished_at ⇒ Object
readonly
Returns the value of attribute finished_at.
-
#lookup_stats ⇒ Object
readonly
Returns the value of attribute lookup_stats.
-
#purge_stats ⇒ Object
readonly
Returns the value of attribute purge_stats.
-
#started_at ⇒ Object
readonly
Returns the value of attribute started_at.
Instance Method Summary collapse
- #as_json(_opts = {}) ⇒ Object
- #elapsed_time_in_seconds ⇒ Object
- #finished! ⇒ Object
-
#initialize ⇒ Metrics
constructor
A new instance of Metrics.
- #reset! ⇒ Object
- #update_delete_records_stats(table_name, duration, num_deleted, num_expected_to_delete = nil) ⇒ Object
- #update_lookup_stats(table_name, duration, records_found) ⇒ Object
- #update_purge_stats(table_name, duration, num_records) ⇒ Object
- #update_search_filter_stats(table_name, duration, records_found, records_selected) ⇒ Object
Constructor Details
#initialize ⇒ Metrics
Returns a new instance of Metrics.
13 14 15 |
# File 'lib/db-purger/metrics.rb', line 13 def initialize reset! end |
Instance Attribute Details
#delete_stats ⇒ Object (readonly)
Returns the value of attribute delete_stats.
6 7 8 |
# File 'lib/db-purger/metrics.rb', line 6 def delete_stats @delete_stats end |
#filter_stats ⇒ Object (readonly)
Returns the value of attribute filter_stats.
6 7 8 |
# File 'lib/db-purger/metrics.rb', line 6 def filter_stats @filter_stats end |
#finished_at ⇒ Object (readonly)
Returns the value of attribute finished_at.
6 7 8 |
# File 'lib/db-purger/metrics.rb', line 6 def finished_at @finished_at end |
#lookup_stats ⇒ Object (readonly)
Returns the value of attribute lookup_stats.
6 7 8 |
# File 'lib/db-purger/metrics.rb', line 6 def lookup_stats @lookup_stats end |
#purge_stats ⇒ Object (readonly)
Returns the value of attribute purge_stats.
6 7 8 |
# File 'lib/db-purger/metrics.rb', line 6 def purge_stats @purge_stats end |
#started_at ⇒ Object (readonly)
Returns the value of attribute started_at.
6 7 8 |
# File 'lib/db-purger/metrics.rb', line 6 def started_at @started_at end |
Instance Method Details
#as_json(_opts = {}) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# 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 ⇒ Object
30 31 32 |
# File 'lib/db-purger/metrics.rb', line 30 def elapsed_time_in_seconds (@finished_at || Time.now) - @started_at end |
#finished! ⇒ Object
26 27 28 |
# File 'lib/db-purger/metrics.rb', line 26 def finished! @finished_at = Time.now end |
#reset! ⇒ Object
17 18 19 20 21 22 23 24 |
# 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) ⇒ Object
42 43 44 45 46 47 48 49 |
# 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) ⇒ Object
51 52 53 54 55 56 57 |
# 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) ⇒ Object
34 35 36 37 38 39 40 |
# 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) ⇒ Object
59 60 61 62 63 64 65 66 |
# 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 |