mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-08-06 11:10:08 +00:00
44 lines
1.0 KiB
Ruby
44 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# WIP
|
|
module Gitlab
|
|
module Database
|
|
module Sos
|
|
DURATION = 5.minutes
|
|
SAMPLING_INTERVAL = 3.seconds
|
|
|
|
SINGLE_TASKS = [
|
|
Sos::PlatformConfigInfo,
|
|
Sos::ArSchemaDump,
|
|
Sos::DbStatsActivity
|
|
].freeze
|
|
|
|
LONG_RUNNING_TASKS = [
|
|
Sos::PgStatStatements,
|
|
Sos::DbLoopStatsActivity
|
|
].freeze
|
|
|
|
def self.run(output_file)
|
|
Output.writing(output_file, mode: :zip) do |output|
|
|
Gitlab::Database::EachDatabase.each_connection(include_shared: false) do |conn, name|
|
|
SINGLE_TASKS.each do |t|
|
|
t.new(conn, name, output).run
|
|
end
|
|
end
|
|
|
|
duration = DURATION.from_now
|
|
|
|
while duration.future?
|
|
Gitlab::Database::EachDatabase.each_connection(include_shared: false) do |conn, name|
|
|
LONG_RUNNING_TASKS.each do |t|
|
|
t.new(conn, name, output).run
|
|
end
|
|
end
|
|
sleep(SAMPLING_INTERVAL)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|