class GitLab::Exporter::GitProber

Handles creating a Git object, probing for both pull and push, and finally writing to metrics

Optionally takes a metrics object which by default is a PrometheusMetrics, useful to change the metrics writer to something else.

Public Class Methods

new(source:, metrics: PrometheusMetrics.new, labels: {}, **opts) click to toggle source
# File lib/gitlab_exporter/git.rb, line 67
def initialize(source:, metrics: PrometheusMetrics.new, labels: {}, **opts) # rubocop:disable Lint/UnusedMethodArgument
  @metrics = metrics
  @labels = labels
  @git = Git.new(source)
end

Public Instance Methods

probe_pull() click to toggle source
# File lib/gitlab_exporter/git.rb, line 73
def probe_pull
  @metrics.add "git_pull_time_milliseconds", (@git.pull.time * 1000).to_i, **@labels
  self
end
probe_push() click to toggle source
# File lib/gitlab_exporter/git.rb, line 78
def probe_push
  @metrics.add "git_push_time_milliseconds", (@git.push.time * 1000).to_i, **@labels
  self
end
write_to(target) click to toggle source
# File lib/gitlab_exporter/git.rb, line 83
def write_to(target)
  target.write(@metrics.to_s)
end