class GitLab::Monitor::Database::RemoteMirrorsProber

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/remote_mirrors.rb, line 38
def initialize(opts, metrics: PrometheusMetrics.new)
  @metrics = metrics
  @collector = RemoteMirrorsCollector.new(
    connection_string: opts[:connection_string],
    project_ids: opts[:project_ids]
  )
end

Public Instance Methods

probe_db() click to toggle source
# File lib/gitlab_monitor/database/remote_mirrors.rb, line 46
def probe_db # rubocop:disable Metrics/MethodLength
  results = @collector.run
  results.to_a.each do |row|
    @metrics.add(
      "project_remote_mirror_last_successful_update_time_seconds",
      row["last_successful_update_at"].to_i,
      project_id: row["project_id"],
      url: row["url"]
    )
    @metrics.add(
      "project_remote_mirror_last_update_time_seconds",
      row["last_update_at"].to_i,
      project_id: row["project_id"],
      url: row["url"]
    )
  end

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