31 lines
		
	
	
		
			712 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			31 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
 |