diff options
Diffstat (limited to 'lib/gitlab/metrics/exporter/base_exporter.rb')
-rw-r--r-- | lib/gitlab/metrics/exporter/base_exporter.rb | 18 |
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 |