class GitLab::Exporter::Database::RowCountProber

The prober which is called when gathering metrics

Public Class Methods

new(metrics: PrometheusMetrics.new, **opts) click to toggle source
# File lib/gitlab_exporter/database/row_count.rb, line 203
def initialize(metrics: PrometheusMetrics.new, **opts)
  @metrics = metrics
  @collector = RowCountCollector.new(**opts)
end

Public Instance Methods

probe_db() click to toggle source
# File lib/gitlab_exporter/database/row_count.rb, line 208
def probe_db
  results = @collector.run
  results.each do |query_name, result|
    labels = { query_name: query_name.to_s }
    result.each do |row|
      @metrics.add("gitlab_database_rows", row[:count].to_f, **labels, **row[:labels])
    end
  end

  self
rescue PG::ConnectionBad
  self
end
write_to(target) click to toggle source
# File lib/gitlab_exporter/database/row_count.rb, line 222
def write_to(target)
  target.write(@metrics.to_s)
end