Module: Gitlab::Database::Sos
- Defined in:
- lib/gitlab/database/sos.rb,
lib/gitlab/database/sos/output.rb,
lib/gitlab/database/sos/ar_schema_dump.rb,
lib/gitlab/database/sos/db_stats_activity.rb,
lib/gitlab/database/sos/pg_stat_statements.rb,
lib/gitlab/database/sos/platform_config_info.rb,
lib/gitlab/database/sos/base_db_stats_handler.rb,
lib/gitlab/database/sos/db_loop_stats_activity.rb
Defined Under Namespace
Classes: ArSchemaDump, BaseDbStatsHandler, DbLoopStatsActivity, DbStatsActivity, Output, PgStatStatements, PlatformConfigInfo
Constant Summary collapse
- DURATION =
5.minutes
- SAMPLING_INTERVAL =
3.seconds
- SINGLE_TASKS =
[ Sos::PlatformConfigInfo, Sos::ArSchemaDump, Sos::DbStatsActivity ].freeze
- LONG_RUNNING_TASKS =
[ Sos::PgStatStatements, Sos::DbLoopStatsActivity ].freeze
Class Method Summary collapse
Class Method Details
.run(output_file) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/gitlab/database/sos.rb', line 21 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 |