Module: Gitlab::Usage::TimeSeriesStorable
- Included in:
- Gitlab::UsageDataCounters::HLLRedisCounter
- Defined in:
- lib/gitlab/usage/time_series_storable.rb
Instance Method Summary collapse
- #apply_time_aggregation(key, time) ⇒ Object
-
#keys_for_aggregation(events:, start_date:, end_date:) ⇒ Object
requires a #redis_key(event, date) method to be defined.
Instance Method Details
#apply_time_aggregation(key, time) ⇒ Object
16 17 18 19 |
# File 'lib/gitlab/usage/time_series_storable.rb', line 16 def apply_time_aggregation(key, time) year_week = time.strftime('%G-%V') "#{key}-#{year_week}" end |
#keys_for_aggregation(events:, start_date:, end_date:) ⇒ Object
requires a #redis_key(event, date) method to be defined
7 8 9 10 11 12 13 14 |
# File 'lib/gitlab/usage/time_series_storable.rb', line 7 def keys_for_aggregation(events:, start_date:, end_date:) # we always keep 1 week of margin # .end_of_week is necessary to make sure this works for 1 week long periods too end_date = end_date.end_of_week - 1.week (start_date.to_date..end_date.to_date).flat_map do |date| events.map { |event| redis_key(event, date) } end.uniq end |