Usage statistics

Tier: Free, Premium, Ultimate Offering: Self-managed

GitLab Inc. periodically collects information about your instance in order to perform various actions.

For free self-managed instances, all usage statistics are opt-out. For information about other tiers, see Customer Product Usage Information.

Service Ping

Service Ping is a process that collects and sends a weekly payload to GitLab Inc. For more information, see the Service Ping guide. When Service Ping is enabled, GitLab gathers data from other instances and enables certain instance-level analytics features that are dependent on Service Ping.

Why enable Service Ping?

The main purpose of Service Ping is to build a better GitLab. We collect data about how GitLab is used to understand feature or stage adoption and usage. This data gives an insight into how GitLab adds value and helps our team understand the reasons why people use GitLab, and with this knowledge we’re able to make better product decisions.

There are several other benefits to enabling Service Ping:

  • Analyze the users’ activities over time of your GitLab installation.
  • A DevOps Score to give you an overview of your entire instance’s adoption of concurrent DevOps from planning to monitoring.
  • More proactive support (assuming that our Customer Success Managers (CSMs) and support organization used the data to deliver more value).
  • Insight and advice into how to get the most value out of your investment in GitLab.
  • Reports that show how you compare against other similar organizations (anonymized), with specific advice and recommendations on how to improve your DevOps processes.
  • Participation in our Registration Features Program to receive free paid features.

Registration Features Program

In GitLab versions 14.1 and later, GitLab Free customers with a self-managed instance running GitLab Enterprise Edition can receive paid features by registering with GitLab and sending us activity data through Service Ping. Features introduced here do not remove the feature from its paid tier. Instances on a paid tier are subject to our Product Usage Data policy managed by Cloud Licensing.

note
Registration is not required for participation.

Available features

In the following table, you can see:

  • The features that are available with the Registration Features Program
  • The GitLab version the features are available from
Feature Available in
Email from GitLab GitLab 14.1 and later
Repository size limit GitLab 14.4 and later
Group access restriction by IP address GitLab 14.4 and later
View description change history GitLab 16.0 and later
Maintenance mode GitLab 16.0 and later
Configurable issue boards GitLab 16.0 and later
Coverage-guided fuzz testing GitLab 16.0 and later
Password complexity requirements GitLab 16.0 and later
Group wikis GitLab 16.5 and later
Issue analytics GitLab 16.5 and later
Custom Text in Emails GitLab 16.5 and later
Contribution analytics GitLab 16.5 and later
Group file templates GitLab 16.6 and later
Group webhooks GitLab 16.6 and later
Service Level Agreement countdown timer GitLab 16.6 and later
Lock project membership to group GitLab 16.6 and later
Users and permissions report GitLab 16.6 and later
Advanced search GitLab 16.6 and later
DevOps Adoption GitLab 16.6 and later
Сross-project pipelines with artifacts dependencies GitLab 16.7 and later
Feature flag related issues GitLab 16.7 and later
Merged results pipelines GitLab 16.7 and later
CI/CD for external repositories GitLab 16.7 and later
CI/CD for GitHub GitLab 16.7 and later

Enable registration features

  1. Sign in as a user with administrator access.
  2. On the left sidebar, at the bottom, select Admin.
  3. Select Settings > Metrics and profiling.
  4. Expand the Usage statistics section.
  5. If not enabled, select the Enable Service Ping checkbox.
  6. Select the Enable Registration Features checkbox.
  7. Select Save changes.

Version check

If enabled, version check informs you if a new version is available and the importance of it through a status. The status displays on the help pages (/help) for all authenticated users, and on the Admin area pages. The statuses are:

  • Green: You are running the latest version of GitLab.
  • Orange: An updated version of GitLab is available.
  • Red: The version of GitLab you are running is vulnerable. You should install the latest version with security fixes as soon as possible.

Orange version check example

Enable or disable version check

  1. On the left sidebar, at the bottom, select Admin.
  2. Select Settings > Metrics and profiling.
  3. Expand Usage statistics.
  4. Select or clear the Enable version check checkbox.
  5. Select Save changes.

Request flow example

