mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-07-29 12:00:32 +00:00
Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
@ -23,6 +23,7 @@ require_relative '../lib/gitlab/metrics/system'
|
||||
require_relative '../lib/gitlab/metrics/samplers/base_sampler'
|
||||
require_relative '../lib/gitlab/metrics/samplers/ruby_sampler'
|
||||
require_relative '../lib/gitlab/metrics/exporter/base_exporter'
|
||||
require_relative '../lib/gitlab/metrics/exporter/web_exporter'
|
||||
require_relative '../lib/gitlab/metrics/exporter/sidekiq_exporter'
|
||||
require_relative '../lib/gitlab/metrics/exporter/metrics_middleware'
|
||||
require_relative '../lib/gitlab/metrics/exporter/health_checks_middleware'
|
||||
|
@ -7,7 +7,7 @@ require_relative 'dependencies'
|
||||
class MetricsServer # rubocop:disable Gitlab/NamespacedClass
|
||||
class << self
|
||||
def spawn(target, metrics_dir:, wipe_metrics_dir: false, trapped_signals: [])
|
||||
raise "The only valid target is 'sidekiq' currently" unless target == 'sidekiq'
|
||||
raise "Target must be one of [puma,sidekiq]" unless %w(puma sidekiq).include?(target)
|
||||
|
||||
pid = Process.fork
|
||||
|
||||
@ -52,11 +52,18 @@ class MetricsServer # rubocop:disable Gitlab/NamespacedClass
|
||||
# Warming up ensures that these files exist prior to the exporter starting up.
|
||||
Gitlab::Metrics::Samplers::RubySampler.initialize_instance(prefix: name, warmup: true).start
|
||||
|
||||
exporter_class = "Gitlab::Metrics::Exporter::#{@target.camelize}Exporter".constantize
|
||||
settings = Settings.new(Settings.monitoring[name])
|
||||
server = exporter_class.instance(settings, gc_requests: true, synchronous: true)
|
||||
default_opts = { gc_requests: true, synchronous: true }
|
||||
exporter =
|
||||
case @target
|
||||
when 'puma'
|
||||
Gitlab::Metrics::Exporter::WebExporter.instance(**default_opts)
|
||||
else
|
||||
exporter_class = "Gitlab::Metrics::Exporter::#{@target.camelize}Exporter".constantize
|
||||
settings = Settings.new(Settings.monitoring[name])
|
||||
exporter_class.instance(settings, **default_opts)
|
||||
end
|
||||
|
||||
server.start
|
||||
exporter.start
|
||||
end
|
||||
|
||||
def name
|
||||
|
Reference in New Issue
Block a user