Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-10-04 09:06:05 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-04 09:06:05 +0300
commit535d167d40638105527bc6c9a86f33d2ffd62743 (patch)
tree27c73f33497378f6bb84840223ce7d3fda42cc0a /lib
parentbee11af56deccfd13243cf5f31d42bd992404066 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/cluster/lifecycle_events.rb7
-rw-r--r--lib/gitlab/metrics/exporter/base_exporter.rb56
-rw-r--r--lib/gitlab/metrics/exporter/sidekiq_exporter.rb20
-rw-r--r--lib/gitlab/metrics/exporter/web_exporter.rb20
-rw-r--r--lib/gitlab/metrics/sidekiq_metrics_exporter.rb49
5 files changed, 101 insertions, 51 deletions
diff --git a/lib/gitlab/cluster/lifecycle_events.rb b/lib/gitlab/cluster/lifecycle_events.rb
index 8f796748199..3fbbccbf56e 100644
--- a/lib/gitlab/cluster/lifecycle_events.rb
+++ b/lib/gitlab/cluster/lifecycle_events.rb
@@ -40,7 +40,7 @@ module Gitlab
(@before_fork_hooks ||= []) << block
end
- def on_master_restart(&block)
+ def on_before_master_restart(&block)
return unless in_clustered_environment?
# Defer block execution
@@ -70,12 +70,15 @@ module Gitlab
end
end
- def do_master_restart
+ def do_before_master_restart
@master_restart_hooks && @master_restart_hooks.each do |block|
block.call
end
end
+ # DEPRECATED
+ alias_method :do_master_restart, :do_before_master_restart
+
# Puma doesn't use singletons (which is good) but
# this means we need to pass through whether the
# puma server is running in single mode or cluster mode
diff --git a/lib/gitlab/metrics/exporter/base_exporter.rb b/lib/gitlab/metrics/exporter/base_exporter.rb
new file mode 100644
index 00000000000..108d1330b47
--- /dev/null
+++ b/lib/gitlab/metrics/exporter/base_exporter.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Metrics
+ module Exporter
+ class BaseExporter < Daemon
+ attr_reader :server
+
+ def enabled?
+ settings.enabled
+ end
+
+ def settings
+ raise NotImplementedError
+ end
+
+ def log_filename
+ raise NotImplementedError
+ end
+
+ private
+
+ def start_working
+ logger = WEBrick::Log.new(log_filename)
+ logger.time_format = "[%Y-%m-%dT%H:%M:%S.%L%z]"
+
+ access_log = [
+ [logger, WEBrick::AccessLog::COMBINED_LOG_FORMAT]
+ ]
+
+ @server = ::WEBrick::HTTPServer.new(
+ Port: settings.port, BindAddress: settings.address,
+ Logger: logger, AccessLog: access_log)
+ server.mount "/", Rack::Handler::WEBrick, rack_app
+ server.start
+ end
+
+ def stop_working
+ if server # rubocop:disable Cop/LineBreakAroundConditionalBlock
+ server.shutdown
+ server.listeners.each(&:close)
+ end
+ @server = nil
+ end
+
+ def rack_app
+ Rack::Builder.app do
+ use Rack::Deflater
+ use ::Prometheus::Client::Rack::Exporter if ::Gitlab::Metrics.metrics_folder_present?
+ run -> (env) { [404, {}, ['']] }
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/metrics/exporter/sidekiq_exporter.rb b/lib/gitlab/metrics/exporter/sidekiq_exporter.rb
new file mode 100644
index 00000000000..4de95edfc18
--- /dev/null
+++ b/lib/gitlab/metrics/exporter/sidekiq_exporter.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'webrick'
+require 'prometheus/client/rack/exporter'
+
+module Gitlab
+ module Metrics
+ module Exporter
+ class SidekiqExporter < BaseExporter
+ def settings
+ Settings.monitoring.sidekiq_exporter
+ end
+
+ def log_filename
+ File.join(Rails.root, 'log', 'sidekiq_exporter.log')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/metrics/exporter/web_exporter.rb b/lib/gitlab/metrics/exporter/web_exporter.rb
new file mode 100644
index 00000000000..fac7043352a
--- /dev/null
+++ b/lib/gitlab/metrics/exporter/web_exporter.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'webrick'
+require 'prometheus/client/rack/exporter'
+
+module Gitlab
+ module Metrics
+ module Exporter
+ class WebExporter < BaseExporter
+ def settings
+ Settings.monitoring.web_exporter
+ end
+
+ def log_filename
+ File.join(Rails.root, 'log', 'web_exporter.log')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/metrics/sidekiq_metrics_exporter.rb b/lib/gitlab/metrics/sidekiq_metrics_exporter.rb
deleted file mode 100644
index 71a5406815f..00000000000
--- a/lib/gitlab/metrics/sidekiq_metrics_exporter.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# frozen_string_literal: true
-
-require 'webrick'
-require 'prometheus/client/rack/exporter'
-
-module Gitlab
- module Metrics
- class SidekiqMetricsExporter < Daemon
- LOG_FILENAME = File.join(Rails.root, 'log', 'sidekiq_exporter.log')
-
- def enabled?
- ::Gitlab::Metrics.metrics_folder_present? && settings.enabled
- end
-
- def settings
- Settings.monitoring.sidekiq_exporter
- end
-
- private
-
- attr_reader :server
-
- def start_working
- logger = WEBrick::Log.new(LOG_FILENAME)
- access_log = [
- [logger, WEBrick::AccessLog::COMBINED_LOG_FORMAT]
- ]
-
- @server = ::WEBrick::HTTPServer.new(Port: settings.port, BindAddress: settings.address,
- Logger: logger, AccessLog: access_log)
- server.mount "/", Rack::Handler::WEBrick, rack_app
- server.start
- end
-
- def stop_working
- server.shutdown if server
- @server = nil
- end
-
- def rack_app
- Rack::Builder.app do
- use Rack::Deflater
- use ::Prometheus::Client::Rack::Exporter
- run -> (env) { [404, {}, ['']] }
- end
- end
- end
- end
-end