diff options
Diffstat (limited to 'db/fixtures/development/29_usage_trends.rb')
-rw-r--r-- | db/fixtures/development/29_usage_trends.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/db/fixtures/development/29_usage_trends.rb b/db/fixtures/development/29_usage_trends.rb new file mode 100644 index 00000000000..88f2ff210dd --- /dev/null +++ b/db/fixtures/development/29_usage_trends.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require './spec/support/sidekiq_middleware' + +Gitlab::Seeder.quiet do + chance_for_decrement = 0.1 # 10% chance that we'll generate smaller count than the previous count + max_increase = 10000 + max_decrease = 1000 + + model_class = Analytics::UsageTrends::Measurement + + measurements = model_class.identifiers.flat_map do |_, id| + recorded_at = 60.days.ago + current_count = rand(1_000_000) + + # Insert random counts for the last 60 days + Array.new(60) do + recorded_at = (recorded_at + 1.day).end_of_day - 5.minutes + + # Normally our counts should slowly increase as the gitlab instance grows. + # Small chance (10%) to have a slight decrease (simulating cleanups, bulk delete) + if rand < chance_for_decrement + current_count -= rand(max_decrease) + else + current_count += rand(max_increase) + end + + { + recorded_at: recorded_at, + count: current_count, + identifier: id + } + end + end + + model_class.upsert_all(measurements, unique_by: [:identifier, :recorded_at]) + + print '.' +end |