Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
5118ca34
Commit
5118ca34
authored
Aug 13, 2021
by
Heinrich Lee Yu
Committed by
Alex Kalderimis
Aug 13, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Enable Zeitwerk autoloader
Switches from Rails classic autoloader to Zeitwerk
parent
ad862f26
Changes
28
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
107 additions
and
79 deletions
+107
-79
.rubocop_manual_todo.yml
.rubocop_manual_todo.yml
+0
-1
config/application.rb
config/application.rb
+5
-1
config/initializers/2_gitlab.rb
config/initializers/2_gitlab.rb
+0
-3
config/initializers_before_autoloader/004_zeitwerk.rb
config/initializers_before_autoloader/004_zeitwerk.rb
+2
-6
config/routes/project.rb
config/routes/project.rb
+1
-1
config/settings.rb
config/settings.rb
+0
-6
ee/lib/ee/gitlab/metrics/samplers/database_sampler.rb
ee/lib/ee/gitlab/metrics/samplers/database_sampler.rb
+2
-2
ee/lib/generators/geo_migration/geo_migration_generator.rb
ee/lib/generators/geo_migration/geo_migration_generator.rb
+17
-0
generator_templates/post_deployment_migration/post_deployment_migration/migration.rb
...ployment_migration/post_deployment_migration/migration.rb
+0
-0
lib/gem_extensions/active_record/delegate_cache.rb
lib/gem_extensions/active_record/delegate_cache.rb
+1
-1
lib/generators/gitlab/usage_metric_generator.rb
lib/generators/gitlab/usage_metric_generator.rb
+1
-1
lib/generators/post_deployment_migration/post_deployment_migration_generator.rb
...ployment_migration/post_deployment_migration_generator.rb
+1
-1
lib/gitlab/database/load_balancing/host.rb
lib/gitlab/database/load_balancing/host.rb
+7
-7
lib/gitlab/database/load_balancing/rack_middleware.rb
lib/gitlab/database/load_balancing/rack_middleware.rb
+6
-6
lib/gitlab/import_export/project/object_builder.rb
lib/gitlab/import_export/project/object_builder.rb
+1
-1
lib/gitlab/metrics/requests_rack_middleware.rb
lib/gitlab/metrics/requests_rack_middleware.rb
+7
-7
lib/gitlab/metrics/samplers/base_sampler.rb
lib/gitlab/metrics/samplers/base_sampler.rb
+1
-1
lib/gitlab/metrics/subscribers/action_view.rb
lib/gitlab/metrics/subscribers/action_view.rb
+1
-1
lib/gitlab/metrics/subscribers/rails_cache.rb
lib/gitlab/metrics/subscribers/rails_cache.rb
+1
-1
lib/gitlab/query_limiting/active_support_subscriber.rb
lib/gitlab/query_limiting/active_support_subscriber.rb
+3
-3
lib/gitlab/query_limiting/middleware.rb
lib/gitlab/query_limiting/middleware.rb
+1
-1
lib/gitlab/usage/metrics/aggregates.rb
lib/gitlab/usage/metrics/aggregates.rb
+26
-0
lib/gitlab/usage/metrics/aggregates/aggregate.rb
lib/gitlab/usage/metrics/aggregates/aggregate.rb
+0
-17
lib/gitlab/usage/metrics/aggregates/sources.rb
lib/gitlab/usage/metrics/aggregates/sources.rb
+13
-0
lib/gitlab/usage/metrics/aggregates/sources/redis_hll.rb
lib/gitlab/usage/metrics/aggregates/sources/redis_hll.rb
+0
-2
spec/fast_spec_helper.rb
spec/fast_spec_helper.rb
+5
-3
spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb
...ib/gitlab/database/load_balancing/rack_middleware_spec.rb
+4
-5
spec/services/service_response_spec.rb
spec/services/service_response_spec.rb
+1
-1
No files found.
.rubocop_manual_todo.yml
View file @
5118ca34
...
@@ -2305,7 +2305,6 @@ Gitlab/NamespacedClass:
...
@@ -2305,7 +2305,6 @@ Gitlab/NamespacedClass:
-
'
ee/app/workers/sync_security_reports_to_report_approval_rules_worker.rb'
-
'
ee/app/workers/sync_security_reports_to_report_approval_rules_worker.rb'
-
'
ee/app/workers/update_all_mirrors_worker.rb'
-
'
ee/app/workers/update_all_mirrors_worker.rb'
-
'
ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
-
'
ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
-
'
ee/lib/generators/rails/geo_migration_generator.rb'
-
'
ee/lib/gitlab/path_locks_finder.rb'
-
'
ee/lib/gitlab/path_locks_finder.rb'
-
'
ee/spec/support/elastic_query_name_inspector.rb'
-
'
ee/spec/support/elastic_query_name_inspector.rb'
-
'
ee/spec/support/ssh_keygen.rb'
-
'
ee/spec/support/ssh_keygen.rb'
...
...
config/application.rb
View file @
5118ca34
...
@@ -32,7 +32,7 @@ module Gitlab
...
@@ -32,7 +32,7 @@ module Gitlab
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/middleware/rack_multipart_tempfile_factory'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/middleware/rack_multipart_tempfile_factory'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/runtime'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/runtime'
)
config
.
autoloader
=
:
classic
config
.
autoloader
=
:
zeitwerk
# Settings in config/environments/* take precedence over those specified here.
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# Application configuration should go into files in config/initializers
...
@@ -86,7 +86,11 @@ module Gitlab
...
@@ -86,7 +86,11 @@ module Gitlab
# Rake tasks ignore the eager loading settings, so we need to set the
# Rake tasks ignore the eager loading settings, so we need to set the
# autoload paths explicitly
# autoload paths explicitly
config
.
autoload_paths
=
config
.
eager_load_paths
.
dup
config
.
autoload_paths
=
config
.
eager_load_paths
.
dup
# These are only used in Rake tasks so we don't need to add these to eager_load_paths
config
.
autoload_paths
.
push
(
"
#{
config
.
root
}
/lib/generators"
)
config
.
autoload_paths
.
push
(
"
#{
config
.
root
}
/lib/generators"
)
Gitlab
.
ee
{
config
.
autoload_paths
.
push
(
"
#{
config
.
root
}
/ee/lib/generators"
)
}
Gitlab
.
jh
{
config
.
autoload_paths
.
push
(
"
#{
config
.
root
}
/jh/lib/generators"
)
}
# Only load the plugins named here, in the order given (default is alphabetical).
# Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named.
# :all can be used as a placeholder for all plugins not explicitly named.
...
...
config/initializers/2_gitlab.rb
deleted
100644 → 0
View file @
ad862f26
# frozen_string_literal: true
require_dependency
'gitlab'
config/initializers_before_autoloader/004_zeitwerk.rb
View file @
5118ca34
...
@@ -5,15 +5,11 @@ Rails.autoloaders.each do |autoloader|
...
@@ -5,15 +5,11 @@ Rails.autoloaders.each do |autoloader|
# that do not define Ruby classes / modules
# that do not define Ruby classes / modules
autoloader
.
ignore
(
Rails
.
root
.
join
(
'lib/support'
))
autoloader
.
ignore
(
Rails
.
root
.
join
(
'lib/support'
))
# Ignore generators since these are loaded manually by Rails
# Mailer previews are loaded manually by Rails
# https://github.com/rails/rails/blob/v6.1.3.2/railties/lib/rails/command/behavior.rb#L56-L65
autoloader
.
ignore
(
Rails
.
root
.
join
(
'lib/generators'
))
autoloader
.
ignore
(
Rails
.
root
.
join
(
'ee/lib/generators'
))
if
Gitlab
.
ee?
# Mailer previews are also loaded manually by Rails
# https://github.com/rails/rails/blob/v6.1.3.2/actionmailer/lib/action_mailer/preview.rb#L121-L125
# https://github.com/rails/rails/blob/v6.1.3.2/actionmailer/lib/action_mailer/preview.rb#L121-L125
autoloader
.
ignore
(
Rails
.
root
.
join
(
'app/mailers/previews'
))
autoloader
.
ignore
(
Rails
.
root
.
join
(
'app/mailers/previews'
))
autoloader
.
ignore
(
Rails
.
root
.
join
(
'ee/app/mailers/previews'
))
if
Gitlab
.
ee?
autoloader
.
ignore
(
Rails
.
root
.
join
(
'ee/app/mailers/previews'
))
if
Gitlab
.
ee?
autoloader
.
ignore
(
Rails
.
root
.
join
(
'jh/app/mailers/previews'
))
if
Gitlab
.
jh?
autoloader
.
inflector
.
inflect
(
autoloader
.
inflector
.
inflect
(
'api'
=>
'API'
,
'api'
=>
'API'
,
...
...
config/routes/project.rb
View file @
5118ca34
...
@@ -389,7 +389,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
...
@@ -389,7 +389,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
namespace
:design_management
do
namespace
:design_management
do
namespace
:designs
,
path:
'designs/:design_id(/:sha)'
,
constraints:
->
(
params
)
{
params
[
:sha
].
nil?
||
Gitlab
::
Git
.
commit_id?
(
params
[
:sha
])
}
do
namespace
:designs
,
path:
'designs/:design_id(/:sha)'
,
constraints:
->
(
params
)
{
params
[
:sha
].
nil?
||
Gitlab
::
Git
.
commit_id?
(
params
[
:sha
])
}
do
resource
:raw_image
,
only: :show
resource
:raw_image
,
only: :show
resources
:resized_image
,
only: :show
,
constraints:
->
(
params
)
{
DesignManagement
::
DESIGN_IMAGE_SIZES
.
include?
(
params
[
:id
])
}
resources
:resized_image
,
only: :show
,
constraints:
->
(
params
)
{
::
DesignManagement
::
DESIGN_IMAGE_SIZES
.
include?
(
params
[
:id
])
}
end
end
end
end
...
...
config/settings.rb
View file @
5118ca34
...
@@ -3,12 +3,6 @@
...
@@ -3,12 +3,6 @@
require
'settingslogic'
require
'settingslogic'
require
'digest/md5'
require
'digest/md5'
# We can not use `Rails.root` here, as this file might be loaded without the
# full Rails environment being loaded. We can not use `require_relative` either,
# as Rails uses `load` for `require_dependency` (used when loading the Rails
# environment). This could then lead to this file being loaded twice.
require_dependency
File
.
expand_path
(
'../lib/gitlab'
,
__dir__
)
class
Settings
<
Settingslogic
class
Settings
<
Settingslogic
source
ENV
.
fetch
(
'GITLAB_CONFIG'
)
{
Pathname
.
new
(
File
.
expand_path
(
'..'
,
__dir__
)).
join
(
'config/gitlab.yml'
)
}
source
ENV
.
fetch
(
'GITLAB_CONFIG'
)
{
Pathname
.
new
(
File
.
expand_path
(
'..'
,
__dir__
)).
join
(
'config/gitlab.yml'
)
}
namespace
ENV
.
fetch
(
'GITLAB_ENV'
)
{
Rails
.
env
}
namespace
ENV
.
fetch
(
'GITLAB_ENV'
)
{
Rails
.
env
}
...
...
ee/lib/ee/gitlab/metrics/samplers/database_sampler.rb
View file @
5118ca34
...
@@ -15,9 +15,9 @@ module EE
...
@@ -15,9 +15,9 @@ module EE
end
end
def
geo_connection_stats
def
geo_connection_stats
return
[]
unless
Geo
::
TrackingBase
.
connected?
return
[]
unless
::
Geo
::
TrackingBase
.
connected?
[{
labels:
labels_for_class
(
Geo
::
TrackingBase
),
stats:
Geo
::
TrackingBase
.
connection_pool
.
stat
}]
[{
labels:
labels_for_class
(
::
Geo
::
TrackingBase
),
stats:
::
Geo
::
TrackingBase
.
connection_pool
.
stat
}]
end
end
end
end
end
end
...
...
ee/lib/generators/
rails
/geo_migration_generator.rb
→
ee/lib/generators/
geo_migration
/geo_migration_generator.rb
View file @
5118ca34
...
@@ -4,7 +4,8 @@ require 'rails/generators'
...
@@ -4,7 +4,8 @@ require 'rails/generators'
require
'rails/generators/active_record'
require
'rails/generators/active_record'
require
'rails/generators/active_record/migration/migration_generator'
require
'rails/generators/active_record/migration/migration_generator'
class
GeoMigrationGenerator
<
ActiveRecord
::
Generators
::
MigrationGenerator
module
GeoMigration
class
GeoMigrationGenerator
<
ActiveRecord
::
Generators
::
MigrationGenerator
source_root
File
.
join
(
Rails
.
root
,
'generator_templates/active_record/migration'
)
source_root
File
.
join
(
Rails
.
root
,
'generator_templates/active_record/migration'
)
def
create_migration_file
def
create_migration_file
...
@@ -12,4 +13,5 @@ class GeoMigrationGenerator < ActiveRecord::Generators::MigrationGenerator
...
@@ -12,4 +13,5 @@ class GeoMigrationGenerator < ActiveRecord::Generators::MigrationGenerator
validate_file_name!
validate_file_name!
migration_template
@migration_template
,
"ee/db/geo/migrate/
#{
file_name
}
.rb"
migration_template
@migration_template
,
"ee/db/geo/migrate/
#{
file_name
}
.rb"
end
end
end
end
end
generator_templates/
rails
/post_deployment_migration/migration.rb
→
generator_templates/
post_deployment_migration
/post_deployment_migration/migration.rb
View file @
5118ca34
File moved
lib/gem_extensions/active_record/delegate_cache.rb
View file @
5118ca34
...
@@ -11,7 +11,7 @@ module GemExtensions
...
@@ -11,7 +11,7 @@ module GemExtensions
@relation_delegate_cache2
=
{}
# rubocop:disable Gitlab/ModuleWithInstanceVariables
@relation_delegate_cache2
=
{}
# rubocop:disable Gitlab/ModuleWithInstanceVariables
[
[
DisableJoins
::
Relation
::
GemExtensions
::
ActiveRecord
::
DisableJoins
::
Relation
].
each
do
|
klass
|
].
each
do
|
klass
|
delegate
=
Class
.
new
(
klass
)
do
delegate
=
Class
.
new
(
klass
)
do
include
::
ActiveRecord
::
Delegation
::
ClassSpecificRelation
include
::
ActiveRecord
::
Delegation
::
ClassSpecificRelation
...
...
lib/generators/gitlab/usage_metric
/usage_metric
_generator.rb
→
lib/generators/gitlab/usage_metric_generator.rb
View file @
5118ca34
...
@@ -17,7 +17,7 @@ module Gitlab
...
@@ -17,7 +17,7 @@ module Gitlab
ALLOWED_OPERATIONS
=
%w(count distinct_count)
.
freeze
ALLOWED_OPERATIONS
=
%w(count distinct_count)
.
freeze
source_root
File
.
expand_path
(
'templates'
,
__dir__
)
source_root
File
.
expand_path
(
'
usage_metric/
templates'
,
__dir__
)
class_option
:ee
,
type: :boolean
,
optional:
true
,
default:
false
,
desc:
'Indicates if instrumentation is for EE'
class_option
:ee
,
type: :boolean
,
optional:
true
,
default:
false
,
desc:
'Indicates if instrumentation is for EE'
class_option
:type
,
type: :string
,
desc:
"Metric type, must be one of:
#{
ALLOWED_SUPERCLASSES
.
keys
.
join
(
', '
)
}
"
class_option
:type
,
type: :string
,
desc:
"Metric type, must be one of:
#{
ALLOWED_SUPERCLASSES
.
keys
.
join
(
', '
)
}
"
...
...
lib/generators/
rails/
post_deployment_migration/post_deployment_migration_generator.rb
→
lib/generators/post_deployment_migration/post_deployment_migration_generator.rb
View file @
5118ca34
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
require
'rails/generators'
require
'rails/generators'
module
Rails
module
PostDeploymentMigration
class
PostDeploymentMigrationGenerator
<
Rails
::
Generators
::
NamedBase
class
PostDeploymentMigrationGenerator
<
Rails
::
Generators
::
NamedBase
def
create_migration_file
def
create_migration_file
timestamp
=
Time
.
now
.
utc
.
strftime
(
'%Y%m%d%H%M%S'
)
timestamp
=
Time
.
now
.
utc
.
strftime
(
'%Y%m%d%H%M%S'
)
...
...
lib/gitlab/database/load_balancing/host.rb
View file @
5118ca34
...
@@ -29,11 +29,11 @@ module Gitlab
...
@@ -29,11 +29,11 @@ module Gitlab
@host
=
host
@host
=
host
@port
=
port
@port
=
port
@load_balancer
=
load_balancer
@load_balancer
=
load_balancer
@pool
=
load_balancer
.
create_replica_connection_pool
(
LoadBalancing
.
pool_size
,
host
,
port
)
@pool
=
load_balancer
.
create_replica_connection_pool
(
::
Gitlab
::
Database
::
LoadBalancing
.
pool_size
,
host
,
port
)
@online
=
true
@online
=
true
@last_checked_at
=
Time
.
zone
.
now
@last_checked_at
=
Time
.
zone
.
now
interval
=
LoadBalancing
.
replica_check_interval
interval
=
::
Gitlab
::
Database
::
LoadBalancing
.
replica_check_interval
@intervals
=
(
interval
..
(
interval
*
2
)).
step
(
0.5
).
to_a
@intervals
=
(
interval
..
(
interval
*
2
)).
step
(
0.5
).
to_a
end
end
...
@@ -54,7 +54,7 @@ module Gitlab
...
@@ -54,7 +54,7 @@ module Gitlab
end
end
def
offline!
def
offline!
LoadBalancing
::
Logger
.
warn
(
::
Gitlab
::
Database
::
LoadBalancing
::
Logger
.
warn
(
event: :host_offline
,
event: :host_offline
,
message:
'Marking host as offline'
,
message:
'Marking host as offline'
,
db_host:
@host
,
db_host:
@host
,
...
@@ -72,14 +72,14 @@ module Gitlab
...
@@ -72,14 +72,14 @@ module Gitlab
refresh_status
refresh_status
if
@online
if
@online
LoadBalancing
::
Logger
.
info
(
::
Gitlab
::
Database
::
LoadBalancing
::
Logger
.
info
(
event: :host_online
,
event: :host_online
,
message:
'Host is online after replica status check'
,
message:
'Host is online after replica status check'
,
db_host:
@host
,
db_host:
@host
,
db_port:
@port
db_port:
@port
)
)
else
else
LoadBalancing
::
Logger
.
warn
(
::
Gitlab
::
Database
::
LoadBalancing
::
Logger
.
warn
(
event: :host_offline
,
event: :host_offline
,
message:
'Host is offline after replica status check'
,
message:
'Host is offline after replica status check'
,
db_host:
@host
,
db_host:
@host
,
...
@@ -108,7 +108,7 @@ module Gitlab
...
@@ -108,7 +108,7 @@ module Gitlab
def
replication_lag_below_threshold?
def
replication_lag_below_threshold?
if
(
lag_time
=
replication_lag_time
)
if
(
lag_time
=
replication_lag_time
)
lag_time
<=
LoadBalancing
.
max_replication_lag_time
lag_time
<=
::
Gitlab
::
Database
::
LoadBalancing
.
max_replication_lag_time
else
else
false
false
end
end
...
@@ -125,7 +125,7 @@ module Gitlab
...
@@ -125,7 +125,7 @@ module Gitlab
# only do this if we haven't replicated in a while so we only need
# only do this if we haven't replicated in a while so we only need
# to connect to the primary when truly necessary.
# to connect to the primary when truly necessary.
if
(
lag_size
=
replication_lag_size
)
if
(
lag_size
=
replication_lag_size
)
lag_size
<=
LoadBalancing
.
max_replication_difference
lag_size
<=
::
Gitlab
::
Database
::
LoadBalancing
.
max_replication_difference
else
else
false
false
end
end
...
...
lib/gitlab/database/load_balancing/rack_middleware.rb
View file @
5118ca34
...
@@ -18,9 +18,9 @@ module Gitlab
...
@@ -18,9 +18,9 @@ module Gitlab
# namespace - The namespace to use for sticking.
# namespace - The namespace to use for sticking.
# id - The identifier to use for sticking.
# id - The identifier to use for sticking.
def
self
.
stick_or_unstick
(
env
,
namespace
,
id
)
def
self
.
stick_or_unstick
(
env
,
namespace
,
id
)
return
unless
LoadBalancing
.
enable?
return
unless
::
Gitlab
::
Database
::
LoadBalancing
.
enable?
Sticking
.
unstick_or_continue_sticking
(
namespace
,
id
)
::
Gitlab
::
Database
::
LoadBalancing
::
Sticking
.
unstick_or_continue_sticking
(
namespace
,
id
)
env
[
STICK_OBJECT
]
||=
Set
.
new
env
[
STICK_OBJECT
]
||=
Set
.
new
env
[
STICK_OBJECT
]
<<
[
namespace
,
id
]
env
[
STICK_OBJECT
]
<<
[
namespace
,
id
]
...
@@ -56,7 +56,7 @@ module Gitlab
...
@@ -56,7 +56,7 @@ module Gitlab
namespaces_and_ids
=
sticking_namespaces_and_ids
(
env
)
namespaces_and_ids
=
sticking_namespaces_and_ids
(
env
)
namespaces_and_ids
.
each
do
|
namespace
,
id
|
namespaces_and_ids
.
each
do
|
namespace
,
id
|
Sticking
.
unstick_or_continue_sticking
(
namespace
,
id
)
::
Gitlab
::
Database
::
LoadBalancing
::
Sticking
.
unstick_or_continue_sticking
(
namespace
,
id
)
end
end
end
end
...
@@ -65,17 +65,17 @@ module Gitlab
...
@@ -65,17 +65,17 @@ module Gitlab
namespaces_and_ids
=
sticking_namespaces_and_ids
(
env
)
namespaces_and_ids
=
sticking_namespaces_and_ids
(
env
)
namespaces_and_ids
.
each
do
|
namespace
,
id
|
namespaces_and_ids
.
each
do
|
namespace
,
id
|
Sticking
.
stick_if_necessary
(
namespace
,
id
)
::
Gitlab
::
Database
::
LoadBalancing
::
Sticking
.
stick_if_necessary
(
namespace
,
id
)
end
end
end
end
def
clear
def
clear
load_balancer
.
release_host
load_balancer
.
release_host
Session
.
clear_session
::
Gitlab
::
Database
::
LoadBalancing
::
Session
.
clear_session
end
end
def
load_balancer
def
load_balancer
LoadBalancing
.
proxy
.
load_balancer
::
Gitlab
::
Database
::
LoadBalancing
.
proxy
.
load_balancer
end
end
# Determines the sticking namespace and identifier based on the Rack
# Determines the sticking namespace and identifier based on the Rack
...
...
lib/gitlab/import_export/project/object_builder.rb
View file @
5118ca34
...
@@ -106,7 +106,7 @@ module Gitlab
...
@@ -106,7 +106,7 @@ module Gitlab
end
end
def
design?
def
design?
klass
==
DesignManagement
::
Design
klass
==
::
DesignManagement
::
Design
end
end
def
diff_commit_user?
def
diff_commit_user?
...
...
lib/gitlab/metrics/requests_rack_middleware.rb
View file @
5118ca34
...
@@ -66,28 +66,28 @@ module Gitlab
...
@@ -66,28 +66,28 @@ module Gitlab
def
call
(
env
)
def
call
(
env
)
method
=
env
[
'REQUEST_METHOD'
].
downcase
method
=
env
[
'REQUEST_METHOD'
].
downcase
method
=
'INVALID'
unless
HTTP_METHODS
.
key?
(
method
)
method
=
'INVALID'
unless
HTTP_METHODS
.
key?
(
method
)
started
=
Gitlab
::
Metrics
::
System
.
monotonic_time
started
=
::
Gitlab
::
Metrics
::
System
.
monotonic_time
health_endpoint
=
health_endpoint?
(
env
[
'PATH_INFO'
])
health_endpoint
=
health_endpoint?
(
env
[
'PATH_INFO'
])
status
=
'undefined'
status
=
'undefined'
begin
begin
status
,
headers
,
body
=
@app
.
call
(
env
)
status
,
headers
,
body
=
@app
.
call
(
env
)
elapsed
=
Gitlab
::
Metrics
::
System
.
monotonic_time
-
started
elapsed
=
::
Gitlab
::
Metrics
::
System
.
monotonic_time
-
started
if
!
health_endpoint
&&
Gitlab
::
Metrics
.
record_duration_for_status?
(
status
)
if
!
health_endpoint
&&
::
Gitlab
::
Metrics
.
record_duration_for_status?
(
status
)
RequestsRackMiddleware
.
http_request_duration_seconds
.
observe
({
method:
method
},
elapsed
)
self
.
class
.
http_request_duration_seconds
.
observe
({
method:
method
},
elapsed
)
end
end
[
status
,
headers
,
body
]
[
status
,
headers
,
body
]
rescue
StandardError
rescue
StandardError
RequestsRackMiddleware
.
rack_uncaught_errors_count
.
increment
self
.
class
.
rack_uncaught_errors_count
.
increment
raise
raise
ensure
ensure
if
health_endpoint
if
health_endpoint
RequestsRackMiddleware
.
http_health_requests_total
.
increment
(
status:
status
.
to_s
,
method:
method
)
self
.
class
.
http_health_requests_total
.
increment
(
status:
status
.
to_s
,
method:
method
)
else
else
RequestsRackMiddleware
.
http_requests_total
.
increment
(
self
.
class
.
http_requests_total
.
increment
(
status:
status
.
to_s
,
status:
status
.
to_s
,
method:
method
,
method:
method
,
feature_category:
feature_category
.
presence
||
FEATURE_CATEGORY_DEFAULT
feature_category:
feature_category
.
presence
||
FEATURE_CATEGORY_DEFAULT
...
...
lib/gitlab/metrics/samplers/base_sampler.rb
View file @
5118ca34
...
@@ -23,7 +23,7 @@ module Gitlab
...
@@ -23,7 +23,7 @@ module Gitlab
def
safe_sample
def
safe_sample
sample
sample
rescue
StandardError
=>
e
rescue
StandardError
=>
e
Gitlab
::
AppLogger
.
warn
(
"
#{
self
.
class
}
:
#{
e
}
, stopping"
)
::
Gitlab
::
AppLogger
.
warn
(
"
#{
self
.
class
}
:
#{
e
}
, stopping"
)
stop
stop
end
end
...
...
lib/gitlab/metrics/subscribers/action_view.rb
View file @
5118ca34
...
@@ -40,7 +40,7 @@ module Gitlab
...
@@ -40,7 +40,7 @@ module Gitlab
end
end
def
current_transaction
def
current_transaction
Transaction
.
current
::
Gitlab
::
Metrics
::
Transaction
.
current
end
end
end
end
end
end
...
...
lib/gitlab/metrics/subscribers/rails_cache.rb
View file @
5118ca34
...
@@ -65,7 +65,7 @@ module Gitlab
...
@@ -65,7 +65,7 @@ module Gitlab
private
private
def
current_transaction
def
current_transaction
Transaction
.
current
::
Gitlab
::
Metrics
::
Transaction
.
current
end
end
def
metric_cache_operation_duration_seconds
def
metric_cache_operation_duration_seconds
...
...
lib/gitlab/query_limiting/active_support_subscriber.rb
View file @
5118ca34
...
@@ -6,10 +6,10 @@ module Gitlab
...
@@ -6,10 +6,10 @@ module Gitlab
attach_to
:active_record
attach_to
:active_record
def
sql
(
event
)
def
sql
(
event
)
return
if
!
Transaction
.
current
||
event
.
payload
.
fetch
(
:cached
,
event
.
payload
[
:name
]
==
'CACHE'
)
return
if
!
::
Gitlab
::
QueryLimiting
::
Transaction
.
current
||
event
.
payload
.
fetch
(
:cached
,
event
.
payload
[
:name
]
==
'CACHE'
)
Transaction
.
current
.
increment
::
Gitlab
::
QueryLimiting
::
Transaction
.
current
.
increment
Transaction
.
current
.
executed_sql
(
event
.
payload
[
:sql
])
::
Gitlab
::
QueryLimiting
::
Transaction
.
current
.
executed_sql
(
event
.
payload
[
:sql
])
end
end
end
end
end
end
...
...
lib/gitlab/query_limiting/middleware.rb
View file @
5118ca34
...
@@ -13,7 +13,7 @@ module Gitlab
...
@@ -13,7 +13,7 @@ module Gitlab
end
end
def
call
(
env
)
def
call
(
env
)
transaction
,
retval
=
Transaction
.
run
do
transaction
,
retval
=
::
Gitlab
::
QueryLimiting
::
Transaction
.
run
do
@app
.
call
(
env
)
@app
.
call
(
env
)
end
end
...
...
lib/gitlab/usage/metrics/aggregates.rb
0 → 100644
View file @
5118ca34
# frozen_string_literal: true
module
Gitlab
module
Usage
module
Metrics
module
Aggregates
UNION_OF_AGGREGATED_METRICS
=
'OR'
INTERSECTION_OF_AGGREGATED_METRICS
=
'AND'
ALLOWED_METRICS_AGGREGATIONS
=
[
UNION_OF_AGGREGATED_METRICS
,
INTERSECTION_OF_AGGREGATED_METRICS
].
freeze
AGGREGATED_METRICS_PATH
=
Rails
.
root
.
join
(
'config/metrics/aggregates/*.yml'
)
AggregatedMetricError
=
Class
.
new
(
StandardError
)
UnknownAggregationOperator
=
Class
.
new
(
AggregatedMetricError
)
UnknownAggregationSource
=
Class
.
new
(
AggregatedMetricError
)
DisallowedAggregationTimeFrame
=
Class
.
new
(
AggregatedMetricError
)
DATABASE_SOURCE
=
'database'
REDIS_SOURCE
=
'redis'
SOURCES
=
{
DATABASE_SOURCE
=>
Sources
::
PostgresHll
,
REDIS_SOURCE
=>
Sources
::
RedisHll
}.
freeze
end
end
end
end
lib/gitlab/usage/metrics/aggregates/aggregate.rb
View file @
5118ca34
...
@@ -4,23 +4,6 @@ module Gitlab
...
@@ -4,23 +4,6 @@ module Gitlab
module
Usage
module
Usage
module
Metrics
module
Metrics
module
Aggregates
module
Aggregates
UNION_OF_AGGREGATED_METRICS
=
'OR'
INTERSECTION_OF_AGGREGATED_METRICS
=
'AND'
ALLOWED_METRICS_AGGREGATIONS
=
[
UNION_OF_AGGREGATED_METRICS
,
INTERSECTION_OF_AGGREGATED_METRICS
].
freeze
AGGREGATED_METRICS_PATH
=
Rails
.
root
.
join
(
'config/metrics/aggregates/*.yml'
)
AggregatedMetricError
=
Class
.
new
(
StandardError
)
UnknownAggregationOperator
=
Class
.
new
(
AggregatedMetricError
)
UnknownAggregationSource
=
Class
.
new
(
AggregatedMetricError
)
DisallowedAggregationTimeFrame
=
Class
.
new
(
AggregatedMetricError
)
DATABASE_SOURCE
=
'database'
REDIS_SOURCE
=
'redis'
SOURCES
=
{
DATABASE_SOURCE
=>
Sources
::
PostgresHll
,
REDIS_SOURCE
=>
Sources
::
RedisHll
}.
freeze
class
Aggregate
class
Aggregate
include
Gitlab
::
Usage
::
TimeFrame
include
Gitlab
::
Usage
::
TimeFrame
...
...
lib/gitlab/usage/metrics/aggregates/sources.rb
0 → 100644
View file @
5118ca34
# frozen_string_literal: true
module
Gitlab
module
Usage
module
Metrics
module
Aggregates
module
Sources
UnionNotAvailable
=
Class
.
new
(
AggregatedMetricError
)
end
end
end
end
end
lib/gitlab/usage/metrics/aggregates/sources/redis_hll.rb
View file @
5118ca34
...
@@ -5,8 +5,6 @@ module Gitlab
...
@@ -5,8 +5,6 @@ module Gitlab
module
Metrics
module
Metrics
module
Aggregates
module
Aggregates
module
Sources
module
Sources
UnionNotAvailable
=
Class
.
new
(
AggregatedMetricError
)
class
RedisHll
class
RedisHll
extend
Calculations
::
Intersection
extend
Calculations
::
Intersection
def
self
.
calculate_metrics_union
(
metric_names
:,
start_date
:,
end_date
:,
recorded_at:
nil
)
def
self
.
calculate_metrics_union
(
metric_names
:,
start_date
:,
end_date
:,
recorded_at:
nil
)
...
...
spec/fast_spec_helper.rb
View file @
5118ca34
...
@@ -18,9 +18,11 @@ require_relative '../config/settings'
...
@@ -18,9 +18,11 @@ require_relative '../config/settings'
require_relative
'support/rspec'
require_relative
'support/rspec'
require
'active_support/all'
require
'active_support/all'
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'lib'
unless
ActiveSupport
::
Dependencies
.
autoload_paths
.
frozen?
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'ee/lib'
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'lib'
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'jh/lib'
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'ee/lib'
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'jh/lib'
end
ActiveSupport
::
XmlMini
.
backend
=
'Nokogiri'
ActiveSupport
::
XmlMini
.
backend
=
'Nokogiri'
...
...
spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb
View file @
5118ca34
...
@@ -183,18 +183,17 @@ RSpec.describe Gitlab::Database::LoadBalancing::RackMiddleware, :redis do
...
@@ -183,18 +183,17 @@ RSpec.describe Gitlab::Database::LoadBalancing::RackMiddleware, :redis do
describe
'#clear'
do
describe
'#clear'
do
it
'clears the currently used host and session'
do
it
'clears the currently used host and session'
do
lb
=
double
(
:lb
)
lb
=
double
(
:lb
)
session
=
double
(
:session
)
session
=
spy
(
:session
)
allow
(
middleware
).
to
receive
(
:load_balancer
).
and_return
(
lb
)
allow
(
middleware
).
to
receive
(
:load_balancer
).
and_return
(
lb
)
expect
(
lb
).
to
receive
(
:release_host
)
expect
(
lb
).
to
receive
(
:release_host
)
stub_const
(
'Gitlab::Database::LoadBalancing::RackMiddleware::Session'
,
stub_const
(
'Gitlab::Database::LoadBalancing::Session'
,
session
)
session
)
expect
(
session
).
to
receive
(
:clear_session
)
middleware
.
clear
middleware
.
clear
expect
(
session
).
to
have_received
(
:clear_session
)
end
end
end
end
...
...
spec/services/service_response_spec.rb
View file @
5118ca34
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
require
'fast_spec_helper'
require
'fast_spec_helper'
ActiveSupport
::
Dependencies
.
autoload_paths
<<
'app/services
'
require_relative
'../../app/services/service_response
'
RSpec
.
describe
ServiceResponse
do
RSpec
.
describe
ServiceResponse
do
describe
'.success'
do
describe
'.success'
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment