30 lines
712 B
Ruby
30 lines
712 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module UsageCounters
|
|
class Common
|
|
class << self
|
|
def increment(project_id)
|
|
Gitlab::Redis::SharedState.with { |redis| redis.hincrby(base_key, project_id, 1) }
|
|
end
|
|
|
|
def usage_totals
|
|
Gitlab::Redis::SharedState.with do |redis|
|
|
total_sum = 0
|
|
|
|
totals = redis.hgetall(base_key).each_with_object({}) do |(project_id, count), result|
|
|
total_sum += result[project_id.to_i] = count.to_i
|
|
end
|
|
|
|
totals[:total] = total_sum
|
|
totals
|
|
end
|
|
end
|
|
|
|
def base_key
|
|
raise NotImplementedError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|