Add latest changes from gitlab-org/gitlab@master
| 
						 | 
					@ -24,7 +24,7 @@ This issue is for implementing Geo replication and verification of Cool Widgets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For more background, see [Geo self-service framework](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/geo/framework.md).
 | 
					For more background, see [Geo self-service framework](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/geo/framework.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In order to implement and test this feature, you need to first [set up Geo locally](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/geo.md).
 | 
					In order to implement and test this feature, you need to first [set up Geo locally](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/geo.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are three main sections below. It is a good idea to structure your merge requests this way as well:
 | 
					There are three main sections below. It is a good idea to structure your merge requests this way as well:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ This issue is for implementing Geo replication and verification of Cool Widgets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For more background, see [Geo self-service framework](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/geo/framework.md).
 | 
					For more background, see [Geo self-service framework](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/geo/framework.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In order to implement and test this feature, you need to first [set up Geo locally](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/geo.md).
 | 
					In order to implement and test this feature, you need to first [set up Geo locally](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/geo.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are three main sections below. It is a good idea to structure your merge requests this way as well:
 | 
					There are three main sections below. It is a good idea to structure your merge requests this way as well:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,6 @@ Rails/SaveBang:
 | 
				
			||||||
    - 'ee/spec/lib/gitlab/git_access_spec.rb'
 | 
					    - 'ee/spec/lib/gitlab/git_access_spec.rb'
 | 
				
			||||||
    - 'ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb'
 | 
					    - 'ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb'
 | 
				
			||||||
    - 'ee/spec/lib/gitlab/mirror_spec.rb'
 | 
					    - 'ee/spec/lib/gitlab/mirror_spec.rb'
 | 
				
			||||||
    - 'ee/spec/mailers/notify_spec.rb'
 | 
					 | 
				
			||||||
    - 'ee/spec/models/application_setting_spec.rb'
 | 
					    - 'ee/spec/models/application_setting_spec.rb'
 | 
				
			||||||
    - 'ee/spec/models/approval_merge_request_rule_spec.rb'
 | 
					    - 'ee/spec/models/approval_merge_request_rule_spec.rb'
 | 
				
			||||||
    - 'ee/spec/models/approval_project_rule_spec.rb'
 | 
					    - 'ee/spec/models/approval_project_rule_spec.rb'
 | 
				
			||||||
| 
						 | 
					@ -513,12 +512,6 @@ RSpec/EmptyLineAfterFinalLetItBe:
 | 
				
			||||||
    - ee/spec/services/merge_request_approval_settings/update_service_spec.rb
 | 
					    - ee/spec/services/merge_request_approval_settings/update_service_spec.rb
 | 
				
			||||||
    - ee/spec/services/personal_access_tokens/create_service_audit_log_spec.rb
 | 
					    - ee/spec/services/personal_access_tokens/create_service_audit_log_spec.rb
 | 
				
			||||||
    - ee/spec/services/personal_access_tokens/groups/update_lifetime_service_spec.rb
 | 
					    - ee/spec/services/personal_access_tokens/groups/update_lifetime_service_spec.rb
 | 
				
			||||||
    - ee/spec/services/projects/after_rename_service_spec.rb
 | 
					 | 
				
			||||||
    - ee/spec/services/projects/alerting/notify_service_spec.rb
 | 
					 | 
				
			||||||
    - ee/spec/services/projects/destroy_service_spec.rb
 | 
					 | 
				
			||||||
    - ee/spec/services/projects/gitlab_projects_import_service_spec.rb
 | 
					 | 
				
			||||||
    - ee/spec/services/projects/import_export/export_service_spec.rb
 | 
					 | 
				
			||||||
    - ee/spec/services/projects/transfer_service_spec.rb
 | 
					 | 
				
			||||||
    - ee/spec/services/push_rules/create_or_update_service_spec.rb
 | 
					    - ee/spec/services/push_rules/create_or_update_service_spec.rb
 | 
				
			||||||
    - ee/spec/services/quality_management/test_cases/create_service_spec.rb
 | 
					    - ee/spec/services/quality_management/test_cases/create_service_spec.rb
 | 
				
			||||||
    - ee/spec/services/quick_actions/interpret_service_spec.rb
 | 
					    - ee/spec/services/quick_actions/interpret_service_spec.rb
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -266,19 +266,6 @@ Performance/CollectionLiteralInLoop:
 | 
				
			||||||
Performance/ConstantRegexp:
 | 
					Performance/ConstantRegexp:
 | 
				
			||||||
  Enabled: false
 | 
					  Enabled: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Offense count: 18
 | 
					 | 
				
			||||||
# Cop supports --auto-correct.
 | 
					 | 
				
			||||||
Performance/Count:
 | 
					 | 
				
			||||||
  Exclude:
 | 
					 | 
				
			||||||
    - 'app/helpers/groups_helper.rb'
 | 
					 | 
				
			||||||
    - 'app/services/merge_requests/add_context_service.rb'
 | 
					 | 
				
			||||||
    - 'ee/lib/gitlab/graphql/aggregations/epics/epic_node.rb'
 | 
					 | 
				
			||||||
    - 'lib/gitlab/sidekiq_status.rb'
 | 
					 | 
				
			||||||
    - 'spec/lib/gitlab/conflict/file_spec.rb'
 | 
					 | 
				
			||||||
    - 'spec/lib/gitlab/git/tree_spec.rb'
 | 
					 | 
				
			||||||
    - 'spec/models/ci/build_spec.rb'
 | 
					 | 
				
			||||||
    - 'spec/support_specs/helpers/active_record/query_recorder_spec.rb'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Offense count: 14
 | 
					# Offense count: 14
 | 
				
			||||||
# Cop supports --auto-correct.
 | 
					# Cop supports --auto-correct.
 | 
				
			||||||
# Configuration parameters: SafeMultiline.
 | 
					# Configuration parameters: SafeMultiline.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,11 @@ import Vue from 'vue';
 | 
				
			||||||
import { capitalizeFirstCharacter } from '~/lib/utils/text_utility';
 | 
					import { capitalizeFirstCharacter } from '~/lib/utils/text_utility';
 | 
				
			||||||
import { s__, __ } from '~/locale';
 | 
					import { s__, __ } from '~/locale';
 | 
				
			||||||
import { mappingFields } from '../constants';
 | 
					import { mappingFields } from '../constants';
 | 
				
			||||||
import { getMappingData, transformForSave } from '../utils/mapping_transformations';
 | 
					import {
 | 
				
			||||||
 | 
					  getMappingData,
 | 
				
			||||||
 | 
					  transformForSave,
 | 
				
			||||||
 | 
					  setFieldsLabels,
 | 
				
			||||||
 | 
					} from '../utils/mapping_transformations';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const i18n = {
 | 
					export const i18n = {
 | 
				
			||||||
  columns: {
 | 
					  columns: {
 | 
				
			||||||
| 
						 | 
					@ -72,11 +76,14 @@ export default {
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  computed: {
 | 
					  computed: {
 | 
				
			||||||
    mappingData() {
 | 
					    mappingData() {
 | 
				
			||||||
      return getMappingData(this.gitlabFields, this.parsedPayload, this.savedMapping);
 | 
					      return getMappingData(this.gitlabFields, this.formattedParsedPayload, this.savedMapping);
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    hasFallbackColumn() {
 | 
					    hasFallbackColumn() {
 | 
				
			||||||
      return this.gitlabFields.some(({ numberOfFallbacks }) => Boolean(numberOfFallbacks));
 | 
					      return this.gitlabFields.some(({ numberOfFallbacks }) => Boolean(numberOfFallbacks));
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    formattedParsedPayload() {
 | 
				
			||||||
 | 
					      return setFieldsLabels(this.parsedPayload);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    setMapping(gitlabKey, mappingKey, valueKey = mappingFields.mapping) {
 | 
					    setMapping(gitlabKey, mappingKey, valueKey = mappingFields.mapping) {
 | 
				
			||||||
| 
						 | 
					@ -92,14 +99,16 @@ export default {
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    filterFields(searchTerm = '', fields) {
 | 
					    filterFields(searchTerm = '', fields) {
 | 
				
			||||||
      const search = searchTerm.toLowerCase();
 | 
					      const search = searchTerm.toLowerCase();
 | 
				
			||||||
      return fields.filter((field) => field.label.toLowerCase().includes(search));
 | 
					      return fields.filter((field) =>
 | 
				
			||||||
 | 
					        field.displayLabel.replace('...', '').toLowerCase().includes(search),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    isSelected(fieldValue, mapping) {
 | 
					    isSelected(fieldValue, mapping) {
 | 
				
			||||||
      return isEqual(fieldValue, mapping);
 | 
					      return isEqual(fieldValue, mapping);
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    selectedValue(mapping) {
 | 
					    selectedValue(mapping) {
 | 
				
			||||||
      return (
 | 
					      return (
 | 
				
			||||||
        this.parsedPayload.find((item) => isEqual(item.path, mapping))?.label ||
 | 
					        this.formattedParsedPayload.find((item) => isEqual(item.path, mapping))?.displayLabel ||
 | 
				
			||||||
        this.$options.i18n.makeSelection
 | 
					        this.$options.i18n.makeSelection
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					@ -167,11 +176,13 @@ export default {
 | 
				
			||||||
          <gl-dropdown-item
 | 
					          <gl-dropdown-item
 | 
				
			||||||
            v-for="mappingField in filterFields(gitlabField.searchTerm, gitlabField.mappingFields)"
 | 
					            v-for="mappingField in filterFields(gitlabField.searchTerm, gitlabField.mappingFields)"
 | 
				
			||||||
            :key="`${mappingField.path}__mapping`"
 | 
					            :key="`${mappingField.path}__mapping`"
 | 
				
			||||||
 | 
					            v-gl-tooltip
 | 
				
			||||||
            :is-checked="isSelected(gitlabField.mapping, mappingField.path)"
 | 
					            :is-checked="isSelected(gitlabField.mapping, mappingField.path)"
 | 
				
			||||||
            is-check-item
 | 
					            is-check-item
 | 
				
			||||||
 | 
					            :title="mappingField.tooltip"
 | 
				
			||||||
            @click="setMapping(gitlabField.name, mappingField.path)"
 | 
					            @click="setMapping(gitlabField.name, mappingField.path)"
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
            {{ mappingField.label }}
 | 
					            {{ mappingField.displayLabel }}
 | 
				
			||||||
          </gl-dropdown-item>
 | 
					          </gl-dropdown-item>
 | 
				
			||||||
          <gl-dropdown-item v-if="noResults(gitlabField.searchTerm, gitlabField.mappingFields)">
 | 
					          <gl-dropdown-item v-if="noResults(gitlabField.searchTerm, gitlabField.mappingFields)">
 | 
				
			||||||
            {{ $options.i18n.noResults }}
 | 
					            {{ $options.i18n.noResults }}
 | 
				
			||||||
| 
						 | 
					@ -197,13 +208,15 @@ export default {
 | 
				
			||||||
              gitlabField.mappingFields,
 | 
					              gitlabField.mappingFields,
 | 
				
			||||||
            )"
 | 
					            )"
 | 
				
			||||||
            :key="`${mappingField.path}__fallback`"
 | 
					            :key="`${mappingField.path}__fallback`"
 | 
				
			||||||
 | 
					            v-gl-tooltip
 | 
				
			||||||
            :is-checked="isSelected(gitlabField.fallback, mappingField.path)"
 | 
					            :is-checked="isSelected(gitlabField.fallback, mappingField.path)"
 | 
				
			||||||
            is-check-item
 | 
					            is-check-item
 | 
				
			||||||
 | 
					            :title="mappingField.tooltip"
 | 
				
			||||||
            @click="
 | 
					            @click="
 | 
				
			||||||
              setMapping(gitlabField.name, mappingField.path, $options.mappingFields.fallback)
 | 
					              setMapping(gitlabField.name, mappingField.path, $options.mappingFields.fallback)
 | 
				
			||||||
            "
 | 
					            "
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
            {{ mappingField.label }}
 | 
					            {{ mappingField.displayLabel }}
 | 
				
			||||||
          </gl-dropdown-item>
 | 
					          </gl-dropdown-item>
 | 
				
			||||||
          <gl-dropdown-item
 | 
					          <gl-dropdown-item
 | 
				
			||||||
            v-if="noResults(gitlabField.fallbackSearchTerm, gitlabField.mappingFields)"
 | 
					            v-if="noResults(gitlabField.fallbackSearchTerm, gitlabField.mappingFields)"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,6 @@
 | 
				
			||||||
import { isEqual } from 'lodash';
 | 
					import { isEqual } from 'lodash';
 | 
				
			||||||
 | 
					import { capitalizeFirstCharacter } from '~/lib/utils/text_utility';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Given data for GitLab alert fields, parsed payload fields data and previously stored mapping (if any)
 | 
					 * Given data for GitLab alert fields, parsed payload fields data and previously stored mapping (if any)
 | 
				
			||||||
 * creates an object in a form convenient to build UI && interact with it
 | 
					 * creates an object in a form convenient to build UI && interact with it
 | 
				
			||||||
| 
						 | 
					@ -32,6 +34,26 @@ export const getMappingData = (gitlabFields, payloadFields, savedMapping) => {
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const setFieldsLabels = (fields) => {
 | 
				
			||||||
 | 
					  return fields.map((field) => {
 | 
				
			||||||
 | 
					    const { label } = field;
 | 
				
			||||||
 | 
					    let displayLabel;
 | 
				
			||||||
 | 
					    let tooltip;
 | 
				
			||||||
 | 
					    const labels = label.split('/');
 | 
				
			||||||
 | 
					    if (labels.length > 1) {
 | 
				
			||||||
 | 
					      tooltip = labels.join('.');
 | 
				
			||||||
 | 
					      displayLabel = `...${capitalizeFirstCharacter(labels.pop())}`;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      displayLabel = capitalizeFirstCharacter(label);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      ...field,
 | 
				
			||||||
 | 
					      displayLabel,
 | 
				
			||||||
 | 
					      tooltip,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Based on mapping data configured by the user creates an object in a format suitable for save on BE
 | 
					 * Based on mapping data configured by the user creates an object in a format suitable for save on BE
 | 
				
			||||||
 * @param {Object} mappingData  - structure describing mapping between GitLab fields and parsed payload fields
 | 
					 * @param {Object} mappingData  - structure describing mapping between GitLab fields and parsed payload fields
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,7 @@ module RendersCommits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def prepare_commits_for_rendering(commits)
 | 
					  def prepare_commits_for_rendering(commits)
 | 
				
			||||||
    commits.each(&:lazy_author) # preload commits' authors
 | 
					    commits.each(&:lazy_author) # preload commits' authors
 | 
				
			||||||
 | 
					    commits.each(&:lazy_latest_pipeline)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Banzai::CommitRenderer.render(commits, @project, current_user) # rubocop:disable Gitlab/ModuleWithInstanceVariables
 | 
					    Banzai::CommitRenderer.render(commits, @project, current_user) # rubocop:disable Gitlab/ModuleWithInstanceVariables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,9 +141,9 @@ module GroupsHelper
 | 
				
			||||||
  def projects_lfs_status(group)
 | 
					  def projects_lfs_status(group)
 | 
				
			||||||
    lfs_status =
 | 
					    lfs_status =
 | 
				
			||||||
      if group.lfs_enabled?
 | 
					      if group.lfs_enabled?
 | 
				
			||||||
        group.projects.select(&:lfs_enabled?).size
 | 
					        group.projects.count(&:lfs_enabled?)
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        group.projects.reject(&:lfs_enabled?).size
 | 
					        group.projects.count { |project| !project.lfs_enabled? }
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    size = group.projects.size
 | 
					    size = group.projects.size
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,9 +18,25 @@ class Ci::CommitWithPipeline < SimpleDelegator
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def lazy_latest_pipeline
 | 
				
			||||||
 | 
					    BatchLoader.for(sha).batch do |shas, loader|
 | 
				
			||||||
 | 
					      preload_pipelines = project.ci_pipelines.latest_pipeline_per_commit(shas.compact)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      shas.each do |sha|
 | 
				
			||||||
 | 
					        pipeline = preload_pipelines[sha]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        loader.call(sha, pipeline)
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def latest_pipeline(ref = nil)
 | 
					  def latest_pipeline(ref = nil)
 | 
				
			||||||
    @latest_pipelines.fetch(ref) do |ref|
 | 
					    @latest_pipelines.fetch(ref) do |ref|
 | 
				
			||||||
      @latest_pipelines[ref] = latest_pipeline_for_project(ref, project)
 | 
					      @latest_pipelines[ref] = if ref
 | 
				
			||||||
 | 
					                                 latest_pipeline_for_project(ref, project)
 | 
				
			||||||
 | 
					                               else
 | 
				
			||||||
 | 
					                                 lazy_latest_pipeline&.itself
 | 
				
			||||||
 | 
					                               end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -142,6 +142,7 @@ class Commit
 | 
				
			||||||
  delegate \
 | 
					  delegate \
 | 
				
			||||||
    :pipelines,
 | 
					    :pipelines,
 | 
				
			||||||
    :last_pipeline,
 | 
					    :last_pipeline,
 | 
				
			||||||
 | 
					    :lazy_latest_pipeline,
 | 
				
			||||||
    :latest_pipeline,
 | 
					    :latest_pipeline,
 | 
				
			||||||
    :latest_pipeline_for_project,
 | 
					    :latest_pipeline_for_project,
 | 
				
			||||||
    :set_latest_pipeline_for_ref,
 | 
					    :set_latest_pipeline_for_ref,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@ module MergeRequests
 | 
				
			||||||
    def duplicates
 | 
					    def duplicates
 | 
				
			||||||
      existing_oids = merge_request.merge_request_context_commits.map { |commit| commit.sha.to_s }
 | 
					      existing_oids = merge_request.merge_request_context_commits.map { |commit| commit.sha.to_s }
 | 
				
			||||||
      existing_oids.select do |existing_oid|
 | 
					      existing_oids.select do |existing_oid|
 | 
				
			||||||
        commit_ids.select { |commit_id| existing_oid.start_with?(commit_id) }.count > 0
 | 
					        commit_ids.count { |commit_id| existing_oid.start_with?(commit_id) } > 0
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: Fix N+1 for commits with pipelines
 | 
				
			||||||
 | 
					merge_request: 59234
 | 
				
			||||||
 | 
					author:
 | 
				
			||||||
 | 
					type: performance
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: Update, organize, and improve analytics metrics definition files
 | 
				
			||||||
 | 
					merge_request: 59926
 | 
				
			||||||
 | 
					author:
 | 
				
			||||||
 | 
					type: other
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: Improve performance of LFS integrity checks
 | 
				
			||||||
 | 
					merge_request: 59991
 | 
				
			||||||
 | 
					author:
 | 
				
			||||||
 | 
					type: performance
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: Resolve offense Performance/Count
 | 
				
			||||||
 | 
					merge_request: 57007
 | 
				
			||||||
 | 
					author: Shubham Kumar (@imskr)
 | 
				
			||||||
 | 
					type: fixed
 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
name: lfs_integrity_inspect_quarantined_objects
 | 
					 | 
				
			||||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58634
 | 
					 | 
				
			||||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/327440
 | 
					 | 
				
			||||||
milestone: '13.11'
 | 
					 | 
				
			||||||
type: development
 | 
					 | 
				
			||||||
group: group::gitaly
 | 
					 | 
				
			||||||
default_enabled: false
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.analytics_unique_visits_for_any_target_monthly
 | 
					key_path: analytics_unique_visits.analytics_unique_visits_for_any_target_monthly
 | 
				
			||||||
description: Visits to any of the pages listed above per month
 | 
					description: Unique visitors to any analytics feature by month
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.g_analytics_contribution_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.g_analytics_insights_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.g_analytics_issues_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.g_analytics_productivity_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.g_analytics_valuestream_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_pipelines_monthly
 | 
					key_path: redis_hll_counters.analytics.p_analytics_pipelines_monthly
 | 
				
			||||||
description:
 | 
					description: Unique visitors to /groups/:group/-/analytics/ci_cd by month
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_code_reviews_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_valuestream_monthly
 | 
					key_path: redis_hll_counters.analytics.p_analytics_valuestream_monthly
 | 
				
			||||||
description:
 | 
					description: Unique visitors to /:group/:project/-/value_stream_analytics by month
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_insights_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_issues_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_repo_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ key_path: redis_hll_counters.analytics.i_analytics_cohorts_monthly
 | 
				
			||||||
description:
 | 
					description:
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: redis_hll_counters.analytics.i_analytics_dev_ops_score_monthly
 | 
					key_path: redis_hll_counters.analytics.i_analytics_dev_ops_score_monthly
 | 
				
			||||||
description:
 | 
					description: Unique visitors to /admin/dev_ops_report by month
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ key_path: redis_hll_counters.analytics.g_analytics_merge_request_monthly
 | 
				
			||||||
description:
 | 
					description:
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: redis_hll_counters.analytics.p_analytics_merge_request_monthly
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: 28d
 | 
					 | 
				
			||||||
data_source: redis_hll
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: redis_hll_counters.analytics.i_analytics_instance_statistics_monthly
 | 
					key_path: redis_hll_counters.analytics.i_analytics_instance_statistics_monthly
 | 
				
			||||||
description:
 | 
					description: Unique visitors to /admin/usage_trends by month
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: redis_hll_counters.analytics.analytics_total_unique_counts_monthly
 | 
					key_path: redis_hll_counters.analytics.analytics_total_unique_counts_monthly
 | 
				
			||||||
description:
 | 
					description: The number of unique users who visited any analytics feature by month
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					key_path: redis_hll_counters.analytics.i_analytics_instance_statistics_weekly
 | 
				
			||||||
 | 
					description: Unique visitors to /admin/usage_trends by week
 | 
				
			||||||
 | 
					product_section: dev
 | 
				
			||||||
 | 
					product_stage: manage
 | 
				
			||||||
 | 
					product_group: group::optimize
 | 
				
			||||||
 | 
					product_category:
 | 
				
			||||||
 | 
					value_type: number
 | 
				
			||||||
 | 
					status: data_available
 | 
				
			||||||
 | 
					time_frame: 7d
 | 
				
			||||||
 | 
					data_source: redis_hll
 | 
				
			||||||
 | 
					distribution:
 | 
				
			||||||
 | 
					- ee
 | 
				
			||||||
 | 
					tier: []
 | 
				
			||||||
 | 
					skip_validation: true
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					key_path: redis_hll_counters.analytics.analytics_total_unique_counts_weekly
 | 
				
			||||||
 | 
					description: The number of unique users who visited any analytics feature by week
 | 
				
			||||||
 | 
					product_section: dev
 | 
				
			||||||
 | 
					product_stage: manage
 | 
				
			||||||
 | 
					product_group: group::optimize
 | 
				
			||||||
 | 
					product_category:
 | 
				
			||||||
 | 
					value_type: number
 | 
				
			||||||
 | 
					status: data_available
 | 
				
			||||||
 | 
					time_frame: 7d
 | 
				
			||||||
 | 
					data_source: redis_hll
 | 
				
			||||||
 | 
					distribution:
 | 
				
			||||||
 | 
					- ee
 | 
				
			||||||
 | 
					tier: []
 | 
				
			||||||
 | 
					skip_validation: true
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ key_path: counts.cycle_analytics_views
 | 
				
			||||||
description:
 | 
					description:
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: counts.productivity_analytics_views
 | 
					 | 
				
			||||||
description:
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source: database
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.g_analytics_contribution
 | 
					 | 
				
			||||||
description: Visits to /groups/:group/-/contribution_analytics
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.g_analytics_insights
 | 
					 | 
				
			||||||
description: Visits to /groups/:group/-/insights
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.g_analytics_issues
 | 
					 | 
				
			||||||
description: Visits to /groups/:group/-/issues_analytics
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.g_analytics_productivity
 | 
					 | 
				
			||||||
description: Visits to /groups/:group/-/analytics/productivity_analytics
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.g_analytics_valuestream
 | 
					 | 
				
			||||||
description: Visits to /groups/:group/-/analytics/value_stream_analytics
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_pipelines
 | 
					key_path: analytics_unique_visits.p_analytics_pipelines
 | 
				
			||||||
description: Visits to /:group/:project/pipelines/charts
 | 
					description: Unique visitors to /:group/:project/pipelines/charts
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_code_reviews
 | 
					 | 
				
			||||||
description: Visits to /:group/:project/-/analytics/code_reviews
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_valuestream
 | 
					key_path: analytics_unique_visits.p_analytics_valuestream
 | 
				
			||||||
description: Visits to /:group/:project/-/value_stream_analytics
 | 
					description: Unique visitors to /:group/:project/-/value_stream_analytics
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_insights
 | 
					 | 
				
			||||||
description: Visits to /:group/:project/insights
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_issues
 | 
					 | 
				
			||||||
description: Visits to /:group/:project/-/analytics/issues_analytics
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_repo
 | 
					key_path: analytics_unique_visits.p_analytics_repo
 | 
				
			||||||
description: Visits to /:group/:project/-/graphs/master/charts
 | 
					description: Unique visitors to /:group/:project/-/graphs/master/charts
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.i_analytics_cohorts
 | 
					key_path: analytics_unique_visits.i_analytics_cohorts
 | 
				
			||||||
description: Visits to /-/instance_statistics/cohorts
 | 
					description: Unique visitors to /-/instance_statistics/cohorts
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.i_analytics_dev_ops_score
 | 
					key_path: analytics_unique_visits.i_analytics_dev_ops_score
 | 
				
			||||||
description: Visits to /-/instance_statistics/dev_ops_score
 | 
					description: Unique visitors to /-/instance_statistics/dev_ops_score
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.g_analytics_merge_request
 | 
					key_path: analytics_unique_visits.g_analytics_merge_request
 | 
				
			||||||
description: Visits to /groups/:group/-/analytics/merge_request_analytics
 | 
					description: Unique visitors to /groups/:group/-/analytics/merge_request_analytics
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
---
 | 
					 | 
				
			||||||
key_path: analytics_unique_visits.p_analytics_merge_request
 | 
					 | 
				
			||||||
description: Visits to /:group/:project/-/analytics/merge_request_analytics
 | 
					 | 
				
			||||||
product_section: dev
 | 
					 | 
				
			||||||
product_stage: manage
 | 
					 | 
				
			||||||
product_group: group::analytics
 | 
					 | 
				
			||||||
product_category:
 | 
					 | 
				
			||||||
value_type: number
 | 
					 | 
				
			||||||
status: data_available
 | 
					 | 
				
			||||||
time_frame: all
 | 
					 | 
				
			||||||
data_source:
 | 
					 | 
				
			||||||
distribution:
 | 
					 | 
				
			||||||
- ce
 | 
					 | 
				
			||||||
tier:
 | 
					 | 
				
			||||||
- free
 | 
					 | 
				
			||||||
skip_validation: true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.i_analytics_instance_statistics
 | 
					key_path: analytics_unique_visits.i_analytics_instance_statistics
 | 
				
			||||||
description: Visit to /admin/instance_statistics
 | 
					description: Unique visitors to/admin/usage_trends
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
key_path: analytics_unique_visits.analytics_unique_visits_for_any_target
 | 
					key_path: analytics_unique_visits.analytics_unique_visits_for_any_target
 | 
				
			||||||
description: Visits to any of the pages listed above per week
 | 
					description: Unique visitors to any analytics feature by week
 | 
				
			||||||
product_section: dev
 | 
					product_section: dev
 | 
				
			||||||
product_stage: manage
 | 
					product_stage: manage
 | 
				
			||||||
product_group: group::analytics
 | 
					product_group: group::optimize
 | 
				
			||||||
product_category:
 | 
					product_category:
 | 
				
			||||||
value_type: number
 | 
					value_type: number
 | 
				
			||||||
status: data_available
 | 
					status: data_available
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,7 +57,7 @@ Gitlab::Seeder.quiet do
 | 
				
			||||||
      seeder.seed!
 | 
					      seeder.seed!
 | 
				
			||||||
    rescue => e
 | 
					    rescue => e
 | 
				
			||||||
      puts "\nSeeding container images failed with #{e.message}."
 | 
					      puts "\nSeeding container images failed with #{e.message}."
 | 
				
			||||||
      puts "Make sure that the registry is running (https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/registry.md) and that Docker CLI (https://www.docker.com/products/docker-desktop) is installed."
 | 
					      puts "Make sure that the registry is running (https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/registry.md) and that Docker CLI (https://www.docker.com/products/docker-desktop) is installed."
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    puts "Skipped. Use the `#{flag}` environment variable to seed container images to the registry."
 | 
					    puts "Skipped. Use the `#{flag}` environment variable to seed container images to the registry."
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -301,6 +301,16 @@ the Container Registry by themselves, follow the steps below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Configure storage for the Container Registry
 | 
					## Configure storage for the Container Registry
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NOTE:
 | 
				
			||||||
 | 
					For storage backends that support it, you can use object versioning to preserve, retrieve, and
 | 
				
			||||||
 | 
					restore the non-current versions of every object stored in your buckets. However, this may result in
 | 
				
			||||||
 | 
					higher storage usage and costs. Due to how the registry operates, image uploads are first stored in
 | 
				
			||||||
 | 
					a temporary path and then transferred to a final location. For object storage backends, including S3
 | 
				
			||||||
 | 
					and GCS, this transfer is achieved with a copy followed by a delete. With object versioning enabled,
 | 
				
			||||||
 | 
					these deleted temporary upload artifacts are kept as non-current versions, therefore increasing the
 | 
				
			||||||
 | 
					storage bucket size. To ensure that non-current versions are deleted after a given amount of time,
 | 
				
			||||||
 | 
					you should configure an object lifecycle policy with your storage provider.
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
You can configure the Container Registry to use various storage backends by
 | 
					You can configure the Container Registry to use various storage backends by
 | 
				
			||||||
configuring a storage driver. By default the GitLab Container Registry
 | 
					configuring a storage driver. By default the GitLab Container Registry
 | 
				
			||||||
is configured to use the [file system driver](#use-file-system)
 | 
					is configured to use the [file system driver](#use-file-system)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,8 +119,8 @@ Any error or warning is logged in Sidekiq's log file.
 | 
				
			||||||
If [Geo](../geo/index.md) is enabled, each project that is successfully migrated
 | 
					If [Geo](../geo/index.md) is enabled, each project that is successfully migrated
 | 
				
			||||||
generates an event to replicate the changes on any **secondary** nodes.
 | 
					generates an event to replicate the changes on any **secondary** nodes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You only need the `gitlab:storage:migrate_to_hashed` Rake task to migrate your repositories, but we have additional
 | 
					You only need the `gitlab:storage:migrate_to_hashed` Rake task to migrate your repositories, but there are
 | 
				
			||||||
commands below that helps you inspect projects and attachments in both legacy and hashed storage.
 | 
					[additional commands(#list-projects-and-attachments) to help you inspect projects and attachments in both legacy and hashed storage.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Rollback from hashed storage to legacy storage
 | 
					## Rollback from hashed storage to legacy storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,7 +92,7 @@ gitlab_rails['omniauth_providers'] = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### GroupSAML for GitLab.com
 | 
					#### GroupSAML for GitLab.com
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See [the GDK SAML documentation](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/saml.md).
 | 
					See [the GDK SAML documentation](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/saml.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Elasticsearch
 | 
					### Elasticsearch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@ GitLab instance, see the [administration documentation](../administration/index.
 | 
				
			||||||
## Get started
 | 
					## Get started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Set up the GitLab development environment with the
 | 
					- Set up the GitLab development environment with the
 | 
				
			||||||
  [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/README.md)
 | 
					  [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/README.md)
 | 
				
			||||||
- [GitLab contributing guide](contributing/index.md)
 | 
					- [GitLab contributing guide](contributing/index.md)
 | 
				
			||||||
  - [Issues workflow](contributing/issue_workflow.md) for more information about:
 | 
					  - [Issues workflow](contributing/issue_workflow.md) for more information about:
 | 
				
			||||||
    - Issue tracker guidelines.
 | 
					    - Issue tracker guidelines.
 | 
				
			||||||
| 
						 | 
					@ -302,6 +302,6 @@ See [database guidelines](database/index.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Other GitLab Development Kit (GDK) guides
 | 
					## Other GitLab Development Kit (GDK) guides
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [Run full Auto DevOps cycle in a GDK instance](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/auto_devops.md)
 | 
					- [Run full Auto DevOps cycle in a GDK instance](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/auto_devops.md)
 | 
				
			||||||
- [Using GitLab Runner with the GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/runner.md)
 | 
					- [Using GitLab Runner with the GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/runner.md)
 | 
				
			||||||
- [Using the Web IDE terminal with the GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/web_ide_terminal_gdk_setup.md)
 | 
					- [Using the Web IDE terminal with the GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/web_ide_terminal_gdk_setup.md)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -302,7 +302,7 @@ GitLab can be considered to have two layers from a process perspective:
 | 
				
			||||||
  - [Omnibus](https://docs.gitlab.com/omnibus/settings/ssl.html)
 | 
					  - [Omnibus](https://docs.gitlab.com/omnibus/settings/ssl.html)
 | 
				
			||||||
  - [Charts](https://docs.gitlab.com/charts/installation/tls.html)
 | 
					  - [Charts](https://docs.gitlab.com/charts/installation/tls.html)
 | 
				
			||||||
  - [Source](../install/installation.md#using-https)
 | 
					  - [Source](../install/installation.md#using-https)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/https.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/https.md)
 | 
				
			||||||
- Layer: Core Service (Processor)
 | 
					- Layer: Core Service (Processor)
 | 
				
			||||||
- GitLab.com: [Secrets Management](https://about.gitlab.com/handbook/engineering/infrastructure/production/architecture/#secrets-management)
 | 
					- GitLab.com: [Secrets Management](https://about.gitlab.com/handbook/engineering/infrastructure/production/architecture/#secrets-management)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -332,7 +332,7 @@ Consul is a tool for service discovery and configuration. Consul is distributed,
 | 
				
			||||||
  - [Omnibus](../integration/elasticsearch.md)
 | 
					  - [Omnibus](../integration/elasticsearch.md)
 | 
				
			||||||
  - [Charts](../integration/elasticsearch.md)
 | 
					  - [Charts](../integration/elasticsearch.md)
 | 
				
			||||||
  - [Source](../integration/elasticsearch.md)
 | 
					  - [Source](../integration/elasticsearch.md)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/elasticsearch.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/elasticsearch.md)
 | 
				
			||||||
- Layer: Core Service (Data)
 | 
					- Layer: Core Service (Data)
 | 
				
			||||||
- GitLab.com: [Get Advanced Search working on GitLab.com (Closed)](https://gitlab.com/groups/gitlab-org/-/epics/153) epic.
 | 
					- GitLab.com: [Get Advanced Search working on GitLab.com (Closed)](https://gitlab.com/groups/gitlab-org/-/epics/153) epic.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -369,7 +369,7 @@ repository updates to secondary nodes.
 | 
				
			||||||
- Configuration:
 | 
					- Configuration:
 | 
				
			||||||
  - [Omnibus](../administration/geo/setup/index.md)
 | 
					  - [Omnibus](../administration/geo/setup/index.md)
 | 
				
			||||||
  - [Charts](https://docs.gitlab.com/charts/advanced/geo/)
 | 
					  - [Charts](https://docs.gitlab.com/charts/advanced/geo/)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/geo.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/geo.md)
 | 
				
			||||||
- Layer: Core Service (Processor)
 | 
					- Layer: Core Service (Processor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### GitLab Exporter
 | 
					#### GitLab Exporter
 | 
				
			||||||
| 
						 | 
					@ -403,7 +403,7 @@ You can use it to sync deployments onto your Kubernetes cluster.
 | 
				
			||||||
  - [Omnibus](../administration/pages/index.md)
 | 
					  - [Omnibus](../administration/pages/index.md)
 | 
				
			||||||
  - [Charts](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/37)
 | 
					  - [Charts](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/37)
 | 
				
			||||||
  - [Source](../install/installation.md#install-gitlab-pages)
 | 
					  - [Source](../install/installation.md#install-gitlab-pages)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/pages.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/pages.md)
 | 
				
			||||||
- Layer: Core Service (Processor)
 | 
					- Layer: Core Service (Processor)
 | 
				
			||||||
- GitLab.com: [GitLab Pages](../user/gitlab_com/index.md#gitlab-pages)
 | 
					- GitLab.com: [GitLab Pages](../user/gitlab_com/index.md#gitlab-pages)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -418,7 +418,7 @@ You can use it either for personal or business websites, such as portfolios, doc
 | 
				
			||||||
  - [Omnibus](https://docs.gitlab.com/runner/)
 | 
					  - [Omnibus](https://docs.gitlab.com/runner/)
 | 
				
			||||||
  - [Charts](https://docs.gitlab.com/runner/install/kubernetes.html)
 | 
					  - [Charts](https://docs.gitlab.com/runner/install/kubernetes.html)
 | 
				
			||||||
  - [Source](https://docs.gitlab.com/runner/)
 | 
					  - [Source](https://docs.gitlab.com/runner/)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/runner.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/runner.md)
 | 
				
			||||||
- Layer: Core Service (Processor)
 | 
					- Layer: Core Service (Processor)
 | 
				
			||||||
- GitLab.com: [Runner](../user/gitlab_com/index.md#shared-runners)
 | 
					- GitLab.com: [Runner](../user/gitlab_com/index.md#shared-runners)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -507,7 +507,7 @@ Mattermost is an open source, private cloud, Slack-alternative from <https://mat
 | 
				
			||||||
- Configuration:
 | 
					- Configuration:
 | 
				
			||||||
  - [Omnibus](https://min.io/download)
 | 
					  - [Omnibus](https://min.io/download)
 | 
				
			||||||
  - [Charts](https://docs.gitlab.com/charts/charts/minio/)
 | 
					  - [Charts](https://docs.gitlab.com/charts/charts/minio/)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/object_storage.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/object_storage.md)
 | 
				
			||||||
- Layer: Core Service (Data)
 | 
					- Layer: Core Service (Data)
 | 
				
			||||||
- GitLab.com: [Storage Architecture](https://about.gitlab.com/handbook/engineering/infrastructure/production/architecture/#storage-architecture)
 | 
					- GitLab.com: [Storage Architecture](https://about.gitlab.com/handbook/engineering/infrastructure/production/architecture/#storage-architecture)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -646,7 +646,7 @@ See our [Redis guidelines](redis.md) for more information about how GitLab uses
 | 
				
			||||||
  - [Omnibus](../update/upgrading_from_source.md#10-install-libraries-migrations-etc)
 | 
					  - [Omnibus](../update/upgrading_from_source.md#10-install-libraries-migrations-etc)
 | 
				
			||||||
  - [Charts](https://docs.gitlab.com/charts/charts/registry/)
 | 
					  - [Charts](https://docs.gitlab.com/charts/charts/registry/)
 | 
				
			||||||
  - [Source](../administration/packages/container_registry.md#enable-the-container-registry)
 | 
					  - [Source](../administration/packages/container_registry.md#enable-the-container-registry)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/registry.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/registry.md)
 | 
				
			||||||
- Layer: Core Service (Processor)
 | 
					- Layer: Core Service (Processor)
 | 
				
			||||||
- GitLab.com: [GitLab Container Registry](../user/packages/container_registry/index.md#build-and-push-by-using-gitlab-cicd)
 | 
					- GitLab.com: [GitLab Container Registry](../user/packages/container_registry/index.md#build-and-push-by-using-gitlab-cicd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -731,7 +731,7 @@ disabled by default.
 | 
				
			||||||
  - [Omnibus](../administration/auth/ldap/index.md)
 | 
					  - [Omnibus](../administration/auth/ldap/index.md)
 | 
				
			||||||
  - [Charts](https://docs.gitlab.com/charts/charts/globals.html#ldap)
 | 
					  - [Charts](https://docs.gitlab.com/charts/charts/globals.html#ldap)
 | 
				
			||||||
  - [Source](https://gitlab.com/gitlab-org/gitlab/blob/master/config/gitlab.yml.example)
 | 
					  - [Source](https://gitlab.com/gitlab-org/gitlab/blob/master/config/gitlab.yml.example)
 | 
				
			||||||
  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/ldap.md)
 | 
					  - [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/ldap.md)
 | 
				
			||||||
- Layer: Core Service (Processor)
 | 
					- Layer: Core Service (Processor)
 | 
				
			||||||
- GitLab.com: [Product Tiers](https://about.gitlab.com/pricing/#gitlab-com)
 | 
					- GitLab.com: [Product Tiers](https://about.gitlab.com/pricing/#gitlab-com)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -123,7 +123,7 @@ The general flow of contributing to GitLab is:
 | 
				
			||||||
1. [Create a fork](../../user/project/repository/forking_workflow.md#creating-a-fork)
 | 
					1. [Create a fork](../../user/project/repository/forking_workflow.md#creating-a-fork)
 | 
				
			||||||
   of GitLab. In some cases, you will want to set up the
 | 
					   of GitLab. In some cases, you will want to set up the
 | 
				
			||||||
   [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) to
 | 
					   [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) to
 | 
				
			||||||
   [develop against your fork](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/index.md#develop-in-your-own-gitlab-fork).
 | 
					   [develop against your fork](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/index.md#develop-in-your-own-gitlab-fork).
 | 
				
			||||||
1. Make your changes in your fork.
 | 
					1. Make your changes in your fork.
 | 
				
			||||||
1. When you're ready, [create a new merge request](../../user/project/merge_requests/creating_merge_requests.md).
 | 
					1. When you're ready, [create a new merge request](../../user/project/merge_requests/creating_merge_requests.md).
 | 
				
			||||||
1. In the merge request's description:
 | 
					1. In the merge request's description:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
stage: Create
 | 
					stage: Create
 | 
				
			||||||
group: Source code
 | 
					group: Source Code
 | 
				
			||||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
 | 
					info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -411,7 +411,7 @@ on how the left-side navigation menu is built and updated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NOTE:
 | 
					NOTE:
 | 
				
			||||||
To preview your changes to documentation locally, follow this
 | 
					To preview your changes to documentation locally, follow this
 | 
				
			||||||
[development guide](https://gitlab.com/gitlab-org/gitlab-docs/blob/master/README.md#development-when-contributing-to-gitlab-documentation) or [these instructions for GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/gitlab_docs.md).
 | 
					[development guide](https://gitlab.com/gitlab-org/gitlab-docs/blob/master/README.md#development-when-contributing-to-gitlab-documentation) or [these instructions for GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/gitlab_docs.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The live preview is currently enabled for the following projects:
 | 
					The live preview is currently enabled for the following projects:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -502,7 +502,7 @@ help of a configuration file known as **screenshot generator**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To run the tool on an existing screenshot generator, take the following steps:
 | 
					To run the tool on an existing screenshot generator, take the following steps:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. Set up the [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/gitlab_docs.md).
 | 
					1. Set up the [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/gitlab_docs.md).
 | 
				
			||||||
1. Navigate to the subdirectory with your cloned GitLab repository, typically `gdk/gitlab`.
 | 
					1. Navigate to the subdirectory with your cloned GitLab repository, typically `gdk/gitlab`.
 | 
				
			||||||
1. Make sure that your GDK database is fully migrated: `bin/rake db:migrate RAILS_ENV=development`.
 | 
					1. Make sure that your GDK database is fully migrated: `bin/rake db:migrate RAILS_ENV=development`.
 | 
				
			||||||
1. Install `pngquant`, see the tool website for more information: [`pngquant`](https://pngquant.org/)
 | 
					1. Install `pngquant`, see the tool website for more information: [`pngquant`](https://pngquant.org/)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -154,7 +154,7 @@ markdownlint configuration is found in the following projects:
 | 
				
			||||||
- [`gitlab-runner`](https://gitlab.com/gitlab-org/gitlab-runner/blob/master/.markdownlint.json)
 | 
					- [`gitlab-runner`](https://gitlab.com/gitlab-org/gitlab-runner/blob/master/.markdownlint.json)
 | 
				
			||||||
- [`omnibus-gitlab`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/.markdownlint.json)
 | 
					- [`omnibus-gitlab`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/.markdownlint.json)
 | 
				
			||||||
- [`charts`](https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/.markdownlint.json)
 | 
					- [`charts`](https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/.markdownlint.json)
 | 
				
			||||||
- [`gitlab-development-kit`](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/.markdownlint.json)
 | 
					- [`gitlab-development-kit`](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/.markdownlint.json)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This configuration is also used in build pipelines.
 | 
					This configuration is also used in build pipelines.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ Developers making significant changes to Elasticsearch queries should test their
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Setting up development environment
 | 
					## Setting up development environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See the [Elasticsearch GDK setup instructions](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/elasticsearch.md)
 | 
					See the [Elasticsearch GDK setup instructions](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/elasticsearch.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Helpful Rake tasks
 | 
					## Helpful Rake tasks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ All `rake` commands described on this page must be run on a GitLab instance, usu
 | 
				
			||||||
## Setting up GitLab Development Kit (GDK)
 | 
					## Setting up GitLab Development Kit (GDK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In order to be able to work on the [GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-foss)
 | 
					In order to be able to work on the [GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-foss)
 | 
				
			||||||
project you must download and configure it through [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md).
 | 
					project you must download and configure it through [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/set-up-gdk.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
After you have the GitLab project ready, you can start working on the translation.
 | 
					After you have the GitLab project ready, you can start working on the translation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,7 @@ creating upstream contributions like [this one](https://github.com/codesandbox/c
 | 
				
			||||||
Before using CodeSandbox with your local GitLab instance, you must:
 | 
					Before using CodeSandbox with your local GitLab instance, you must:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. Enable HTTPS on your GDK. CodeSandbox uses Service Workers that require `https`.
 | 
					1. Enable HTTPS on your GDK. CodeSandbox uses Service Workers that require `https`.
 | 
				
			||||||
   Follow the GDK [NGINX configuration instructions](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/nginx.md) to enable HTTPS for GDK.
 | 
					   Follow the GDK [NGINX configuration instructions](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/nginx.md) to enable HTTPS for GDK.
 | 
				
			||||||
1. Clone the [`codesandbox-client` project](https://github.com/codesandbox/codesandbox-client)
 | 
					1. Clone the [`codesandbox-client` project](https://github.com/codesandbox/codesandbox-client)
 | 
				
			||||||
   locally. If you plan on contributing upstream, you might want to fork and clone first.
 | 
					   locally. If you plan on contributing upstream, you might want to fork and clone first.
 | 
				
			||||||
1. (Optional) Use correct `python` and `nodejs` versions. Otherwise, `yarn` may fail to
 | 
					1. (Optional) Use correct `python` and `nodejs` versions. Otherwise, `yarn` may fail to
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ The following are required to install and test the app:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - [GDK in Gitpod](https://www.loom.com/share/9c9711d4876a40869b9294eecb24c54d)
 | 
					  - [GDK in Gitpod](https://www.loom.com/share/9c9711d4876a40869b9294eecb24c54d)
 | 
				
			||||||
    video.
 | 
					    video.
 | 
				
			||||||
  - [GDK with Gitpod](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/gitpod.md)
 | 
					  - [GDK with Gitpod](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/gitpod.md)
 | 
				
			||||||
    documentation.
 | 
					    documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  You **must not** use tunneling tools such as
 | 
					  You **must not** use tunneling tools such as
 | 
				
			||||||
| 
						 | 
					@ -61,7 +61,7 @@ To install the app in Jira:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If the app install failed, you might need to delete `jira_connect_installations` from your database.
 | 
					If the app install failed, you might need to delete `jira_connect_installations` from your database.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. Open the [database console](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/postgresql.md#access-postgresql).
 | 
					1. Open the [database console](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/postgresql.md#access-postgresql).
 | 
				
			||||||
1. Run `TRUNCATE TABLE jira_connect_installations CASCADE;`.
 | 
					1. Run `TRUNCATE TABLE jira_connect_installations CASCADE;`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Add a namespace
 | 
					## Add a namespace
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ change that affects uploads should also be tested against [object storage](https
 | 
				
			||||||
which is _not_ enabled by default in [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit).
 | 
					which is _not_ enabled by default in [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When working on a related feature, make sure to enable and test it
 | 
					When working on a related feature, make sure to enable and test it
 | 
				
			||||||
against [MinIO](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/object_storage.md).
 | 
					against [MinIO](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/object_storage.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See also [File Storage in GitLab](file_storage.md).
 | 
					See also [File Storage in GitLab](file_storage.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -224,7 +224,7 @@ of the additional endpoint added for Maven. The `/authorize` endpoint verifies a
 | 
				
			||||||
then the normal upload endpoint is implemented below, consuming the metadata that workhorse provides in order to
 | 
					then the normal upload endpoint is implemented below, consuming the metadata that workhorse provides in order to
 | 
				
			||||||
create the package record. Workhorse provides a variety of file metadata such as type, size, and different checksum formats.
 | 
					create the package record. Workhorse provides a variety of file metadata such as type, size, and different checksum formats.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For testing purposes, you may want to [enable object storage](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/object_storage.md)
 | 
					For testing purposes, you may want to [enable object storage](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/object_storage.md)
 | 
				
			||||||
in your local development environment.
 | 
					in your local development environment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### File size limits
 | 
					#### File size limits
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -363,7 +363,7 @@ This patch is available by default for
 | 
				
			||||||
[CNG](https://gitlab.com/gitlab-org/build/CNG/-/merge_requests/591),
 | 
					[CNG](https://gitlab.com/gitlab-org/build/CNG/-/merge_requests/591),
 | 
				
			||||||
[GitLab CI](https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/355),
 | 
					[GitLab CI](https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/355),
 | 
				
			||||||
[GCK](https://gitlab.com/gitlab-org/gitlab-compose-kit/-/merge_requests/149)
 | 
					[GCK](https://gitlab.com/gitlab-org/gitlab-compose-kit/-/merge_requests/149)
 | 
				
			||||||
and can additionally be enabled for [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/advanced.md#apply-custom-patches-for-ruby).
 | 
					and can additionally be enabled for [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/advanced.md#apply-custom-patches-for-ruby).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This patch provides a set of 3 metrics that makes it easier to understand efficiency of memory usage for a given codepath:
 | 
					This patch provides a set of 3 metrics that makes it easier to understand efficiency of memory usage for a given codepath:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,7 +106,7 @@ environment variable `ENABLE_SHERLOCK` to a non empty value. For example:
 | 
				
			||||||
ENABLE_SHERLOCK=1 bundle exec rails s
 | 
					ENABLE_SHERLOCK=1 bundle exec rails s
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sherlock is also [available though the GitLab GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/sherlock.md).
 | 
					Sherlock is also [available though the GitLab GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/sherlock.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Recorded transactions can be found by navigating to `/sherlock/transactions`.
 | 
					Recorded transactions can be found by navigating to `/sherlock/transactions`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,7 +195,7 @@ This endpoint is only available for Rails web workers. Sidekiq workers can not b
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To disable those features for profiling/benchmarking set the `RAILS_PROFILE` environment variable to `true` before starting GitLab. For example when using GDK:
 | 
					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
 | 
					- create a file [`env.runit`](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/runit.md#modifying-environment-configuration-for-services) in the root GDK directory
 | 
				
			||||||
- add `export RAILS_PROFILE=true` to your `env.runit` file
 | 
					- add `export RAILS_PROFILE=true` to your `env.runit` file
 | 
				
			||||||
- restart GDK with `gdk restart`
 | 
					- restart GDK with `gdk restart`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -579,6 +579,7 @@ The [`StandardContext`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/g
 | 
				
			||||||
| `namespace_id` | **{dotted-circle}** | integer               |                                                               |
 | 
					| `namespace_id` | **{dotted-circle}** | integer               |                                                               |
 | 
				
			||||||
| `environment`  | **{check-circle}**  | string (max 32 chars) | Name of the source environment, such as `production` or `staging`             |
 | 
					| `environment`  | **{check-circle}**  | string (max 32 chars) | Name of the source environment, such as `production` or `staging`             |
 | 
				
			||||||
| `source`       | **{check-circle}**  | string (max 32 chars) | Name of the source application, such as  `gitlab-rails` or `gitlab-javascript` |
 | 
					| `source`       | **{check-circle}**  | string (max 32 chars) | Name of the source application, such as  `gitlab-rails` or `gitlab-javascript` |
 | 
				
			||||||
 | 
					| `plan`         | **{dotted-circle}**  | string (max 32 chars) | Name of the plan for the namespace, such as `free`, `premium`, or `ultimate`. Automatically picked from the `namespace`. |
 | 
				
			||||||
| `extra`        | **{dotted-circle}**  | JSON                  | Any additional data associated with the event, in the form of key-value pairs |
 | 
					| `extra`        | **{dotted-circle}**  | JSON                  | Any additional data associated with the event, in the form of key-value pairs |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Default Schema
 | 
					### Default Schema
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -147,10 +147,10 @@ docker rm gitlab-gitaly-cluster praefect postgres gitaly3 gitaly2 gitaly1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To run the Monitor tests locally, against the GDK, please follow the preparation steps below:
 | 
					To run the Monitor tests locally, against the GDK, please follow the preparation steps below:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. Complete the [Prerequisites](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/auto_devops/index.md#prerequisites-for-gitlab-team-members-only), at least through step 5. Note that the monitor tests do not require permissions to work with GKE because they use [k3s as a Kubernetes cluster provider](https://github.com/rancher/k3s).
 | 
					1. Complete the [Prerequisites](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/auto_devops/index.md#prerequisites-for-gitlab-team-members-only), at least through step 5. Note that the monitor tests do not require permissions to work with GKE because they use [k3s as a Kubernetes cluster provider](https://github.com/rancher/k3s).
 | 
				
			||||||
1. The test setup deploys the app in a Kubernetes cluster, using the Auto DevOps deployment strategy.
 | 
					1. The test setup deploys the app in a Kubernetes cluster, using the Auto DevOps deployment strategy.
 | 
				
			||||||
To enable Auto DevOps in GDK, follow the [associated setup](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/auto_devops/index.md#setup) instructions. If you have problems, review the [troubleshooting guide](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/auto_devops/tips_and_troubleshooting.md) or reach out to the `#gdk` channel in the internal GitLab Slack.
 | 
					To enable Auto DevOps in GDK, follow the [associated setup](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/auto_devops/index.md#setup) instructions. If you have problems, review the [troubleshooting guide](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/auto_devops/tips_and_troubleshooting.md) or reach out to the `#gdk` channel in the internal GitLab Slack.
 | 
				
			||||||
1. Do [secure your GitLab instance](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/auto_devops/index.md#secure-your-gitlab-instance) since it is now publicly accessible on `https://[YOUR-PORT].qa-tunnel.gitlab.info`.
 | 
					1. Do [secure your GitLab instance](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/auto_devops/index.md#secure-your-gitlab-instance) since it is now publicly accessible on `https://[YOUR-PORT].qa-tunnel.gitlab.info`.
 | 
				
			||||||
1. Install the Kubernetes command line tool known as `kubectl`. Use the [official installation instructions](https://kubernetes.io/docs/tasks/tools/).
 | 
					1. Install the Kubernetes command line tool known as `kubectl`. Use the [official installation instructions](https://kubernetes.io/docs/tasks/tools/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You might see NGINX issues when you run `gdk start` or `gdk restart`. In that case, run `sft login` to revalidate your credentials and regain access the QA Tunnel.
 | 
					You might see NGINX issues when you run `gdk start` or `gdk restart`. In that case, run `sft login` to revalidate your credentials and regain access the QA Tunnel.
 | 
				
			||||||
| 
						 | 
					@ -272,7 +272,7 @@ You can free some memory with either of the following commands: `docker prune sy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Geo tests
 | 
					## Geo tests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Geo end-to-end tests can run locally against a [Geo GDK setup](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/geo.md) or on Geo spun up in Docker containers.
 | 
					Geo end-to-end tests can run locally against a [Geo GDK setup](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/geo.md) or on Geo spun up in Docker containers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Using Geo GDK
 | 
					### Using Geo GDK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,11 +46,11 @@ Tiers: `free`, `premium`, `ultimate`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.analytics_unique_visits_for_any_target`
 | 
					### `analytics_unique_visits.analytics_unique_visits_for_any_target`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to any of the pages listed above per week
 | 
					Unique visitors to any analytics feature by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174908_analytics_unique_visits_for_any_target.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174908_analytics_unique_visits_for_any_target.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,11 +58,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.analytics_unique_visits_for_any_target_monthly`
 | 
					### `analytics_unique_visits.analytics_unique_visits_for_any_target_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to any of the pages listed above per month
 | 
					Unique visitors to any analytics feature by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174910_analytics_unique_visits_for_any_target_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174910_analytics_unique_visits_for_any_target_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -70,11 +70,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.g_analytics_contribution`
 | 
					### `analytics_unique_visits.g_analytics_contribution`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /groups/:group/-/contribution_analytics
 | 
					Unique visitors to /groups/:group/-/contribution_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174836_g_analytics_contribution.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174836_g_analytics_contribution.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -82,11 +82,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.g_analytics_insights`
 | 
					### `analytics_unique_visits.g_analytics_insights`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /groups/:group/-/insights
 | 
					Unique visitors to /groups/:group/-/insights
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174838_g_analytics_insights.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174838_g_analytics_insights.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -94,11 +94,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.g_analytics_issues`
 | 
					### `analytics_unique_visits.g_analytics_issues`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /groups/:group/-/issues_analytics
 | 
					Unique visitors to /groups/:group/-/issues_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174840_g_analytics_issues.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174840_g_analytics_issues.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,11 +106,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.g_analytics_merge_request`
 | 
					### `analytics_unique_visits.g_analytics_merge_request`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /groups/:group/-/analytics/merge_request_analytics
 | 
					Unique visitors to /groups/:group/-/analytics/merge_request_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174902_g_analytics_merge_request.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174902_g_analytics_merge_request.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -118,11 +118,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.g_analytics_productivity`
 | 
					### `analytics_unique_visits.g_analytics_productivity`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /groups/:group/-/analytics/productivity_analytics
 | 
					Unique visitors to /groups/:group/-/analytics/productivity_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174842_g_analytics_productivity.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174842_g_analytics_productivity.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -130,11 +130,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.g_analytics_valuestream`
 | 
					### `analytics_unique_visits.g_analytics_valuestream`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /groups/:group/-/analytics/value_stream_analytics
 | 
					Unique visitors to /groups/:group/-/analytics/value_stream_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174844_g_analytics_valuestream.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174844_g_analytics_valuestream.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -142,11 +142,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.i_analytics_cohorts`
 | 
					### `analytics_unique_visits.i_analytics_cohorts`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /-/instance_statistics/cohorts
 | 
					Unique visitors to /-/instance_statistics/cohorts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174858_i_analytics_cohorts.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174858_i_analytics_cohorts.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -154,11 +154,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.i_analytics_dev_ops_score`
 | 
					### `analytics_unique_visits.i_analytics_dev_ops_score`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /-/instance_statistics/dev_ops_score
 | 
					Unique visitors to /-/instance_statistics/dev_ops_score
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174900_i_analytics_dev_ops_score.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174900_i_analytics_dev_ops_score.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -166,11 +166,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.i_analytics_instance_statistics`
 | 
					### `analytics_unique_visits.i_analytics_instance_statistics`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visit to /admin/instance_statistics
 | 
					Unique visitors to/admin/usage_trends
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174906_i_analytics_instance_statistics.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174906_i_analytics_instance_statistics.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -178,11 +178,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_code_reviews`
 | 
					### `analytics_unique_visits.p_analytics_code_reviews`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/-/analytics/code_reviews
 | 
					Unique visitors to /:group/:project/-/analytics/code_reviews
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174848_p_analytics_code_reviews.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174848_p_analytics_code_reviews.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -190,11 +190,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_insights`
 | 
					### `analytics_unique_visits.p_analytics_insights`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/insights
 | 
					Unique visitors to /:group/:project/insights
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174852_p_analytics_insights.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174852_p_analytics_insights.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -202,11 +202,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_issues`
 | 
					### `analytics_unique_visits.p_analytics_issues`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/-/analytics/issues_analytics
 | 
					Unique visitors to /:group/:project/-/analytics/issues_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174854_p_analytics_issues.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174854_p_analytics_issues.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -214,11 +214,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_merge_request`
 | 
					### `analytics_unique_visits.p_analytics_merge_request`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/-/analytics/merge_request_analytics
 | 
					Unique visitors to /:group/:project/-/analytics/merge_request_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174904_p_analytics_merge_request.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174904_p_analytics_merge_request.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -226,11 +226,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_pipelines`
 | 
					### `analytics_unique_visits.p_analytics_pipelines`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/pipelines/charts
 | 
					Unique visitors to /:group/:project/pipelines/charts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174846_p_analytics_pipelines.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174846_p_analytics_pipelines.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,11 +238,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_repo`
 | 
					### `analytics_unique_visits.p_analytics_repo`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/-/graphs/master/charts
 | 
					Unique visitors to /:group/:project/-/graphs/master/charts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174856_p_analytics_repo.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174856_p_analytics_repo.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -250,11 +250,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `analytics_unique_visits.p_analytics_valuestream`
 | 
					### `analytics_unique_visits.p_analytics_valuestream`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Visits to /:group/:project/-/value_stream_analytics
 | 
					Unique visitors to /:group/:project/-/value_stream_analytics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174850_p_analytics_valuestream.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174850_p_analytics_valuestream.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -830,7 +830,7 @@ Missing description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174832_cycle_analytics_views.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174832_cycle_analytics_views.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3672,9 +3672,9 @@ Tiers: `free`, `premium`, `ultimate`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Missing description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216174834_productivity_analytics_views.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216174834_productivity_analytics_views.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7162,11 +7162,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.analytics_total_unique_counts_monthly`
 | 
					### `redis_hll_counters.analytics.analytics_total_unique_counts_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					The number of unique users who visited any analytics feature by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175016_analytics_total_unique_counts_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175016_analytics_total_unique_counts_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7174,11 +7174,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.analytics_total_unique_counts_weekly`
 | 
					### `redis_hll_counters.analytics.analytics_total_unique_counts_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					The number of unique users who visited any analytics feature by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175014_analytics_total_unique_counts_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175014_analytics_total_unique_counts_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7186,11 +7186,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_contribution_monthly`
 | 
					### `redis_hll_counters.analytics.g_analytics_contribution_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/contribution_analytics by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174914_g_analytics_contribution_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174914_g_analytics_contribution_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7198,11 +7198,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_contribution_weekly`
 | 
					### `redis_hll_counters.analytics.g_analytics_contribution_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/contribution_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174912_g_analytics_contribution_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174912_g_analytics_contribution_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7210,11 +7210,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_insights_monthly`
 | 
					### `redis_hll_counters.analytics.g_analytics_insights_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/insights/ by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174918_g_analytics_insights_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174918_g_analytics_insights_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7222,11 +7222,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_insights_weekly`
 | 
					### `redis_hll_counters.analytics.g_analytics_insights_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/insights/ by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174916_g_analytics_insights_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174916_g_analytics_insights_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7234,11 +7234,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_issues_monthly`
 | 
					### `redis_hll_counters.analytics.g_analytics_issues_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/issues_analytics by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174921_g_analytics_issues_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174921_g_analytics_issues_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7246,11 +7246,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_issues_weekly`
 | 
					### `redis_hll_counters.analytics.g_analytics_issues_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/issues_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174919_g_analytics_issues_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174919_g_analytics_issues_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7262,7 +7262,7 @@ Missing description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175004_g_analytics_merge_request_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175004_g_analytics_merge_request_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7274,7 +7274,7 @@ Missing description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175002_g_analytics_merge_request_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175002_g_analytics_merge_request_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7282,11 +7282,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_productivity_monthly`
 | 
					### `redis_hll_counters.analytics.g_analytics_productivity_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/analytics/productivity_analytics by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174926_g_analytics_productivity_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174926_g_analytics_productivity_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7294,11 +7294,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_productivity_weekly`
 | 
					### `redis_hll_counters.analytics.g_analytics_productivity_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/analytics/productivity_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174923_g_analytics_productivity_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174923_g_analytics_productivity_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7306,11 +7306,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_valuestream_monthly`
 | 
					### `redis_hll_counters.analytics.g_analytics_valuestream_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/analytics/value_stream_analytics by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174929_g_analytics_valuestream_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174929_g_analytics_valuestream_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7318,11 +7318,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.g_analytics_valuestream_weekly`
 | 
					### `redis_hll_counters.analytics.g_analytics_valuestream_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/analytics/value_stream_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174927_g_analytics_valuestream_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174927_g_analytics_valuestream_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7334,7 +7334,7 @@ Missing description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174956_i_analytics_cohorts_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174956_i_analytics_cohorts_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7346,7 +7346,7 @@ Missing description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174955_i_analytics_cohorts_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174955_i_analytics_cohorts_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7378,11 +7378,11 @@ Tiers: `premium`, `ultimate`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.i_analytics_dev_ops_score_monthly`
 | 
					### `redis_hll_counters.analytics.i_analytics_dev_ops_score_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /admin/dev_ops_report by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175000_i_analytics_dev_ops_score_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175000_i_analytics_dev_ops_score_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7390,11 +7390,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.i_analytics_dev_ops_score_weekly`
 | 
					### `redis_hll_counters.analytics.i_analytics_dev_ops_score_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /admin/dev_ops_report by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174958_i_analytics_dev_ops_score_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174958_i_analytics_dev_ops_score_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7402,11 +7402,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.i_analytics_instance_statistics_monthly`
 | 
					### `redis_hll_counters.analytics.i_analytics_instance_statistics_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /admin/usage_trends by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175012_i_analytics_instance_statistics_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175012_i_analytics_instance_statistics_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7414,11 +7414,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.i_analytics_instance_statistics_weekly`
 | 
					### `redis_hll_counters.analytics.i_analytics_instance_statistics_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /admin/usage_trends by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175010_i_analytics_instance_statistics_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175010_i_analytics_instance_statistics_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7426,11 +7426,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_code_reviews_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_code_reviews_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/analytics/code_reviews by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174937_p_analytics_code_reviews_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174937_p_analytics_code_reviews_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7438,11 +7438,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_code_reviews_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_code_reviews_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/analytics/code_reviews by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174935_p_analytics_code_reviews_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174935_p_analytics_code_reviews_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7450,11 +7450,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_insights_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_insights_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/insights/ by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174945_p_analytics_insights_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174945_p_analytics_insights_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7462,11 +7462,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_insights_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_insights_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/insights/ by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174943_p_analytics_insights_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174943_p_analytics_insights_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7474,11 +7474,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_issues_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_issues_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/analytics/issues_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174949_p_analytics_issues_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174949_p_analytics_issues_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7486,11 +7486,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_issues_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_issues_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/analytics/issues_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174947_p_analytics_issues_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174947_p_analytics_issues_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7498,11 +7498,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_merge_request_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_merge_request_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/analytics/merge_request_analytics by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175008_p_analytics_merge_request_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216175008_p_analytics_merge_request_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7510,11 +7510,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_merge_request_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_merge_request_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/analytics/merge_request_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175006_p_analytics_merge_request_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175006_p_analytics_merge_request_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7522,11 +7522,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_pipelines_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_pipelines_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/analytics/ci_cd by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174933_p_analytics_pipelines_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174933_p_analytics_pipelines_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7534,11 +7534,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_pipelines_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_pipelines_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /groups/:group/-/analytics/ci_cd by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174931_p_analytics_pipelines_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174931_p_analytics_pipelines_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7546,11 +7546,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_repo_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_repo_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/graphs/master/charts by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174953_p_analytics_repo_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216174953_p_analytics_repo_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7558,11 +7558,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_repo_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_repo_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/graphs/master/charts by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174951_p_analytics_repo_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174951_p_analytics_repo_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7570,11 +7570,11 @@ Tiers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_valuestream_monthly`
 | 
					### `redis_hll_counters.analytics.p_analytics_valuestream_monthly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/value_stream_analytics by month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174941_p_analytics_valuestream_monthly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216174941_p_analytics_valuestream_monthly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7582,11 +7582,11 @@ Tiers: `free`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `redis_hll_counters.analytics.p_analytics_valuestream_weekly`
 | 
					### `redis_hll_counters.analytics.p_analytics_valuestream_weekly`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing description
 | 
					Unique visitors to /:group/:project/-/value_stream_analytics by week
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174939_p_analytics_valuestream_weekly.yml)
 | 
					[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216174939_p_analytics_valuestream_weekly.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Group: `group::analytics`
 | 
					Group: `group::optimize`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Status: `data_available`
 | 
					Status: `data_available`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -973,7 +973,7 @@ build in a [downstream pipeline of the `omnibus-gitlab-mirror` project](https://
 | 
				
			||||||
This is the less recommended approach, because it comes with a number of difficulties when emulating a real GitLab deployment.
 | 
					This is the less recommended approach, because it comes with a number of difficulties when emulating a real GitLab deployment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit) is not set up to run a Prometheus server or `node_exporter` alongside other GitLab components. If you would
 | 
					The [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit) is not set up to run a Prometheus server or `node_exporter` alongside other GitLab components. If you would
 | 
				
			||||||
like to do so, [Monitoring the GDK with Prometheus](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/prometheus/index.md#monitoring-the-gdk-with-prometheus) is a good start.
 | 
					like to do so, [Monitoring the GDK with Prometheus](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/prometheus/index.md#monitoring-the-gdk-with-prometheus) is a good start.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The [GCK](https://gitlab.com/gitlab-org/gitlab-compose-kit) has limited support for testing Prometheus based Usage Ping.
 | 
					The [GCK](https://gitlab.com/gitlab-org/gitlab-compose-kit) has limited support for testing Prometheus based Usage Ping.
 | 
				
			||||||
By default, it already comes with a fully configured Prometheus service that is set up to scrape a number of components,
 | 
					By default, it already comes with a fully configured Prometheus service that is set up to scrape a number of components,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 45 KiB  | 
| 
		 After Width: | Height: | Size: 90 KiB  | 
| 
						 | 
					@ -39,4 +39,4 @@ in the categories shown in [Total counts](#total-counts).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
These charts help you visualize how rapidly these records are being created on your instance.
 | 
					These charts help you visualize how rapidly these records are being created on your instance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 26 KiB  | 
| 
		 After Width: | Height: | Size: 53 KiB  | 
| 
						 | 
					@ -31,7 +31,7 @@ You can change the total number of months displayed by setting a URL parameter.
 | 
				
			||||||
For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15`
 | 
					For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15`
 | 
				
			||||||
shows a total of 15 months for the chart in the GitLab.org group.
 | 
					shows a total of 15 months for the chart in the GitLab.org group.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Drill into the information
 | 
					## Drill into the information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 71 KiB  | 
| 
		 Before Width: | Height: | Size: 25 KiB  | 
| 
		 Before Width: | Height: | Size: 7.3 KiB  | 
| 
						 | 
					@ -82,10 +82,10 @@ After you set up your identity provider to work with GitLab, you must configure
 | 
				
			||||||
1. Find the SSO URL from your identity provider and enter it the **Identity provider single sign-on URL** field.
 | 
					1. Find the SSO URL from your identity provider and enter it the **Identity provider single sign-on URL** field.
 | 
				
			||||||
1. Find and enter the fingerprint for the SAML token signing certificate in the **Certificate** field.
 | 
					1. Find and enter the fingerprint for the SAML token signing certificate in the **Certificate** field.
 | 
				
			||||||
1. Select the access level to be applied to newly added users in the **Default membership role** field. The default access level is 'Guest'.
 | 
					1. Select the access level to be applied to newly added users in the **Default membership role** field. The default access level is 'Guest'.
 | 
				
			||||||
1. Select the **Enable SAML authentication for this group** toggle switch.
 | 
					1. Select the **Enable SAML authentication for this group** checkbox.
 | 
				
			||||||
1. Select the **Save changes** button.
 | 
					1. Select the **Save changes** button.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NOTE:
 | 
					NOTE:
 | 
				
			||||||
Please note that the certificate [fingerprint algorithm](../../../integration/saml.md#notes-on-configuring-your-identity-provider) must be in SHA1. When configuring the identity provider, use a secure signature algorithm.
 | 
					Please note that the certificate [fingerprint algorithm](../../../integration/saml.md#notes-on-configuring-your-identity-provider) must be in SHA1. When configuring the identity provider, use a secure signature algorithm.
 | 
				
			||||||
| 
						 | 
					@ -322,11 +322,9 @@ Ensure your SAML identity provider sends an attribute statement named `Groups` o
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When SAML SSO is enabled for the top-level group, `Maintainer` and `Owner` level users
 | 
					When SAML SSO is enabled for the top-level group, `Maintainer` and `Owner` level users
 | 
				
			||||||
see a new menu item in group **Settings -> SAML Group Links**. Each group (parent or subgroup) can specify
 | 
					see a new menu item in group **Settings > SAML Group Links**. Each group (parent or subgroup) can specify
 | 
				
			||||||
one or more group links to map a SAML identity provider group name to a GitLab access level.
 | 
					one or more group links to map a SAML identity provider group name to a GitLab access level.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To link the SAML `Freelancers` group in the attribute statement example above:
 | 
					To link the SAML `Freelancers` group in the attribute statement example above:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. Enter `Freelancers` in the `SAML Group Name` field.
 | 
					1. Enter `Freelancers` in the `SAML Group Name` field.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 80 KiB  | 
| 
						 | 
					@ -343,8 +343,6 @@ To create a value stream with stages:
 | 
				
			||||||
     
 | 
					     
 | 
				
			||||||
1. Select the **Create Value Stream** button to save the value stream.
 | 
					1. Select the **Create Value Stream** button to save the value stream.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Deleting a value stream
 | 
					### Deleting a value stream
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221205) in GitLab 13.4.
 | 
					> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221205) in GitLab 13.4.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,10 +23,10 @@ module API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Using a blank component at the beginning of the join we ensure
 | 
					        # Using a blank component at the beginning of the join we ensure
 | 
				
			||||||
        # that the resulted path will start with '/'. If the resulted path
 | 
					        # that the resulted path will start with '/'. If the resulted path
 | 
				
			||||||
        # does not start with '/', URI::Generic#build will fail
 | 
					        # does not start with '/', URI::Generic#new will fail
 | 
				
			||||||
        path_with_script_name = File.join('', [script_name, path].select(&:present?))
 | 
					        path_with_script_name = File.join('', [script_name, path].select(&:present?))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        URI::Generic.build(scheme: protocol, host: host, port: port, path: path_with_script_name).to_s
 | 
					        URI::Generic.new(protocol, nil, host, port, nil, path_with_script_name, nil, nil, nil, URI::RFC3986_PARSER, true).to_s
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      private
 | 
					      private
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -115,7 +115,7 @@ module Gitlab
 | 
				
			||||||
        # necessary graph walk to detect only new LFS pointers and instead scan
 | 
					        # necessary graph walk to detect only new LFS pointers and instead scan
 | 
				
			||||||
        # through all quarantined objects.
 | 
					        # through all quarantined objects.
 | 
				
			||||||
        git_env = ::Gitlab::Git::HookEnv.all(@gitaly_repo.gl_repository)
 | 
					        git_env = ::Gitlab::Git::HookEnv.all(@gitaly_repo.gl_repository)
 | 
				
			||||||
        if Feature.enabled?(:lfs_integrity_inspect_quarantined_objects, @project, default_enabled: :yaml) && git_env['GIT_OBJECT_DIRECTORY_RELATIVE'].present?
 | 
					        if git_env['GIT_OBJECT_DIRECTORY_RELATIVE'].present?
 | 
				
			||||||
          repository = @gitaly_repo.dup
 | 
					          repository = @gitaly_repo.dup
 | 
				
			||||||
          repository.git_alternate_object_directories = Google::Protobuf::RepeatedField.new(:string)
 | 
					          repository.git_alternate_object_directories = Google::Protobuf::RepeatedField.new(:string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,7 +66,7 @@ module Gitlab
 | 
				
			||||||
    def self.num_running(job_ids)
 | 
					    def self.num_running(job_ids)
 | 
				
			||||||
      responses = self.job_status(job_ids)
 | 
					      responses = self.job_status(job_ids)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      responses.select(&:present?).count
 | 
					      responses.count(&:present?)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Returns the number of jobs that have completed.
 | 
					    # Returns the number of jobs that have completed.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,10 +3,12 @@
 | 
				
			||||||
module Gitlab
 | 
					module Gitlab
 | 
				
			||||||
  module Tracking
 | 
					  module Tracking
 | 
				
			||||||
    class StandardContext
 | 
					    class StandardContext
 | 
				
			||||||
      GITLAB_STANDARD_SCHEMA_URL = 'iglu:com.gitlab/gitlab_standard/jsonschema/1-0-4'
 | 
					      GITLAB_STANDARD_SCHEMA_URL = 'iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5'
 | 
				
			||||||
      GITLAB_RAILS_SOURCE = 'gitlab-rails'
 | 
					      GITLAB_RAILS_SOURCE = 'gitlab-rails'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def initialize(namespace: nil, project: nil, user: nil, **extra)
 | 
					      def initialize(namespace: nil, project: nil, user: nil, **extra)
 | 
				
			||||||
 | 
					        @namespace = namespace
 | 
				
			||||||
 | 
					        @plan = @namespace&.actual_plan_name
 | 
				
			||||||
        @extra = extra
 | 
					        @extra = extra
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +38,7 @@ module Gitlab
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          environment: environment,
 | 
					          environment: environment,
 | 
				
			||||||
          source: source,
 | 
					          source: source,
 | 
				
			||||||
 | 
					          plan: @plan,
 | 
				
			||||||
          extra: @extra
 | 
					          extra: @extra
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15555,15 +15555,12 @@ msgstr ""
 | 
				
			||||||
msgid "GroupSAML|Before enforcing SSO, enable SAML authentication."
 | 
					msgid "GroupSAML|Before enforcing SSO, enable SAML authentication."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Before enforcing SSO-access for Git, enable SSO-only authentication for web activity."
 | 
					msgid "GroupSAML|Before enforcing SSO-only authentication for Git activity, enable SSO-only authentication for web activity."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Certificate fingerprint"
 | 
					msgid "GroupSAML|Certificate fingerprint"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Check SSO on git activity"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "GroupSAML|Configuration"
 | 
					msgid "GroupSAML|Configuration"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15576,19 +15573,16 @@ msgstr ""
 | 
				
			||||||
msgid "GroupSAML|Default membership role"
 | 
					msgid "GroupSAML|Default membership role"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Enable SAML authentication for this group."
 | 
					msgid "GroupSAML|Enable SAML authentication for this group"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Enforce SSO-access for Git in this group."
 | 
					msgid "GroupSAML|Enforce SSO-only authentication for Git activity for this group"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Enforce SSO-only authentication for web activity for this group."
 | 
					msgid "GroupSAML|Enforce SSO-only authentication for web activity for this group"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Enforce users to have dedicated group managed accounts for this group."
 | 
					msgid "GroupSAML|Enforce users to have dedicated group-managed accounts for this group"
 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "GroupSAML|Enforced SSO"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Generate a SCIM token"
 | 
					msgid "GroupSAML|Generate a SCIM token"
 | 
				
			||||||
| 
						 | 
					@ -15627,10 +15621,7 @@ msgstr ""
 | 
				
			||||||
msgid "GroupSAML|No active SAML group links"
 | 
					msgid "GroupSAML|No active SAML group links"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Prohibit outer forks"
 | 
					msgid "GroupSAML|Prohibit outer forks for this group"
 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "GroupSAML|Prohibit outer forks for this group."
 | 
					 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Role to assign members of this SAML group."
 | 
					msgid "GroupSAML|Role to assign members of this SAML group."
 | 
				
			||||||
| 
						 | 
					@ -15678,15 +15669,12 @@ msgstr ""
 | 
				
			||||||
msgid "GroupSAML|This will be set as the access level of users added to the group."
 | 
					msgid "GroupSAML|This will be set as the access level of users added to the group."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|To be able to enable group managed accounts, you first need to enable enforced SSO."
 | 
					msgid "GroupSAML|To be able to enable group-managed accounts, you first need to enable enforced SSO."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|To be able to prohibit outer forks, you first need to enforce dedicate group managed accounts."
 | 
					msgid "GroupSAML|To be able to prohibit outer forks, you first need to enforce dedicate group managed accounts."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "GroupSAML|Toggle SAML authentication"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "GroupSAML|Valid SAML Response"
 | 
					msgid "GroupSAML|Valid SAML Response"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@
 | 
				
			||||||
    "@gitlab/favicon-overlay": "2.0.0",
 | 
					    "@gitlab/favicon-overlay": "2.0.0",
 | 
				
			||||||
    "@gitlab/svgs": "1.191.0",
 | 
					    "@gitlab/svgs": "1.191.0",
 | 
				
			||||||
    "@gitlab/tributejs": "1.0.0",
 | 
					    "@gitlab/tributejs": "1.0.0",
 | 
				
			||||||
    "@gitlab/ui": "29.9.0",
 | 
					    "@gitlab/ui": "29.11.0",
 | 
				
			||||||
    "@gitlab/visual-review-tools": "1.6.1",
 | 
					    "@gitlab/visual-review-tools": "1.6.1",
 | 
				
			||||||
    "@rails/actioncable": "^6.0.3-4",
 | 
					    "@rails/actioncable": "^6.0.3-4",
 | 
				
			||||||
    "@rails/ujs": "^6.0.3-4",
 | 
					    "@rails/ujs": "^6.0.3-4",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,8 +54,8 @@ the browser to use. You will need to have Chrome (or Chromium) and
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Run the end-to-end tests in a local development environment
 | 
					### Run the end-to-end tests in a local development environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Follow the GDK instructions to [prepare](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/prepare.md)
 | 
					Follow the GDK instructions to [prepare](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/prepare.md)
 | 
				
			||||||
and [install](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md)
 | 
					and [install](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/set-up-gdk.md)
 | 
				
			||||||
your local GitLab development environment.
 | 
					your local GitLab development environment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Once you have GDK running, switch to the `qa` directory. E.g., if you setup
 | 
					Once you have GDK running, switch to the `qa` directory. E.g., if you setup
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -227,10 +227,12 @@ module QA
 | 
				
			||||||
        wait = kwargs.delete(:wait) || Capybara.default_max_wait_time
 | 
					        wait = kwargs.delete(:wait) || Capybara.default_max_wait_time
 | 
				
			||||||
        text = kwargs.delete(:text)
 | 
					        text = kwargs.delete(:text)
 | 
				
			||||||
        klass = kwargs.delete(:class)
 | 
					        klass = kwargs.delete(:class)
 | 
				
			||||||
 | 
					        visible = kwargs.delete(:visible)
 | 
				
			||||||
 | 
					        visible = visible.nil? && true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try_find_element = ->(wait) do
 | 
					        try_find_element = ->(wait) do
 | 
				
			||||||
          if disabled.nil?
 | 
					          if disabled.nil?
 | 
				
			||||||
            has_css?(element_selector_css(name, kwargs), text: text, wait: wait, class: klass)
 | 
					            has_css?(element_selector_css(name, kwargs), text: text, wait: wait, class: klass, visible: visible)
 | 
				
			||||||
          else
 | 
					          else
 | 
				
			||||||
            find_element(name, original_kwargs).disabled? == disabled
 | 
					            find_element(name, original_kwargs).disabled? == disabled
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,6 +66,7 @@ RSpec.describe RendersCommits do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect do
 | 
					      expect do
 | 
				
			||||||
        subject.prepare_commits_for_rendering(merge_request.commits)
 | 
					        subject.prepare_commits_for_rendering(merge_request.commits)
 | 
				
			||||||
 | 
					        merge_request.commits.each(&:latest_pipeline)
 | 
				
			||||||
      end.not_to exceed_all_query_limit(control.count)
 | 
					      end.not_to exceed_all_query_limit(control.count)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -163,7 +163,8 @@ RSpec.describe 'Projects > Settings > User manages merge request settings' do
 | 
				
			||||||
        click_on('Save changes')
 | 
					        click_on('Save changes')
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      find('.flash-notice')
 | 
					      wait_for_requests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      radio = find_field('project_project_setting_attributes_squash_option_default_on')
 | 
					      radio = find_field('project_project_setting_attributes_squash_option_default_on')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(radio).to be_checked
 | 
					      expect(radio).to be_checked
 | 
				
			||||||
| 
						 | 
					@ -178,7 +179,8 @@ RSpec.describe 'Projects > Settings > User manages merge request settings' do
 | 
				
			||||||
        click_on('Save changes')
 | 
					        click_on('Save changes')
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      find('.flash-notice')
 | 
					      wait_for_requests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      radio = find_field('project_project_setting_attributes_squash_option_always')
 | 
					      radio = find_field('project_project_setting_attributes_squash_option_always')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(radio).to be_checked
 | 
					      expect(radio).to be_checked
 | 
				
			||||||
| 
						 | 
					@ -193,7 +195,8 @@ RSpec.describe 'Projects > Settings > User manages merge request settings' do
 | 
				
			||||||
        click_on('Save changes')
 | 
					        click_on('Save changes')
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      find('.flash-notice')
 | 
					      wait_for_requests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      radio = find_field('project_project_setting_attributes_squash_option_never')
 | 
					      radio = find_field('project_project_setting_attributes_squash_option_never')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(radio).to be_checked
 | 
					      expect(radio).to be_checked
 | 
				
			||||||
| 
						 | 
					@ -220,7 +223,8 @@ RSpec.describe 'Projects > Settings > User manages merge request settings' do
 | 
				
			||||||
          click_on('Save changes')
 | 
					          click_on('Save changes')
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        find('.flash-notice')
 | 
					        wait_for_requests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        radio = find_field('project_project_setting_attributes_mr_default_target_self_true')
 | 
					        radio = find_field('project_project_setting_attributes_mr_default_target_self_true')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        expect(radio).to be_checked
 | 
					        expect(radio).to be_checked
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,8 @@
 | 
				
			||||||
import { getMappingData, transformForSave } from '~/alerts_settings/utils/mapping_transformations';
 | 
					import {
 | 
				
			||||||
 | 
					  getMappingData,
 | 
				
			||||||
 | 
					  setFieldsLabels,
 | 
				
			||||||
 | 
					  transformForSave,
 | 
				
			||||||
 | 
					} from '~/alerts_settings/utils/mapping_transformations';
 | 
				
			||||||
import alertFields from '../mocks/alert_fields.json';
 | 
					import alertFields from '../mocks/alert_fields.json';
 | 
				
			||||||
import parsedMapping from '../mocks/parsed_mapping.json';
 | 
					import parsedMapping from '../mocks/parsed_mapping.json';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,4 +68,33 @@ describe('Mapping Transformation Utilities', () => {
 | 
				
			||||||
      expect(result).toEqual([]);
 | 
					      expect(result).toEqual([]);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('setFieldsLabels', () => {
 | 
				
			||||||
 | 
					    const nonNestedFields = [{ label: 'title' }];
 | 
				
			||||||
 | 
					    const nonNestedFieldsResult = { displayLabel: 'Title', tooltip: undefined };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const nestedFields = [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        label: 'field/subfield',
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    const nestedFieldsResult = { displayLabel: '...Subfield', tooltip: 'field.subfield' };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const nestedArrayFields = [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        label: 'fields[1]/subfield',
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const nestedArrayFieldsResult = { displayLabel: '...Subfield', tooltip: 'fields[1].subfield' };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it.each`
 | 
				
			||||||
 | 
					      type                     | fields               | result
 | 
				
			||||||
 | 
					      ${'not nested field'}    | ${nonNestedFields}   | ${nonNestedFieldsResult}
 | 
				
			||||||
 | 
					      ${'nested field'}        | ${nestedFields}      | ${nestedFieldsResult}
 | 
				
			||||||
 | 
					      ${'nested inside array'} | ${nestedArrayFields} | ${nestedArrayFieldsResult}
 | 
				
			||||||
 | 
					    `('adds correct displayLabel and tooltip for $type', ({ fields, result }) => {
 | 
				
			||||||
 | 
					      expect(setFieldsLabels(fields)[0]).toMatchObject(result);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||