Analyze GitLab usage

Instance-level analytics

Instance-level analytics make it possible to aggregate analytics across GitLab, so that users can view information across multiple projects and groups in one place.

Learn more about instance-level analytics.

Group-level analytics

Moved to GitLab Premium in 13.9.

GitLab provides several analytics features at the group level. Some of these features require you to use a higher tier than GitLab Free.

Project-level analytics

You can use GitLab to review analytics at the project level. Some of these features require you to use a higher tier than GitLab Free.

User-configurable analytics

The following analytics features are available for users to create personalized views:

Be sure to review the documentation page for this feature for GitLab tier requirements.

DevOps Research and Assessment (DORA) key metrics

Version history

The DevOps Research and Assessment (DORA) team developed several key metrics that you can use as performance indicators for software development teams.

Deployment frequency

Deployment frequency is the frequency of successful deployments to production (hourly, daily, weekly, monthly, or yearly). This measures how often you deliver value to end users. A higher deployment frequency means you can get feedback sooner and iterate faster to deliver improvements and features. GitLab measures this as the number of deployments to a production environment in the given time period.

Deployment frequency displays in several charts:

To retrieve metrics for deployment frequency, use the GraphQL or the REST APIs.

Lead time for changes

Lead time for changes measures the time to deliver a feature once it has been developed, as described in Measuring DevOps Performance.

Lead time for changes displays in several charts:

To retrieve metrics for lead time for changes, use the GraphQL or the REST APIs.

Time to restore service

Time to restore service measures how long it takes an organization to recover from a failure in production. GitLab measures this as the average time required to close the incidents in the given time period. This assumes:

  • All incidents are related to a production environment.
  • Incidents and deployments have a strictly one-to-one relationship. An incident is related to only one production deployment, and any production deployment is related to no more than one incident).

Time to restore service displays in several charts:

To retrieve metrics for time to restore service, use the GraphQL or the REST APIs.

Change failure rate

Change failure rate measures the percentage of deployments that cause a failure in production. GitLab measures this as the number of incidents divided by the number of deployments to a production environment in the given time period. This assumes:

  • All incidents are related to a production environment.
  • Incidents and deployments have a strictly one-to-one relationship. An incident is related to only one production deployment, and any production deployment is related to no more than one incident.

To retrieve metrics for change failure rate, use the GraphQL or the REST APIs.

Supported DORA metrics in GitLab

MetricLevelAPIUI chartComments
deployment_frequencyProjectGitLab 13.7 and laterGitLab 14.8 and laterThe previous API endpoint was deprecated in 13.10.
deployment_frequencyGroupGitLab 13.10 and laterGitLab 13.12 and later 
lead_time_for_changesProjectGitLab 13.10 and laterGitLab 13.11 and laterUnit in seconds. Aggregation method is median.
lead_time_for_changesGroupGitLab 13.10 and laterGitLab 14.0 and laterUnit in seconds. Aggregation method is median.
time_to_restore_serviceProject and groupGitLab 14.9 and laterGitLab 15.1 and laterUnit in days. Aggregation method is median.
change_failure_rateProject and groupGitLab 14.10 and laterGitLab 15.2 and laterPercentage of deployments.

Definitions

We use the following terms to describe GitLab analytics:

  • Mean Time to Change (MTTC): The average duration between idea and delivery. GitLab measures MTTC from issue creation to the issue’s latest related merge request’s deployment to production.
  • Mean Time to Detect (MTTD): The average duration that a bug goes undetected in production. GitLab measures MTTD from deployment of bug to issue creation.
  • Mean Time To Merge (MTTM): The average lifespan of a merge request. GitLab measures MTTM from merge request creation to merge request merge (and closed/un-merged merge requests are excluded). For more information, see Merge Request Analytics.
  • Mean Time to Recover/Repair/Resolution/Resolve/Restore (MTTR): The average duration that a bug is not fixed in production. GitLab measures MTTR from deployment of bug to deployment of fix.
  • Velocity: The total issue burden completed in some period of time. The burden is usually measured in points or weight, often per sprint. For example, your velocity may be “30 points per sprint”. GitLab measures velocity as the total points or weight of issues closed in a given period of time.