Files
gitlab-ce/lib/gitlab/database/sos/pg_stat_statements.rb
2025-03-18 21:12:38 +00:00

31 lines
800 B
Ruby

# frozen_string_literal: true
module Gitlab
module Database
module Sos
class PgStatStatements < BaseDbStatsHandler
include Gitlab::Utils::StrongMemoize
QUERY = <<~SQL
SELECT now() AS timestamp, *
FROM pg_stat_statements;
SQL
def run
return unless pg_stat_statements_installed?
result = execute_query(QUERY)
write_to_csv("pg_stat_statements", result, include_timestamp: true)
end
def pg_stat_statements_installed?
query = "select exists(select 1 from pg_extension where extname = 'pg_stat_statements');"
result = execute_query(query)
result.first['exists']
end
strong_memoize_attr :pg_stat_statements_installed?
end
end
end
end