class GitLab::Monitor::Database::TuplesProber

Probes the DB specified by opts for tuple stats, then converts them to metrics

Public Class Methods

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

Public Instance Methods

probe_db() click to toggle source
# File lib/gitlab_monitor/database/tuple_stats.rb, line 33
def probe_db
  result = @collector.run

  result.each do |table_name, tuple_stats|
    tuple_stats.each do |column_name, value|
      @metrics.add("gitlab_database_stat_table_#{column_name}", value.to_s, table_name: table_name)
    end
  end

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