2019-02-13 22:33:31 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-08-17 22:00:37 +05:30
|
|
|
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 liveness
|
|
|
|
HealthChecks::Result.new(true)
|
|
|
|
end
|
|
|
|
|
|
|
|
def metrics
|
|
|
|
[]
|
|
|
|
end
|
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
|
|
def metric(name, value, **labels)
|
|
|
|
Metric.new(name, value, labels)
|
|
|
|
end
|
|
|
|
|
2017-09-10 17:25:29 +05:30
|
|
|
def with_timing
|
2017-08-17 22:00:37 +05:30
|
|
|
start = Time.now
|
2017-09-10 17:25:29 +05:30
|
|
|
result = yield
|
|
|
|
[result, Time.now.to_f - start.to_f]
|
2017-08-17 22:00:37 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
def catch_timeout(seconds, &block)
|
|
|
|
begin
|
|
|
|
Timeout.timeout(seconds.to_i, &block)
|
|
|
|
rescue Timeout::Error => ex
|
|
|
|
ex
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|