summaryrefslogtreecommitdiff
path: root/config/initializers
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers')
-rw-r--r--config/initializers/00_active_record_disable_joins.rb11
-rw-r--r--config/initializers/0_acts_as_taggable.rb4
-rw-r--r--config/initializers/1_settings.rb7
-rw-r--r--config/initializers/7_prometheus_metrics.rb2
-rw-r--r--config/initializers/7_redis.rb8
-rw-r--r--config/initializers/action_cable.rb2
-rw-r--r--config/initializers/backtrace_silencers.rb2
-rw-r--r--config/initializers/batch_loader.rb10
-rw-r--r--config/initializers/carrierwave_patch.rb10
-rw-r--r--config/initializers/database_config.rb10
-rw-r--r--config/initializers/gettext_rails_i18n_patch.rb22
-rw-r--r--config/initializers/grape_validators.rb1
-rw-r--r--config/initializers/load_balancing.rb43
-rw-r--r--config/initializers/mailer_retries.rb40
-rw-r--r--config/initializers/postgres_partitioning.rb3
-rw-r--r--config/initializers/postgresql_cte.rb2
-rw-r--r--config/initializers/sidekiq.rb12
-rw-r--r--config/initializers/zz_metrics.rb130
18 files changed, 80 insertions, 239 deletions
diff --git a/config/initializers/00_active_record_disable_joins.rb b/config/initializers/00_active_record_disable_joins.rb
new file mode 100644
index 00000000000..6348fd7c53b
--- /dev/null
+++ b/config/initializers/00_active_record_disable_joins.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module ActiveRecordRelationAllowCrossJoins
+ def allow_cross_joins_across_databases(url:)
+ # this method is implemented in:
+ # spec/support/database/prevent_cross_joins.rb
+ self
+ end
+end
+
+ActiveRecord::Relation.prepend(ActiveRecordRelationAllowCrossJoins)
diff --git a/config/initializers/0_acts_as_taggable.rb b/config/initializers/0_acts_as_taggable.rb
index 04619590e3c..8dee3c52a53 100644
--- a/config/initializers/0_acts_as_taggable.rb
+++ b/config/initializers/0_acts_as_taggable.rb
@@ -11,8 +11,8 @@ raise "Counter cache is not disabled" if
ActsAsTaggableOn::Tagging.reflections["tag"].options[:counter_cache]
ActsAsTaggableOn::Tagging.include IgnorableColumns
-ActsAsTaggableOn::Tagging.ignore_column :id_convert_to_bigint, remove_with: '14.2', remove_after: '2021-08-22'
-ActsAsTaggableOn::Tagging.ignore_column :taggable_id_convert_to_bigint, remove_with: '14.2', remove_after: '2021-08-22'
+ActsAsTaggableOn::Tagging.ignore_column :id_convert_to_bigint, remove_with: '14.5', remove_after: '2021-10-22'
+ActsAsTaggableOn::Tagging.ignore_column :taggable_id_convert_to_bigint, remove_with: '14.5', remove_after: '2021-10-22'
# The tags and taggings are supposed to be part of `gitlab_ci`
ActsAsTaggableOn::Tag.gitlab_schema = :gitlab_ci
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 1c22216d442..0e4e6f5cc84 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -466,9 +466,6 @@ Settings.cron_jobs['personal_access_tokens_expired_notification_worker']['job_cl
Settings.cron_jobs['repository_archive_cache_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['repository_archive_cache_worker']['cron'] ||= '0 * * * *'
Settings.cron_jobs['repository_archive_cache_worker']['job_class'] = 'RepositoryArchiveCacheWorker'
-Settings.cron_jobs['packages_composer_cache_cleanup_worker'] ||= Settingslogic.new({})
-Settings.cron_jobs['packages_composer_cache_cleanup_worker']['cron'] ||= '30 * * * *'
-Settings.cron_jobs['packages_composer_cache_cleanup_worker']['job_class'] = 'Packages::Composer::CacheCleanupWorker'
Settings.cron_jobs['import_export_project_cleanup_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['import_export_project_cleanup_worker']['cron'] ||= '0 * * * *'
Settings.cron_jobs['import_export_project_cleanup_worker']['job_class'] = 'ImportExportProjectCleanupWorker'
@@ -535,6 +532,9 @@ Settings.cron_jobs['namespaces_prune_aggregation_schedules_worker']['job_class']
Settings.cron_jobs['container_expiration_policy_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['container_expiration_policy_worker']['cron'] ||= '50 * * * *'
Settings.cron_jobs['container_expiration_policy_worker']['job_class'] = 'ContainerExpirationPolicyWorker'
+Settings.cron_jobs['image_ttl_group_policy_worker'] ||= Settingslogic.new({})
+Settings.cron_jobs['image_ttl_group_policy_worker']['cron'] ||= '40 0 * * *'
+Settings.cron_jobs['image_ttl_group_policy_worker']['job_class'] = 'DependencyProxy::ImageTtlGroupPolicyWorker'
Settings.cron_jobs['x509_issuer_crl_check_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['x509_issuer_crl_check_worker']['cron'] ||= '30 1 * * *'
Settings.cron_jobs['x509_issuer_crl_check_worker']['job_class'] = 'X509IssuerCrlCheckWorker'
@@ -757,6 +757,7 @@ Settings.gitlab_kas['enabled'] ||= false
Settings.gitlab_kas['secret_file'] ||= Rails.root.join('.gitlab_kas_secret')
Settings.gitlab_kas['external_url'] ||= 'wss://kas.example.com'
Settings.gitlab_kas['internal_url'] ||= 'grpc://localhost:8153'
+# Settings.gitlab_kas['external_k8s_proxy_url'] ||= 'grpc://localhost:8154' # NOTE: Do not set a default until all distributions have been updated with a correct value
#
# Repositories
diff --git a/config/initializers/7_prometheus_metrics.rb b/config/initializers/7_prometheus_metrics.rb
index d2d546a5438..587d393fd77 100644
--- a/config/initializers/7_prometheus_metrics.rb
+++ b/config/initializers/7_prometheus_metrics.rb
@@ -48,7 +48,7 @@ if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled?
Gitlab::Metrics.gauge(:deployments, 'GitLab Version', {}, :max).set({ version: Gitlab::VERSION, revision: Gitlab.revision }, 1)
- unless Gitlab::Runtime.sidekiq?
+ if Gitlab::Runtime.web_server?
Gitlab::Metrics::RequestsRackMiddleware.initialize_metrics
end
diff --git a/config/initializers/7_redis.rb b/config/initializers/7_redis.rb
index 84aa231089b..50f0fb92317 100644
--- a/config/initializers/7_redis.rb
+++ b/config/initializers/7_redis.rb
@@ -1,5 +1,11 @@
# frozen_string_literal: true
+# We set the instance variable directly to suppress warnings.
+# We cannot switch to the new behavior until we change all existing `redis.exists` calls to `redis.exists?`.
+# Some gems also need to be updated
+# https://gitlab.com/gitlab-org/gitlab/-/issues/340602
+Redis.instance_variable_set(:@exists_returns_integer, false)
+
Redis::Client.prepend(Gitlab::Instrumentation::RedisInterceptor)
# Make sure we initialize a Redis connection pool before multi-threaded
@@ -11,3 +17,5 @@ Gitlab::Redis::Cache.with { nil }
Gitlab::Redis::Queues.with { nil }
Gitlab::Redis::SharedState.with { nil }
Gitlab::Redis::TraceChunks.with { nil }
+Gitlab::Redis::RateLimiting.with { nil }
+Gitlab::Redis::Sessions.with { nil }
diff --git a/config/initializers/action_cable.rb b/config/initializers/action_cable.rb
index 16d29f5910f..a7ef5cc332c 100644
--- a/config/initializers/action_cable.rb
+++ b/config/initializers/action_cable.rb
@@ -19,4 +19,4 @@ ActionCable::SubscriptionAdapter::Redis.redis_connector = lambda do |config|
end
Gitlab::ActionCable::RequestStoreCallbacks.install
-Gitlab::Database::LoadBalancing::ActionCableCallbacks.install if Gitlab::Database::LoadBalancing.enable?
+Gitlab::Database::LoadBalancing::ActionCableCallbacks.install
diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb
index f3e01d23448..4fd41bd4c75 100644
--- a/config/initializers/backtrace_silencers.rb
+++ b/config/initializers/backtrace_silencers.rb
@@ -4,7 +4,7 @@ Rails.backtrace_cleaner.remove_silencers!
# This allows us to see the proper caller of SQL calls in {development,test}.log
if (Rails.env.development? || Rails.env.test?) && Gitlab.ee?
- Rails.backtrace_cleaner.add_silencer { |line| %r(^ee/lib/gitlab/database/load_balancing).match?(line) }
+ Rails.backtrace_cleaner.add_silencer { |line| %r(^lib/gitlab/database/load_balancing).match?(line) }
end
Rails.backtrace_cleaner.add_silencer { |line| !Gitlab::APP_DIRS_PATTERN.match?(line) }
diff --git a/config/initializers/batch_loader.rb b/config/initializers/batch_loader.rb
index d88b43fbcea..e542a26cb81 100644
--- a/config/initializers/batch_loader.rb
+++ b/config/initializers/batch_loader.rb
@@ -1,3 +1,13 @@
# frozen_string_literal: true
Rails.application.config.middleware.use(BatchLoader::Middleware)
+
+# Disables replace_methods by default.
+# See https://github.com/exAspArk/batch-loader#replacing-methods for more information.
+module BatchLoaderWithoutMethodReplacementByDefault
+ def batch(replace_methods: false, **kw_args, &batch_block)
+ super
+ end
+end
+
+BatchLoader.prepend(BatchLoaderWithoutMethodReplacementByDefault)
diff --git a/config/initializers/carrierwave_patch.rb b/config/initializers/carrierwave_patch.rb
index c8c6f75949c..a9c74478541 100644
--- a/config/initializers/carrierwave_patch.rb
+++ b/config/initializers/carrierwave_patch.rb
@@ -49,14 +49,8 @@ module CarrierWave
local_file = local_directory.files.new(key: path)
expire_at = options[:expire_at] || ::Fog::Time.now + @uploader.fog_authenticated_url_expiration
case @uploader.fog_credentials[:provider]
- when 'AWS', 'Google'
- # Older versions of fog-google do not support options as a parameter
- if url_options_supported?(local_file)
- local_file.url(expire_at, options)
- else
- warn "Options hash not supported in #{local_file.class}. You may need to upgrade your Fog provider."
- local_file.url(expire_at)
- end
+ when 'AWS', 'Google', 'AzureRM'
+ local_file.url(expire_at, options)
when 'Rackspace'
connection.get_object_https_url(@uploader.fog_directory, path, expire_at, options)
when 'OpenStack'
diff --git a/config/initializers/database_config.rb b/config/initializers/database_config.rb
index e9f10abd0b9..7aedf9013ae 100644
--- a/config/initializers/database_config.rb
+++ b/config/initializers/database_config.rb
@@ -1,15 +1,5 @@
# frozen_string_literal: true
-def log_pool_size(db, previous_pool_size, current_pool_size)
- log_message = ["#{db} connection pool size: #{current_pool_size}"]
-
- if previous_pool_size && current_pool_size > previous_pool_size
- log_message << "(increased from #{previous_pool_size} to match thread count)"
- end
-
- Gitlab::AppLogger.debug(log_message.join(' '))
-end
-
Gitlab.ee do
# We need to initialize the Geo database before
# setting the Geo DB connection pool size.
diff --git a/config/initializers/gettext_rails_i18n_patch.rb b/config/initializers/gettext_rails_i18n_patch.rb
index c23049e93c9..3c994516b2d 100644
--- a/config/initializers/gettext_rails_i18n_patch.rb
+++ b/config/initializers/gettext_rails_i18n_patch.rb
@@ -1,30 +1,8 @@
# frozen_string_literal: true
-require 'gettext_i18n_rails/haml_parser'
require 'gettext_i18n_rails_js/parser/javascript'
require 'json'
-VUE_TRANSLATE_REGEX = /((%[\w.-]+)(?:\s))?{{ (N|n|s)?__\((.*)\) }}/.freeze
-
-module GettextI18nRails
- class HamlParser
- singleton_class.send(:alias_method, :old_convert_to_code, :convert_to_code)
-
- # We need to convert text in Mustache format
- # to a format that can be parsed by Gettext scripts.
- # If we found a content like "{{ __('Stage') }}"
- # in a HAML file we convert it to "= _('Stage')", that way
- # it can be processed by the "rake gettext:find" script.
- #
- # Overwrites: https://github.com/grosser/gettext_i18n_rails/blob/8396387a431e0f8ead72fc1cd425cad2fa4992f2/lib/gettext_i18n_rails/haml_parser.rb#L9
- def self.convert_to_code(text)
- text.gsub!(VUE_TRANSLATE_REGEX, "\\2= \\3_(\\4)")
-
- old_convert_to_code(text)
- end
- end
-end
-
module GettextI18nRailsJs
module Parser
module Javascript
diff --git a/config/initializers/grape_validators.rb b/config/initializers/grape_validators.rb
index 07dd70822a2..1492894e1fa 100644
--- a/config/initializers/grape_validators.rb
+++ b/config/initializers/grape_validators.rb
@@ -10,3 +10,4 @@ Grape::Validations.register_validator(:check_assignees_count, ::API::Validations
Grape::Validations.register_validator(:untrusted_regexp, ::API::Validations::Validators::UntrustedRegexp)
Grape::Validations.register_validator(:email_or_email_list, ::API::Validations::Validators::EmailOrEmailList)
Grape::Validations.register_validator(:iteration_id, ::API::Validations::Validators::IntegerOrCustomValue)
+Grape::Validations.register_validator(:project_portable, ::API::Validations::Validators::ProjectPortable)
diff --git a/config/initializers/load_balancing.rb b/config/initializers/load_balancing.rb
index 2b58ae0f642..a31b11bb2be 100644
--- a/config/initializers/load_balancing.rb
+++ b/config/initializers/load_balancing.rb
@@ -1,28 +1,33 @@
# frozen_string_literal: true
-ActiveRecord::Base.singleton_class.attr_accessor :load_balancing_proxy
+Gitlab::Application.configure do |config|
+ config.middleware.use(Gitlab::Database::LoadBalancing::RackMiddleware)
+end
-if Gitlab::Database::LoadBalancing.enable?
- Gitlab::Database.main.disable_prepared_statements
+Gitlab::Database::LoadBalancing.base_models.each do |model|
+ # The load balancer needs to be configured immediately, and re-configured
+ # after forking. This ensures queries that run before forking use the load
+ # balancer, and queries running after a fork don't run into any errors when
+ # using dead database connections.
+ #
+ # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63485 for more
+ # information.
+ Gitlab::Database::LoadBalancing::Setup.new(model).setup
- Gitlab::Application.configure do |config|
- config.middleware.use(Gitlab::Database::LoadBalancing::RackMiddleware)
+ # Database queries may be run before we fork, so we must set up the load
+ # balancer as early as possible. When we do fork, we need to make sure all the
+ # hosts are disconnected.
+ Gitlab::Cluster::LifecycleEvents.on_before_fork do
+ # When forking, we don't want to wait until the connections aren't in use
+ # any more, as this could delay the boot cycle.
+ model.connection.load_balancer.disconnect!(timeout: 0)
end
- # This hijacks the "connection" method to ensure both
- # `ActiveRecord::Base.connection` and all models use the same load
- # balancing proxy.
- ActiveRecord::Base.singleton_class.prepend(Gitlab::Database::LoadBalancing::ActiveRecordProxy)
-
- Gitlab::Database::LoadBalancing.configure_proxy
-
- # This needs to be executed after fork of clustered processes
+ # Service discovery only needs to run in the worker processes, as the main one
+ # won't be running many (if any) database queries.
Gitlab::Cluster::LifecycleEvents.on_worker_start do
- # For Host-based LB, we need to re-connect as Rails discards connections on fork
- Gitlab::Database::LoadBalancing.configure_proxy
-
- # Service discovery must be started after configuring the proxy, as service
- # discovery depends on this.
- Gitlab::Database::LoadBalancing.start_service_discovery
+ Gitlab::Database::LoadBalancing::Setup
+ .new(model, start_service_discovery: true)
+ .setup
end
end
diff --git a/config/initializers/mailer_retries.rb b/config/initializers/mailer_retries.rb
index 64fb0ffaa55..5980513af92 100644
--- a/config/initializers/mailer_retries.rb
+++ b/config/initializers/mailer_retries.rb
@@ -1,41 +1,5 @@
# frozen_string_literal: true
-class ActiveJob::QueueAdapters::SidekiqAdapter
- # With Sidekiq 6, we can do something like:
- # class ActionMailer::MailDeliveryJob
- # sidekiq_options retry: 3
- # end
- #
- # See https://gitlab.com/gitlab-org/gitlab/-/issues/329430
- raise "Update this monkey patch: #{__FILE__}" unless Sidekiq::VERSION == '5.2.9'
-
- def enqueue(job) #:nodoc:
- # Sidekiq::Client does not support symbols as keys
- job.provider_job_id = Sidekiq::Client.push \
- "class" => JobWrapper,
- "wrapped" => job.class.to_s,
- "queue" => job.queue_name,
- "args" => [job.serialize],
- "retry" => retry_for(job)
- end
-
- def enqueue_at(job, timestamp) #:nodoc:
- job.provider_job_id = Sidekiq::Client.push \
- "class" => JobWrapper,
- "wrapped" => job.class.to_s,
- "queue" => job.queue_name,
- "args" => [job.serialize],
- "at" => timestamp,
- "retry" => retry_for(job)
- end
-
- private
-
- def retry_for(job)
- if job.queue_name == 'mailers'
- 3
- else
- true
- end
- end
+Rails.application.config.after_initialize do
+ ActionMailer::MailDeliveryJob.sidekiq_options retry: 3
end
diff --git a/config/initializers/postgres_partitioning.rb b/config/initializers/postgres_partitioning.rb
index f2e2fba1559..49f382547d6 100644
--- a/config/initializers/postgres_partitioning.rb
+++ b/config/initializers/postgres_partitioning.rb
@@ -2,8 +2,7 @@
Gitlab::Database::Partitioning.register_models([
AuditEvent,
- WebHookLog,
- LooseForeignKeys::DeletedRecord
+ WebHookLog
])
if Gitlab.ee?
diff --git a/config/initializers/postgresql_cte.rb b/config/initializers/postgresql_cte.rb
index 6a9af7b4868..7d00776e460 100644
--- a/config/initializers/postgresql_cte.rb
+++ b/config/initializers/postgresql_cte.rb
@@ -96,7 +96,7 @@ module ActiveRecord
end
end
- def build_arel(aliases)
+ def build_arel(aliases = nil)
arel = super
build_with(arel) if @values[:with]
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 19c5e4df854..d33550b82d1 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -27,8 +27,14 @@ use_sidekiq_daemon_memory_killer = ENV.fetch("SIDEKIQ_DAEMON_MEMORY_KILLER", 1).
use_sidekiq_legacy_memory_killer = !use_sidekiq_daemon_memory_killer
Sidekiq.configure_server do |config|
+ config.options[:strict] = false
+ config.options[:queues] = Gitlab::SidekiqConfig.expand_queues(config.options[:queues])
+ config.options[:scheduled_enq] = Gitlab::SidekiqEnq
+
+ Sidekiq.logger.info "Listening on queues #{config.options[:queues].uniq.sort}"
+
if enable_json_logs
- Sidekiq.logger.formatter = Gitlab::SidekiqLogging::JSONFormatter.new
+ config.log_formatter = Gitlab::SidekiqLogging::JSONFormatter.new
config.options[:job_logger] = Gitlab::SidekiqLogging::StructuredLogger
# Remove the default-provided handler. The exception is logged inside
@@ -38,11 +44,11 @@ Sidekiq.configure_server do |config|
config.redis = queues_config_hash
- config.server_middleware(&Gitlab::SidekiqMiddleware.server_configurator({
+ config.server_middleware(&Gitlab::SidekiqMiddleware.server_configurator(
metrics: Settings.monitoring.sidekiq_exporter,
arguments_logger: SidekiqLogArguments.enabled? && !enable_json_logs,
memory_killer: enable_sidekiq_memory_killer && use_sidekiq_legacy_memory_killer
- }))
+ ))
config.client_middleware(&Gitlab::SidekiqMiddleware.client_configurator)
diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb
index 25e4ec0d483..8e69e1634f1 100644
--- a/config/initializers/zz_metrics.rb
+++ b/config/initializers/zz_metrics.rb
@@ -3,128 +3,6 @@
# This file was prefixed with zz_ because we want to load it the last!
# See: https://gitlab.com/gitlab-org/gitlab-foss/issues/55611
-# Autoload all classes that we want to instrument, and instrument the methods we
-# need. This takes the Gitlab::Metrics::Instrumentation module as an argument so
-# that we can stub it for testing, as it is only called when metrics are
-# enabled.
-#
-# rubocop:disable Metrics/AbcSize
-def instrument_classes(instrumentation)
- return if ENV['STATIC_VERIFICATION']
-
- instrumentation.instrument_instance_methods(Gitlab::Shell)
-
- instrumentation.instrument_methods(Gitlab::Git)
-
- Gitlab::Git.constants.each do |name|
- const = Gitlab::Git.const_get(name, false)
-
- next unless const.is_a?(Module)
-
- instrumentation.instrument_methods(const)
- instrumentation.instrument_instance_methods(const)
- end
-
- # Path to search => prefix to strip from constant
- paths_to_instrument = {
- %w(app finders) => %w(app finders),
- %w(app mailers emails) => %w(app mailers),
- # Don't instrument `app/services/concerns`
- # It contains modules that are included in the services.
- # The services themselves are instrumented so the methods from the modules
- # are included.
- %w(app services [^concerns]**) => %w(app services),
- %w(lib gitlab conflicts) => ['lib'],
- %w(lib gitlab email message) => ['lib'],
- %w(lib gitlab checks) => ['lib']
- }
-
- paths_to_instrument.each do |(path, prefix)|
- prefix = Rails.root.join(*prefix)
-
- Dir[Rails.root.join(*path + ['*.rb'])].each do |file_path|
- path = Pathname.new(file_path).relative_path_from(prefix)
- const = path.to_s.sub('.rb', '').camelize.constantize
-
- instrumentation.instrument_methods(const)
- instrumentation.instrument_instance_methods(const)
- end
- end
-
- instrumentation.instrument_methods(Premailer::Adapter::Nokogiri)
- instrumentation.instrument_instance_methods(Premailer::Adapter::Nokogiri)
-
- instrumentation.instrument_methods(Banzai::Renderer)
- instrumentation.instrument_methods(Banzai::Querying)
-
- instrumentation.instrument_instance_methods(Banzai::ObjectRenderer)
- instrumentation.instrument_instance_methods(Banzai::ReferenceRedactor)
-
- [Issuable, Mentionable, Participable].each do |klass|
- instrumentation.instrument_instance_methods(klass)
- instrumentation.instrument_instance_methods(klass::ClassMethods)
- end
-
- instrumentation.instrument_methods(Gitlab::ReferenceExtractor)
- instrumentation.instrument_instance_methods(Gitlab::ReferenceExtractor)
-
- # Instrument the classes used for checking if somebody has push access.
- instrumentation.instrument_instance_methods(Gitlab::GitAccess)
- instrumentation.instrument_instance_methods(Gitlab::GitAccessWiki)
-
- instrumentation.instrument_instance_methods(API::Helpers)
-
- instrumentation.instrument_instance_methods(RepositoryCheck::SingleRepositoryWorker)
-
- instrumentation.instrument_instance_methods(Rouge::Formatters::HTMLGitlab)
-
- [:XML, :HTML].each do |namespace|
- namespace_mod = Nokogiri.const_get(namespace, false)
-
- instrumentation.instrument_methods(namespace_mod)
- instrumentation.instrument_methods(namespace_mod::Document)
- end
-
- instrumentation.instrument_methods(Rinku)
- instrumentation.instrument_instance_methods(Repository)
-
- instrumentation.instrument_methods(Gitlab::Highlight)
- instrumentation.instrument_instance_methods(Gitlab::Highlight)
- instrumentation.instrument_instance_method(Gitlab::Ci::Config::Yaml::Tags::Resolver, :to_hash)
-
- Gitlab.ee do
- instrumentation.instrument_instance_methods(Elastic::Latest::GitInstanceProxy)
- instrumentation.instrument_instance_methods(Elastic::Latest::GitClassProxy)
-
- instrumentation.instrument_instance_methods(Search::GlobalService)
- instrumentation.instrument_instance_methods(Search::ProjectService)
-
- instrumentation.instrument_instance_methods(Gitlab::Elastic::SearchResults)
- instrumentation.instrument_instance_methods(Gitlab::Elastic::ProjectSearchResults)
- instrumentation.instrument_instance_methods(Gitlab::Elastic::Indexer)
- instrumentation.instrument_instance_methods(Gitlab::Elastic::SnippetSearchResults)
- instrumentation.instrument_instance_methods(Gitlab::Elastic::Helper)
-
- instrumentation.instrument_instance_methods(Elastic::ApplicationVersionedSearch)
- instrumentation.instrument_instance_methods(Elastic::ProjectsSearch)
- instrumentation.instrument_instance_methods(Elastic::RepositoriesSearch)
- instrumentation.instrument_instance_methods(Elastic::SnippetsSearch)
- instrumentation.instrument_instance_methods(Elastic::WikiRepositoriesSearch)
-
- instrumentation.instrument_instance_methods(Gitlab::BitbucketImport::Importer)
- instrumentation.instrument_instance_methods(Bitbucket::Connection)
-
- instrumentation.instrument_instance_methods(Geo::RepositorySyncWorker)
- end
-
- # This is a Rails scope so we have to instrument it manually.
- instrumentation.instrument_method(Project, :visible_to_user)
-
- # Needed for https://gitlab.com/gitlab-org/gitlab-foss/issues/30224#note_32306159
- instrumentation.instrument_instance_method(MergeRequestDiff, :load_commits)
-end
-# rubocop:enable Metrics/AbcSize
-
# With prometheus enabled by default this breaks all specs
# that stubs methods using `any_instance_of` for the models reloaded here.
#
@@ -151,12 +29,8 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d
Gitlab::Application.configure do |config|
# We want to track certain metrics during the Load Balancing host resolving process.
# Because of that, we need to have metrics code available earlier for Load Balancing.
- if Gitlab::Database::LoadBalancing.enable?
- config.middleware.insert_before Gitlab::Database::LoadBalancing::RackMiddleware,
- Gitlab::Metrics::RackMiddleware
- else
- config.middleware.use(Gitlab::Metrics::RackMiddleware)
- end
+ config.middleware.insert_before Gitlab::Database::LoadBalancing::RackMiddleware,
+ Gitlab::Metrics::RackMiddleware
config.middleware.use(Gitlab::Middleware::RailsQueueDuration)
config.middleware.use(Gitlab::Metrics::ElasticsearchRackMiddleware)