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