Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/metrics/exporter/base_exporter.rb')
-rw-r--r--lib/gitlab/metrics/exporter/base_exporter.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/gitlab/metrics/exporter/base_exporter.rb b/lib/gitlab/metrics/exporter/base_exporter.rb
index de7870dfb8c..b56770e224b 100644
--- a/lib/gitlab/metrics/exporter/base_exporter.rb
+++ b/lib/gitlab/metrics/exporter/base_exporter.rb
@@ -31,7 +31,15 @@ module Gitlab
@server = ::WEBrick::HTTPServer.new(
Port: settings.port, BindAddress: settings.address,
Logger: logger, AccessLog: access_log)
- server.mount "/", Rack::Handler::WEBrick, rack_app
+ server.mount_proc '/readiness' do |req, res|
+ render_probe(
+ ::Gitlab::HealthChecks::Probes::Readiness.new, req, res)
+ end
+ server.mount_proc '/liveness' do |req, res|
+ render_probe(
+ ::Gitlab::HealthChecks::Probes::Liveness.new, req, res)
+ end
+ server.mount '/', Rack::Handler::WEBrick, rack_app
server.start
end
@@ -51,6 +59,14 @@ module Gitlab
run -> (env) { [404, {}, ['']] }
end
end
+
+ def render_probe(probe, req, res)
+ result = probe.execute
+
+ res.status = result.http_status
+ res.content_type = 'application/json; charset=utf-8'
+ res.body = result.json.to_json
+ end
end
end
end