gitlab-org--gitlab-foss/lib/gitlab/health_checks/base_abstract_check.rb

43 lines
764 B
Ruby

# frozen_string_literal: true
module Gitlab
module HealthChecks
module BaseAbstractCheck
def name
super.demodulize.underscore
end
def human_name
name.sub(/_check$/, '').capitalize
end
def readiness
raise NotImplementedError
end
def metrics
[]
end
protected
def metric(name, value, **labels)
Metric.new(name, value, labels)
end
def with_timing
start = Time.now
result = yield
[result, Time.now.to_f - start.to_f]
end
def catch_timeout(seconds, &block)
begin
Timeout.timeout(seconds.to_i, &block)
rescue Timeout::Error => ex
ex
end
end
end
end
end