class Blackbeard::MetricData::Total
Constants
- DEFAULT_SEGMENT
Public Instance Methods
add(uid, amount = 1, segment = DEFAULT_SEGMENT)
click to toggle source
# File lib/blackbeard/metric_data/total.rb, line 9 def add(uid, amount = 1, segment = DEFAULT_SEGMENT) add_at(tz.now, uid, amount, segment) end
add_at(time, uid, amount = 1, segment = DEFAULT_SEGMENT)
click to toggle source
# File lib/blackbeard/metric_data/total.rb, line 13 def add_at(time, uid, amount = 1, segment = DEFAULT_SEGMENT) # TODO: ensure time is in correct timezone key = key_for_hour(time) db.set_add_member(hours_set_key, key) db.hash_increment_by_float(key, segment, amount.to_f) # TODO: if not today, blow away rollup keys end
result_for_hour(time)
click to toggle source
# File lib/blackbeard/metric_data/total.rb, line 21 def result_for_hour(time) key = key_for_hour(time) result = db.hash_get_all(key) result.each{ |k,v| result[k] = v.to_f } result end
Private Instance Methods
merge_results(keys)
click to toggle source
# File lib/blackbeard/metric_data/total.rb, line 30 def merge_results(keys) merged_results = {} keys.each do |key| result = db.hash_get_all(key) result.each{ |k,v| merged_results[k] ||= 0; merged_results[k] += v.to_f} end merged_results end