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