summaryrefslogtreecommitdiff
path: root/config.ru
diff options
context:
space:
mode:
Diffstat (limited to 'config.ru')
-rw-r--r--config.ru10
1 files changed, 10 insertions, 0 deletions
diff --git a/config.ru b/config.ru
index 6f6fb85d8fa..750c84f7642 100644
--- a/config.ru
+++ b/config.ru
@@ -17,7 +17,17 @@ end
require ::File.expand_path('../config/environment', __FILE__)
+def master_process?
+ Prometheus::PidProvider.worker_id.in? %w(unicorn_master puma_master)
+end
+
warmup do |app|
+ # The following is necessary to ensure stale Prometheus metrics don't accumulate over time.
+ # It needs to be done as early as here to ensure metrics files aren't deleted.
+ # After we hit our app in `warmup`, first metrics and corresponding files already being created,
+ # for example in `lib/gitlab/metrics/requests_rack_middleware.rb`.
+ Prometheus::CleanupMultiprocDirService.new.execute if master_process?
+
client = Rack::MockRequest.new(app)
client.get('/')
end