The following example shows a basic request/response flow between a self-managed GitLab instance and the GitLab Version Application:

sequenceDiagram participant GitLab instance participant Version Application GitLab instance->>Version Application: Is there a version update? Version Application->>GitLab instance: Response (PNG/SVG)

Configure your network

To send usage statistics to GitLab Inc., you must allow network traffic from your GitLab instance to the host version.gitlab.com on port 443.

If your GitLab instance is behind a proxy, set the appropriate proxy configuration variables.

Enable or disable Service Ping

note
Whether you can disable Service Ping completely depends on the instance’s tier and the specific license. For more information, see Customer Product Usage Information. Service Ping settings only control whether the data is being shared with GitLab, or limited to only internal use by the instance. Even if you disable Service Ping, the gitlab_service_ping_worker background job still periodically generates a Service Ping payload for your instance. The payload is available in the Metrics and profiling admin section.

Through the UI

To enable or disable Service Ping:

  1. On the left sidebar, at the bottom, select Admin.
  2. Select Settings > Metrics and profiling.
  3. Expand Usage statistics.
  4. Select or clear the Enable Service Ping checkbox.
  5. Select Save changes.

Through the configuration file

To disable Service Ping and prevent it from being configured in the future through the Admin area.

Linux package (Omnibus)
  1. Edit /etc/gitlab/gitlab.rb:

    gitlab_rails['usage_ping_enabled'] = false
    
  2. Reconfigure GitLab:

    sudo gitlab-ctl reconfigure
    
Self-compiled (source)
  1. Edit /home/git/gitlab/config/gitlab.yml:

    production: &base
      # ...
      gitlab:
        # ...
        usage_ping_enabled: false
    
  2. Restart GitLab:

    sudo service gitlab restart
    

Enable or disable optional data in Service Ping

GitLab differentiates between operational and optional collected data. For more information, see Customer product usage information.

Through the UI

To enable or disable optional data in Service Ping:

  1. In the left sidebar, at the bottom, select Admin.
  2. Go to Settings > Metrics and Profiling.
  3. Expand the Usage Statistics section.
  4. To enable optional data, select the Include optional data in Service Ping checkbox. To disable it, clear the box.
  5. Select Save Changes.

Through the configuration file

Linux package (Omnibus)
  1. Edit /etc/gitlab/gitlab.rb:

    gitlab_rails['include_optional_metrics_in_service_ping'] = false
    
  2. Reconfigure GitLab:

    sudo gitlab-ctl reconfigure
    
Self-compiled (source)
  1. Edit /home/git/gitlab/config/gitlab.yml:

    production: &base
      # ...
      gitlab:
        # ...
        include_optional_metrics_in_service_ping: false
    
  2. Restart GitLab:

    sudo service gitlab restart
    

Access the Service Ping payload

You can access the exact JSON payload sent to GitLab Inc. in the Admin area or through the API. See an example Service Ping payload.

In the UI

  1. Sign in as a user with administrator access.
  2. On the left sidebar, at the bottom, select Admin.
  3. Select Settings > Metrics and profiling > Usage statistics.
  4. Select Preview payload.

Through the API

See service ping API documentation.

Manually upload Service Ping payload

You can upload the Service Ping payload to GitLab even if your instance doesn’t have internet access, or if the Service Ping cron job is not enabled.

To upload the payload manually:

  1. Sign in as a user with administrator access.
  2. On the left sidebar, at the bottom, select Admin.
  3. Select Settings > Metrics and profiling > Usage statistics.
  4. Select Download payload.
  5. Save the JSON file.
  6. Visit Service usage data center.
  7. Select Choose file, then select the JSON file that contains the downloaded payload.
  8. Select Upload.

The uploaded file is encrypted and sent using secure HTTPS protocol. HTTPS creates a secure communication channel between web browser and the server, and protects transmitted data against man-in-the-middle attacks.

If there are problems with the manual upload:

  1. Open a confidential issue in the security fork of version app project.
  2. Attach the JSON payload if possible.
  3. Tag @gitlab-org/analytics-section/analytics-instrumentation who will triage the issue.