Class: GitLab::Exporter::Database::RemoteMirrorsCollector

Inherits:
Base
  • Object
show all
Defined in:
lib/gitlab_exporter/database/remote_mirrors.rb

Overview

A helper class to collect remote mirrors metrics.

Constant Summary collapse

QUERY =
<<~SQL.freeze
  SELECT project_id, url,
  EXTRACT(EPOCH FROM last_successful_update_at) AS last_successful_update_at,
  EXTRACT(EPOCH FROM last_update_at) AS last_update_at
  FROM remote_mirrors WHERE project_id IN (%s) AND enabled = 't'
SQL

Constants inherited from Base

Base::POOL_SIZE, Base::POOL_TIMEOUT

Instance Method Summary collapse

Methods inherited from Base

configure_type_map_for_results, connection_pool, #connection_pool, #with_connection_pool

Constructor Details

#initialize(**args) ⇒ RemoteMirrorsCollector

Returns a new instance of RemoteMirrorsCollector.



13
14
15
16
17
# File 'lib/gitlab_exporter/database/remote_mirrors.rb', line 13

def initialize(**args)
  super(**args)

  @project_ids = args[:project_ids]
end

Instance Method Details

#runObject



19
20
21
22
23
# File 'lib/gitlab_exporter/database/remote_mirrors.rb', line 19

def run
  return if @project_ids.nil? || @project_ids.empty?

  execute(QUERY % [@project_ids.join(",")]) # rubocop:disable Style/FormatString
end