class GitLab::Exporter::Database::BloatCollector

Helper to collect bloat metrics.

Attributes

logger[W]

Private Class Methods

query_for(type) click to toggle source
# File lib/gitlab_exporter/database/bloat.rb, line 23
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_exporter/database/bloat.rb, line 8
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_exporter/database/bloat.rb, line 16
def execute(query)
  with_connection_pool do |conn|
    conn.exec(query)
  end
end