mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-07-29 11:57:26 +00:00
31 lines
800 B
Ruby
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
|