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
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-21 00:06:38 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-21 00:06:38 +0300
commit2477ab5553eabc6c4579cb23aba620ffc8cba228 (patch)
tree72d34d8135c6318130e9697b900507dace9cb035 /lib/gitlab/sidekiq_middleware.rb
parentfdffdcf1abaa2cab903f1d32610eb562cdf53906 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/sidekiq_middleware.rb')
-rw-r--r--lib/gitlab/sidekiq_middleware.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/gitlab/sidekiq_middleware.rb b/lib/gitlab/sidekiq_middleware.rb
new file mode 100644
index 00000000000..c6726dcfa67
--- /dev/null
+++ b/lib/gitlab/sidekiq_middleware.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module Gitlab
+ # The SidekiqMiddleware class is responsible for configuring the
+ # middleware stacks used in the client and server middlewares
+ module SidekiqMiddleware
+ # The result of this method should be passed to
+ # Sidekiq's `config.server_middleware` method
+ # eg: `config.server_middleware(&Gitlab::SidekiqMiddleware.server_configurator)`
+ def self.server_configurator(metrics: true, arguments_logger: true, memory_killer: true, request_store: true)
+ lambda do |chain|
+ chain.add Gitlab::SidekiqMiddleware::Monitor
+ chain.add Gitlab::SidekiqMiddleware::Metrics if metrics
+ chain.add Gitlab::SidekiqMiddleware::ArgumentsLogger if arguments_logger
+ chain.add Gitlab::SidekiqMiddleware::MemoryKiller if memory_killer
+ chain.add Gitlab::SidekiqMiddleware::RequestStoreMiddleware if request_store
+ chain.add Gitlab::SidekiqMiddleware::BatchLoader
+ chain.add Gitlab::SidekiqMiddleware::CorrelationLogger
+ chain.add Gitlab::SidekiqMiddleware::InstrumentationLogger
+ chain.add Gitlab::SidekiqStatus::ServerMiddleware
+ end
+ end
+
+ # The result of this method should be passed to
+ # Sidekiq's `config.client_middleware` method
+ # eg: `config.client_middleware(&Gitlab::SidekiqMiddleware.client_configurator)`
+ def self.client_configurator
+ lambda do |chain|
+ chain.add Gitlab::SidekiqStatus::ClientMiddleware
+ chain.add Gitlab::SidekiqMiddleware::CorrelationInjector
+ end
+ end
+ end
+end