Module: TimeWindowDropCollector::Utils
- Included in:
- Storage
- Defined in:
- lib/time_window_drop_collector/utils.rb
Instance Method Summary collapse
- #grouping_count(key_values) ⇒ Object
- #slice_milliseconds ⇒ Object
- #slice_start_timestamp(time) ⇒ Object
- #timestamp ⇒ Object
- #timestamp_key(key, time = timestamp) ⇒ Object
- #timestamp_key_multi(keys, time = timestamp) ⇒ Object
- #window_keys(key, time = timestamp) ⇒ Object
- #window_keys_multi(keys) ⇒ Object
Instance Method Details
#grouping_count(key_values) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 |
# File 'lib/time_window_drop_collector/utils.rb', line 2 def grouping_count( key_values ) groups = key_values.group_by { |k,v| k.match( /drop_window_(.*)_/ )[1] } result = {} groups.each do |k,v| result[k] = v.inject(0) { |acc,e| acc += e[1].to_i } end result end |
#slice_milliseconds ⇒ Object
36 37 38 |
# File 'lib/time_window_drop_collector/utils.rb', line 36 def slice_milliseconds @slice_milliseconds ||= ( window * 1000 ) / slices end |
#slice_start_timestamp(time) ⇒ Object
40 41 42 43 44 |
# File 'lib/time_window_drop_collector/utils.rb', line 40 def ( time ) time_milliseconds = ( time.to_f * 1000 ).truncate ( time_milliseconds / slice_milliseconds ) * slice_milliseconds end |
#timestamp ⇒ Object
32 33 34 |
# File 'lib/time_window_drop_collector/utils.rb', line 32 def Time.now end |
#timestamp_key(key, time = timestamp) ⇒ Object
14 15 16 |
# File 'lib/time_window_drop_collector/utils.rb', line 14 def ( key, time = ) "drop_window_#{key}_#{( time )}" end |
#timestamp_key_multi(keys, time = timestamp) ⇒ Object
18 19 20 |
# File 'lib/time_window_drop_collector/utils.rb', line 18 def ( keys, time = ) keys.map { |key| ( key, time) }.flatten end |
#window_keys(key, time = timestamp) ⇒ Object
22 23 24 25 26 |
# File 'lib/time_window_drop_collector/utils.rb', line 22 def window_keys( key, time = ) ( 0..( slices - 1 ) ).map{ |i| ( key, time - ( ( i*slice_milliseconds ) / 1000 ) ) } end |
#window_keys_multi(keys) ⇒ Object
28 29 30 |
# File 'lib/time_window_drop_collector/utils.rb', line 28 def window_keys_multi( keys ) keys.map { |key| window_keys( key ) }.flatten end |