Module: Gitlab::Usage::TimeSeriesStorable

Included in:
Gitlab::UsageDataCounters::HLLRedisCounter
Defined in:
lib/gitlab/usage/time_series_storable.rb

Instance Method Summary collapse

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