# 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