Now GA: Repo Grep Check. Find and fix issues in your codebase faster, with our open-ended repo search capability. Read all about it!

Overview

When viewing a service in OpsLevel, the Maturity Report tab provides detailed information about that service’s level. You can use it to answer questions like:

  • Why is my service in the Bronze level?
  • How is my service doing in the Security category?
  • How can I bring my service up to the next level?
Maturity Report Tab
The Maturity Report gives a visual explanation of why a service has a certain level

What’s a  Service Level?

Every service in OpsLevel is assigned a level indicating how mature it is. The definition of mature varies from company to company, so OpsLevel lets you fully customize how services are graded against the rubric. For example, a service could be assigned a low level because it has poor test coverage or a high number of security vulnerabilities. Another service could be assigned a high level because it has great test coverage and zero security vulnerabilities. The number and names of your service levels are configurable within your account.

The Current Level section of the Maturity Report tab shows the service’s overall level. In this example, the service is currently in the Bronze level.

Current Level

The Checks section provides detailed information about how the service is performing against the individual standards laid out in your rubric, via checks. It can be used to figure out why your service is at a certain level and how much work is needed to move on to the next level.

The progress bar at the top shows how far up the ladder of levels your service has progressed. The section below shows the passing and failing checks for the service, grouped by level.

Checks

Calculating a Service’s Level

In the image above, the service is passing all checks in the Bronze level. It’s failing a check in the Silver level. Since the service is working towards the Silver level but hasn’t achieved it yet, the current level of the service is Bronze. Once the service passes the failing check, it will achieve the Silver level.

For a service to achieve a given level, it must pass all checks in that level and all levels below.

In addition to having an overall level, a service has levels for each of the different categories from the rubric. The category levels are calculated in the same way as the overall level but instead of considering all checks, OpsLevel will only look at checks for that specific category.

The Scorecard section shows this information with the categories as rows and the levels as columns. Hovering over a cell will display the level for that category.

Scorecard

Recall the example from earlier where the service has a failing check in the Silver level. Since this failing check belongs to the Security category, the service has a Bronze level in Security. This Bronze in Security is holding the service back from achieving an overall level of Silver.

Improving a Service’s Level

In order to move on to the next level, the service must pass all failing checks in that level. The amount of work involved in fixing a failing check depends on the type of check.

Simple checks like Tool Usage checks can be fixed directly from the Maturity Report. Clicking the ‘Fix This’ button will let you add a tool to the service.

Failing Check Tool

More advanced checks like Repo File checks could require a code change to fix. The check notes can provide more info about how to fix. For example, this ‘Ruby Version >= 2.6.0’ check can be fixed by upgrading to Ruby 2.6 or 2.7.

Failing Check Repo File