class GitLab::Monitor::Database::RowCountProber

The prober which is called when gathering metrics

Public Class Methods

new(opts, metrics: PrometheusMetrics.new) click to toggle source
# File lib/gitlab_monitor/database/row_count.rb, line 139
def initialize(opts, metrics: PrometheusMetrics.new)
  @metrics = metrics
  @collector = RowCountCollector.new(
    connection_string: opts[:connection_string],
    selected_queries: opts[:selected_queries]
  )
end

Public Instance Methods

probe_db() click to toggle source
# File lib/gitlab_monitor/database/row_count.rb, line 147
def probe_db
  results = @collector.run
  results.each do |key, value|
    @metrics.add("gitlab_database_rows", value.to_i, query_name: key.to_s)
  end

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