Class: GitLab::Exporter::Database::CiBuildsProber

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

Overview

The prober which is called when gathering metrics

Instance Method Summary collapse

Constructor Details

#initialize(opts, metrics: PrometheusMetrics.new, logger: nil) ⇒ CiBuildsProber

Returns a new instance of CiBuildsProber.



297
298
299
300
301
302
303
304
# File 'lib/gitlab_exporter/database/ci_builds.rb', line 297

def initialize(opts, metrics: PrometheusMetrics.new, logger: nil)
  @metrics = metrics

  collector_opts = { connection_string: opts[:connection_string],
                     created_builds_counting_disabled: opts[:created_builds_counting_disabled],
                     unarchived_traces_offset_minutes: opts[:unarchived_traces_offset_minutes] }
  @collector = CiBuildsCollector.new(collector_opts, logger: logger)
end

Instance Method Details

#probe_dbObject



306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/gitlab_exporter/database/ci_builds.rb', line 306

def probe_db
  @results = @collector.run

  ci_builds_metrics(@results[:created_builds], "ci_created_builds") if @results[:created_builds]
  ci_builds_metrics(@results[:pending_builds], "ci_pending_builds")
  ci_stale_builds_metrics
  metrics_per_runner
  unarchived_traces_metrics

  self
rescue PG::ConnectionBad
  self
end

#write_to(target) ⇒ Object



320
321
322
# File 'lib/gitlab_exporter/database/ci_builds.rb', line 320

def write_to(target)
  target.write(@metrics.to_s)
end