summaryrefslogtreecommitdiff
path: root/metrics_server
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-05-09 18:08:30 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-05-09 18:08:30 +0000
commitb031a57ae71b1fc61782b891d2a31852ab87e7f3 (patch)
treed0efe76fa1c5b33a67a66f47151652a1993c85e2 /metrics_server
parentfb19b392e2331e7663c3d65c05aeb81a1db3630d (diff)
downloadgitlab-ce-b031a57ae71b1fc61782b891d2a31852ab87e7f3.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'metrics_server')
-rw-r--r--metrics_server/metrics_server.rb24
1 files changed, 15 insertions, 9 deletions
diff --git a/metrics_server/metrics_server.rb b/metrics_server/metrics_server.rb
index 309334cd899..a5c448b5105 100644
--- a/metrics_server/metrics_server.rb
+++ b/metrics_server/metrics_server.rb
@@ -38,7 +38,8 @@ class MetricsServer # rubocop:disable Gitlab/NamespacedClass
def spawn(target, metrics_dir:, **options)
return spawn_ruby_server(target, metrics_dir: metrics_dir, **options) unless new_metrics_server?
- settings = settings_for(target)
+ name = settings_key(target)
+ settings = ::Settings.monitoring[name]
path = options[:path]&.then { |p| Pathname.new(p) } || Pathname.new('')
cmd = path.join('gitlab-metrics-exporter').to_path
env = {
@@ -48,6 +49,13 @@ class MetricsServer # rubocop:disable Gitlab/NamespacedClass
'GME_SERVER_PORT' => settings['port'].to_s
}
+ if settings['log_enabled']
+ env['GME_LOG_FILE'] = File.join(Rails.root, 'log', "#{name}.log")
+ env['GME_LOG_LEVEL'] = 'info'
+ else
+ env['GME_LOG_LEVEL'] = 'quiet'
+ end
+
Process.spawn(env, cmd, err: $stderr, out: $stdout, pgroup: true).tap do |pid|
Process.detach(pid)
end
@@ -102,14 +110,12 @@ class MetricsServer # rubocop:disable Gitlab/NamespacedClass
raise "Target must be one of [puma,sidekiq]" unless %w(puma sidekiq).include?(target)
end
- def settings_for(target)
- settings_key =
- case target
- when 'puma' then 'web_exporter'
- when 'sidekiq' then 'sidekiq_exporter'
- else ensure_valid_target!(target)
- end
- ::Settings.monitoring[settings_key]
+ def settings_key(target)
+ case target
+ when 'puma' then 'web_exporter'
+ when 'sidekiq' then 'sidekiq_exporter'
+ else ensure_valid_target!(target)
+ end
end
end