diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-03-14 19:45:29 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-03-14 19:45:29 +0000 |
commit | b9fe665d2539f53fb86771383e18f9045db52414 (patch) | |
tree | 7e55fcd9b4dc27f3cb13651ce1c03146c592e483 /config | |
parent | dd22031c62b54a03909b7be829f85032e556a031 (diff) | |
download | gitlab-ce-b9fe665d2539f53fb86771383e18f9045db52414.tar.gz |
Add latest changes from gitlab-org/gitlab@14-8-stable-ee
Diffstat (limited to 'config')
-rw-r--r-- | config/initializers/7_prometheus_metrics.rb | 26 | ||||
-rw-r--r-- | config/initializers/zz_metrics.rb | 4 |
2 files changed, 22 insertions, 8 deletions
diff --git a/config/initializers/7_prometheus_metrics.rb b/config/initializers/7_prometheus_metrics.rb index 17ce2a30d66..c55b074f9c8 100644 --- a/config/initializers/7_prometheus_metrics.rb +++ b/config/initializers/7_prometheus_metrics.rb @@ -13,6 +13,24 @@ def prometheus_default_multiproc_dir end end +def puma_metrics_server_process? + Prometheus::PidProvider.worker_id == 'puma_master' +end + +def sidekiq_metrics_server_process? + Gitlab::Runtime.sidekiq? && (!ENV['SIDEKIQ_WORKER_ID'] || ENV['SIDEKIQ_WORKER_ID'] == '0') +end + +if puma_metrics_server_process? || sidekiq_metrics_server_process? + # 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 + + ::Prometheus::Client.reinitialize_on_pid_change(force: true) +end + ::Prometheus::Client.configure do |config| config.logger = Gitlab::AppLogger @@ -47,21 +65,13 @@ if Gitlab::Runtime.sidekiq? && (!ENV['SIDEKIQ_WORKER_ID'] || ENV['SIDEKIQ_WORKER end if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled? - # When running Puma in a Single mode, `on_master_start` and `on_worker_start` are the same. - # Thus, we order these events to run `reinitialize_on_pid_change` with `force: true` first. Gitlab::Cluster::LifecycleEvents.on_master_start do - ::Prometheus::Client.reinitialize_on_pid_change(force: true) - if Gitlab::Runtime.puma? Gitlab::Metrics::Samplers::PumaSampler.instance.start end Gitlab::Metrics.gauge(:deployments, 'GitLab Version', {}, :max).set({ version: Gitlab::VERSION, revision: Gitlab.revision }, 1) - if Gitlab::Runtime.web_server? - Gitlab::Metrics::RequestsRackMiddleware.initialize_metrics - end - Gitlab::Ci::Parsers.instrument! rescue IOError => e Gitlab::ErrorTracking.track_exception(e) diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb index 7fa71225aae..88469d2cdef 100644 --- a/config/initializers/zz_metrics.rb +++ b/config/initializers/zz_metrics.rb @@ -36,6 +36,10 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d config.middleware.use(Gitlab::Metrics::ElasticsearchRackMiddleware) end + if Gitlab::Runtime.puma? + Gitlab::Metrics::RequestsRackMiddleware.initialize_metrics + end + GC::Profiler.enable module TrackNewRedisConnections |