Class: Gitlab::Database::Sos::DbLoopStatsActivity

Inherits:
BaseDbStatsHandler show all
Defined in:
lib/gitlab/database/sos/db_loop_stats_activity.rb

Constant Summary collapse

QUERIES =
{
  pg_stat_user_tables: "    SELECT now() AS timestamp, *\n    FROM pg_stat_user_tables;\n  SQL\n\n  pg_stat_user_indexes: <<~SQL,\n    SELECT now() AS timestamp, *\n    FROM pg_stat_user_indexes;\n  SQL\n\n  pg_statio_user_tables: <<~SQL,\n    SELECT now() AS timestamp, *\n    FROM pg_statio_user_tables;\n  SQL\n\n  pg_statio_user_indexes: <<~SQL,\n    SELECT now() AS timestamp, *\n    FROM pg_statio_user_indexes;\n  SQL\n\n  table_relation_size: <<~SQL.squish,\n    SELECT\n      now() AS timestamp,\n      n.nspname || '.' || c.relname AS \"relation\",\n      pg_total_relation_size(c.oid) AS \"total_size_bytes\"\n    FROM\n      pg_class c\n    JOIN\n      pg_namespace n ON n.oid = c.relnamespace\n    WHERE\n      n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast')\n    ORDER BY\n      pg_total_relation_size(c.oid) DESC;\n  SQL\n\n  pg_lock_stat_activity: <<~SQL.squish\n    SELECT\n      now() AS timestamp,\n      a.pid,\n      a.usename,\n      a.application_name,\n      a.client_addr,\n      a.backend_start,\n      a.query_start,\n      a.state,\n      a.wait_event_type,\n      a.wait_event,\n      a.query,\n      l.locktype,\n      l.mode,\n      l.granted,\n      l.relation::regclass AS locked_relation\n    FROM\n      pg_stat_activity a\n    LEFT JOIN\n      pg_locks l ON l.pid = a.pid\n    WHERE\n      a.state != 'idle'\n    ORDER BY\n      a.query_start DESC;\n  SQL\n}.freeze\n",

Instance Attribute Summary

Attributes inherited from BaseDbStatsHandler

#connection, #name, #output

Instance Method Summary collapse

Methods inherited from BaseDbStatsHandler

#execute_query, #initialize, #write_to_csv

Constructor Details

This class inherits a constructor from Gitlab::Database::Sos::BaseDbStatsHandler

Instance Method Details

#runObject



73
74
75
76
77
78
# File 'lib/gitlab/database/sos/db_loop_stats_activity.rb', line 73

def run
  QUERIES.each do |query_name, query|
    result = execute_query(query)
    write_to_csv(query_name, result, include_timestamp: true)
  end
end