diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/monitoring/gitlab_self_monitoring_project/index.md | 7 | ||||
-rw-r--r-- | doc/administration/operations/extra_sidekiq_processes.md | 24 | ||||
-rw-r--r-- | doc/administration/troubleshooting/sidekiq.md | 20 | ||||
-rw-r--r-- | doc/ci/yaml/README.md | 36 | ||||
-rw-r--r-- | doc/development/profiling.md | 13 | ||||
-rw-r--r-- | doc/development/sidekiq_debugging.md | 19 |
6 files changed, 97 insertions, 22 deletions
diff --git a/doc/administration/monitoring/gitlab_self_monitoring_project/index.md b/doc/administration/monitoring/gitlab_self_monitoring_project/index.md index 1946e55603c..6f9821f4ace 100644 --- a/doc/administration/monitoring/gitlab_self_monitoring_project/index.md +++ b/doc/administration/monitoring/gitlab_self_monitoring_project/index.md @@ -17,7 +17,7 @@ members to the group in order to give them maintainer access to the project. This project will be used for self monitoring your GitLab instance. -## Activating the self monitoring project +## Creating the self monitoring project 1. Navigate to **Admin Area > Settings > Metrics and profiling**, and expand the **Self monitoring** section. 1. Toggle the **Create Project** button on. @@ -26,10 +26,11 @@ created, GitLab displays a message with a link to the project. The project will also be linked in the help text above the **Create Project** button. You can also find the project under **Projects > Your projects**. -## Deactivating the self monitoring project +## Deleting the self monitoring project CAUTION: **Warning:** -If you deactivate the self monitoring project, it will be permanently deleted. +If you delete the self monitoring project, you will lose any changes made to the +project. If you create the project again, it will be created in its default state. 1. Navigate to **Admin Area > Settings > Metrics and profiling**, and expand the **Self monitoring** section. 1. Toggle the **Create Project** button off. diff --git a/doc/administration/operations/extra_sidekiq_processes.md b/doc/administration/operations/extra_sidekiq_processes.md index 3ad411f6f5a..f859db5caff 100644 --- a/doc/administration/operations/extra_sidekiq_processes.md +++ b/doc/administration/operations/extra_sidekiq_processes.md @@ -53,6 +53,20 @@ To start extra Sidekiq processes, you must enable `sidekiq-cluster`: ] ``` + [In GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26594) and + later, the special queue name `*` means all queues. This starts two + processes, each handling all queues: + + ```ruby + sidekiq_cluster['queue_groups'] = [ + "*", + "*" + ] + ``` + + `*` cannot be combined with concrete queue names - `*, mailers` will + just handle the `mailers` queue. + 1. Save the file and reconfigure GitLab for the changes to take effect: ```shell @@ -154,6 +168,10 @@ from highest to lowest precedence: The operator precedence for this syntax is fixed: it's not possible to make AND have higher precedence than OR. +[In GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26594) and +later, as with the standard queue group syntax above, a single `*` as the +entire queue group selects all queues. + ### Example queries In `/etc/gitlab/gitlab.rb`: @@ -163,9 +181,11 @@ sidekiq_cluster['enable'] = true sidekiq_cluster['experimental_queue_selector'] = true sidekiq_cluster['queue_groups'] = [ # Run all non-CPU-bound queues that are high urgency - 'resource_boundary!=cpu&urgency=high, + 'resource_boundary!=cpu&urgency=high', # Run all continuous integration and pages queues that are not high urgency - 'feature_category=continuous_integration,pages&urgency!=high + 'feature_category=continuous_integration,pages&urgency!=high', + # Run all queues + '*' ] ``` diff --git a/doc/administration/troubleshooting/sidekiq.md b/doc/administration/troubleshooting/sidekiq.md index b72bce5b3c6..8176ebab2e8 100644 --- a/doc/administration/troubleshooting/sidekiq.md +++ b/doc/administration/troubleshooting/sidekiq.md @@ -18,6 +18,26 @@ troubleshooting steps that will help you diagnose the bottleneck. > may be using all available CPU, or have a Ruby Global Interpreter Lock, > preventing other threads from continuing. +## Log arguments to Sidekiq jobs + +If you want to see what arguments are being passed to Sidekiq jobs you can set +the `SIDEKIQ_LOG_ARGUMENTS` [environment variable](https://docs.gitlab.com/omnibus/settings/environment-variables.html) to `1` (true). + +Example: + +``` +gitlab_rails['env'] = {"SIDEKIQ_LOG_ARGUMENTS" => "1"} +``` + +Please note: It is not recommend to enable this setting in production because some +Sidekiq jobs (such as sending a password reset email) take secret arguments (for +example the password reset token). + +When using [Sidekiq JSON logging](../logs.md#sidekiqlog), +arguments logs are limited to a maximum size of 10 kilobytes of text; +any arguments after this limit will be discarded and replaced with a +single argument containing the string `"..."`. + ## Thread dump Send the Sidekiq process ID the `TTIN` signal and it will output thread diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index 00b5d5d0d6d..9976a423996 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -158,6 +158,42 @@ rspec 2.6: script: bundle exec rspec ``` +### `inherit` + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/207484) in GitLab 12.9. + +You can disable inheritance of globally defined defaults +and variables with the `inherit:` parameter. + +In the example below: + +- `rubocop` **will** inherit both the `before_script` and the variable `DOMAIN`. +- `rspec` **will not** inherit the `before_script` or the variable `DOMAIN`. +- `capybara` **will** inherit the `before_script`, but **will not** inherit the variable `DOMAIN`. + +```yaml +default: + before_script: + - echo Hello World + +variables: + DOMAIN: example.com + +rubocop: + script: bundle exec rubocop + +rspec: + inherit: + default: false + variables: false + script: bundle exec rspec + +capybara: + inherit: + variables: false + script: bundle exec capybara +``` + ## Parameter details The following are detailed explanations for parameters used to configure CI/CD pipelines. diff --git a/doc/development/profiling.md b/doc/development/profiling.md index 316273f37b8..04713055117 100644 --- a/doc/development/profiling.md +++ b/doc/development/profiling.md @@ -120,3 +120,16 @@ Bullet will log query problems to both the Rails log as well as the Chrome console. As a follow up to finding `N+1` queries with Bullet, consider writing a [QueryRecoder test](query_recorder.md) to prevent a regression. + +## Settings that impact performance + +1. `development` environment by default works with hot-reloading enabled, this makes Rails to check file changes every request, and create a potential contention lock, as hot reload is single threaded. +1. `development` environment can load code lazily once the request is fired which results in first request to always be slow. + +To disable those features for profiling/benchmarking set the `RAILS_PROFILE` environment variable to `true` before starting GitLab. For example when using GDK: + +- create a file [`env.runit`](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/runit.md#modifying-environment-configuration-for-services) in the root GDK directory +- add `export RAILS_PROFILE=true` to your `env.runit` file +- restart GDK with `gdk restart` + +*This environment variable is only applicable for the development mode.* diff --git a/doc/development/sidekiq_debugging.md b/doc/development/sidekiq_debugging.md index 2b3a9481b93..b6a11dd813d 100644 --- a/doc/development/sidekiq_debugging.md +++ b/doc/development/sidekiq_debugging.md @@ -2,20 +2,5 @@ ## Log arguments to Sidekiq jobs -If you want to see what arguments are being passed to Sidekiq jobs you can set -the `SIDEKIQ_LOG_ARGUMENTS` [environment variable](https://docs.gitlab.com/omnibus/settings/environment-variables.html) to `1` (true). - -Example: - -``` -gitlab_rails['env'] = {"SIDEKIQ_LOG_ARGUMENTS" => "1"} -``` - -Please note: It is not recommend to enable this setting in production because some -Sidekiq jobs (such as sending a password reset email) take secret arguments (for -example the password reset token). - -When using [Sidekiq JSON logging](../administration/logs.md#sidekiqlog), -arguments logs are limited to a maximum size of 10 kilobytes of text; -any arguments after this limit will be discarded and replaced with a -single argument containing the string `"..."`. +This content has been moved to the +[Troubleshooting Sidekiq docs](../administration/troubleshooting/sidekiq.md). |