diff options
Diffstat (limited to 'config/initializers')
-rw-r--r-- | config/initializers/7_prometheus_metrics.rb | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/config/initializers/7_prometheus_metrics.rb b/config/initializers/7_prometheus_metrics.rb index 68f8487d377..54cdefc2a10 100644 --- a/config/initializers/7_prometheus_metrics.rb +++ b/config/initializers/7_prometheus_metrics.rb @@ -43,14 +43,21 @@ if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled? end end -Gitlab::Cluster::LifecycleEvents.on_master_restart do +def cleanup_prometheus_multiproc_dir # The following is necessary to ensure stale Prometheus metrics don't # accumulate over time. It needs to be done in this hook as opposed to # inside an init script to ensure metrics files aren't deleted after new # unicorn workers start after a SIGUSR2 is received. - prometheus_multiproc_dir = ENV['prometheus_multiproc_dir'] - if prometheus_multiproc_dir - old_metrics = Dir[File.join(prometheus_multiproc_dir, '*.db')] + if dir = ::Prometheus::Client.configuration.multiprocess_files_dir + old_metrics = Dir[File.join(dir, '*.db')] FileUtils.rm_rf(old_metrics) end end + +Gitlab::Cluster::LifecycleEvents.on_master_start do + cleanup_prometheus_multiproc_dir +end + +Gitlab::Cluster::LifecycleEvents.on_master_restart do + cleanup_prometheus_multiproc_dir +end |