summaryrefslogtreecommitdiff
path: root/config.ru
diff options
context:
space:
mode:
Diffstat (limited to 'config.ru')
-rw-r--r--config.ru15
1 files changed, 15 insertions, 0 deletions
diff --git a/config.ru b/config.ru
index 6f6fb85d8fa..d3c6e304998 100644
--- a/config.ru
+++ b/config.ru
@@ -17,7 +17,22 @@ end
require ::File.expand_path('../config/environment', __FILE__)
+
+# 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`.
+def cleanup_prometheus_multiproc_dir
+ if dir = ::Prometheus::Client.configuration.multiprocess_files_dir
+ old_metrics = Dir[File.join(dir, '*.db')]
+
+ FileUtils.rm_rf(old_metrics)
+ end
+end
+
warmup do |app|
+ cleanup_prometheus_multiproc_dir
+
client = Rack::MockRequest.new(app)
client.get('/')
end