1# frozen_string_literal: true 2 3module Gitlab 4 class UsageDataMetrics 5 class << self 6 # Build the Usage Ping JSON payload from metrics YAML definitions which have instrumentation class set 7 def uncached_data 8 build_payload(:with_value) 9 end 10 11 def suggested_names 12 build_payload(:with_suggested_name) 13 end 14 15 private 16 17 def build_payload(method_symbol) 18 ::Gitlab::Usage::Metric.all.map(&method_symbol).reduce({}, :deep_merge) 19 end 20 end 21 end 22end 23