class GitLab::Monitor::Database::BloatCollector
Helper to collect bloat metrics.
Private Class Methods
query_for(type)
click to toggle source
# File lib/gitlab_monitor/database/bloat.rb, line 21 def query_for(type) @queries ||= {} return @queries[type] if @queries[type] file = File.join(__dir__, "bloat_#{type}.sql") fail "Unknown bloat query file: #{file}" unless File.exist?(file) @queries[type] = File.read(file) end
Public Instance Methods
run(type = :btree)
click to toggle source
# File lib/gitlab_monitor/database/bloat.rb, line 6 def run(type = :btree) execute(self.class.query_for(type)).each_with_object({}) do |row, h| h[row["object_name"]] = row end end
Private Instance Methods
execute(query)
click to toggle source
# File lib/gitlab_monitor/database/bloat.rb, line 14 def execute(query) with_connection_pool do |conn| conn.exec(query) end end