class GitLab::Monitor::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(opts, metrics: PrometheusMetrics.new) click to toggle source
# File lib/gitlab_monitor/git.rb, line 65
def initialize(opts, metrics: PrometheusMetrics.new)
  @metrics = metrics
  @labels = opts[:labels] || {}
  @git = Git.new(opts[:source])
end

Public Instance Methods

probe_pull() click to toggle source
# File lib/gitlab_monitor/git.rb, line 71
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_monitor/git.rb, line 76
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_monitor/git.rb, line 81
def write_to(target)
  target.write(@metrics.to_s)
end