> ## Documentation Index
> Fetch the complete documentation index at: https://backstage.spotify.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Soundcheck

> Measure and improve software quality with checks, tracks, levels, and certifications that enforce organizational engineering standards in Portal.

## Overview

Soundcheck measures and provides incentives to improve the quality, reliability, and alignment of your
software ecosystem. With Soundcheck, engineering organizations define development and operational standards
and then use those standards to measure the health of their software components. Soundcheck provides
teams with strong guidance to cultivate behavior and improve an organization's DevOps practices. Use
Soundcheck to prioritize and visualize tech health and alignment to organizational best practices within
Portal.

There are 5 fundamental elements that make up Soundcheck:

* **Check**: A standard or best practice a component is graded against.
* **Check Result**: The result of running a check against a component. Results are either pass or fail.
* **Track**: A long-term tech health initiative.
* **Level**: A group of checks that represent a milestone within a track.
* **Certification**: The outcome of passing all checks within a level.

Together, they show you how any given software component is performing against your organization's long-term tech health initiatives.

Find out more in the [Soundcheck plugin documentation](/plugins/soundcheck).

## Getting started

### Enabling Soundcheck

You can enable Soundcheck in Portal by following the steps outlined in the [Setup Guide](../getting-started).
You also have the option to enable or disable Soundcheck at any time through **Plugins**.

### Pre-Loaded Checks, Tracks and Integrations

To help get you started, Soundcheck comes with a set of pre-loaded checks, tracks and integrations similar to those used at Spotify.
These checks, tracks and integrations are intended to be a starting point for you to build upon and customize to fit your organization's needs.
They can be modified or deleted as needed, or keep them as they are!

### Managing Checks

There are two ways to manage checks, via the no-code UI or via remote URLs that host configuration files.
You can choose either of the configuration sources or use both.

You can view and manage pre-loaded checks in the no-code UI by going to `Soundcheck > Checks`.
To create a new check via the no-code UI click the `Create Check` button.
Find out more in the [Soundcheck plugin documentation - Checks - Managing checks via the no-code UI](/plugins/soundcheck/core-concepts/checks#managing-checks-via-the-no-code-ui).

<Frame>
  <img src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-pre-loaded-checks.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=7512b03f3aa80130f89b2714d4120530" alt="Pre-Loaded Checks" width="3456" height="1780" data-path="portal/assets/soundcheck-pre-loaded-checks.png" />
</Frame>

To configure checks via config files hosted at URLs (github/gitlab/bitbucket etc.),
go to **Plugins** and open the **Soundcheck** plugin settings and enter the URLs for the configuration files, under `soundcheck.checks`.
Soundcheck will pull the configuration files from the URLs and use them to configure checks.
Find out more in the [Soundcheck plugin documentation - Checks - Managing checks via yaml configuration](/plugins/soundcheck/core-concepts/checks#managing-checks-via-yaml-configuration).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-checks-remote-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=267bc3a4fd5ac4e1e353f7e5cea865cc"
    alt="Soundcheck - Checks
Configuration"
    width="3454"
    height="1912"
    data-path="portal/assets/soundcheck-checks-remote-configuration.png"
  />
</Frame>

### Managing Tracks

There are two ways to manage tracks, via the no-code UI or via remote URLs that host configuration files.
You can choose either of the configuration sources or use both.

You can view and manage pre-loaded tracks by going to `Soundcheck > Tracks`.
To create a new track via the no-code UI click the `Create Track` button.
Find out more in the [Soundcheck plugin documentation - Tracks - Managing tracks via the no-code UI](/plugins/soundcheck/core-concepts/tracks#managing-tracks-via-the-no-code-ui).

<Frame>
  <img src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-pre-loaded-tracks.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=399f3c314c90fbc6ff8b2019c3255576" alt="Pre-Loaded Tracks" width="3456" height="1782" data-path="portal/assets/soundcheck-pre-loaded-tracks.png" />
</Frame>

To configure tracks via config files hosted at URLs (github/gitlab/bitbucket etc.),
go to **Plugins** and open the **Soundcheck** plugin settings and enter the URLs for the configuration files, under `soundcheck.tracks`.
Soundcheck will pull the configuration files from the URLs and use them to configure tracks.
Find out more in the [Soundcheck plugin documentation - Tracks - Managing tracks via yaml configuration](/plugins/soundcheck/core-concepts/tracks#managing-tracks-via-yaml-configuration).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-tracks-remote-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=84519005e08caa0fd80b62585e8ba488"
    alt="Soundcheck - Tracks
Configuration"
    width="3452"
    height="1912"
    data-path="portal/assets/soundcheck-tracks-remote-configuration.png"
  />
</Frame>

### Managing Integrations

Soundcheck within Portal comes with the following integrations which are used to collect facts for use with checks:

* [GitHub](#github-integration)
* [SCM](#scm-integration)
* [BigQuery](#bigquery-integration)
* [Datadog](#datadog-integration)
* [HTTP](#http-integration)
* [Jira](#jira-integration)
* [Kubernetes](#kubernetes-integration)
* [NewRelic](#newrelic-integration)
* [PagerDuty](#pagerduty-integration)
* [SonarQube](#sonarqube-integration)
* [Data Registry](#data-registry-integration)

GitHub and SCM integrations are enabled by default to power the pre-loaded checks and tracks included with Soundcheck.
Other integrations must be configured before you can start using them with checks.

You can view and manage integrations by going to `Soundcheck > Integrations`.
For each integration you can choose which facts to collect, how often to collect them, for which entities the facts should be collected, and if those facts should be stored in cache and for how long.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Configuring a fact collector (integration) via the no-code UI](/plugins/soundcheck/core-concepts/fact-collectors/#configuring-a-fact-collector-integration-via-the-no-code-ui).

<Frame>
  <img src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-integrations.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=aa39a20fc7b1eadfedf0cab774cbdb71" alt="Integrations" width="3456" height="1780" data-path="portal/assets/soundcheck-integrations.png" />
</Frame>

#### GitHub Integration

To modify the GitHub integration, go to `Soundcheck > Integrations > GitHub` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - GitHub](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/github).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-github-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=ace7130724fb330a76c49e95061fd937"
    alt="Soundcheck - GitHub Integration
Configuration"
    width="3454"
    height="1784"
    data-path="portal/assets/soundcheck-github-integration-configuration.png"
  />
</Frame>

#### SCM Integration

There are two ways to manage the SCM integration, via the no-code UI or via a remote URL that hosts a configuration file.
If you configure it via both no-code UI and remote URL, the configurations will be merged.
It's preferable to choose a single configuration source (either no-code UI or remote URL) to avoid confusing merge results.

To modify the SCM integration via the no-code UI, go to `Soundcheck > Integrations > SCM` and click the `Configure` button.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-scm-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=eccb80cab7f977134c2dfc86ef650e84"
    alt="Soundcheck - SCM Integration
Configuration"
    width="3454"
    height="1782"
    data-path="portal/assets/soundcheck-scm-integration-configuration.png"
  />
</Frame>

To configure the SCM integration via a config file hosted at a URL (github/gitlab/bitbucket etc.),
go to **Plugins** and open the **Soundcheck** plugin settings and enter the URL for the configuration file, under `soundcheck.collectors.scm.url`.
Soundcheck will pull the configuration file from the URL and use it to configure the SCM integration.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-scm-integration-remote-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=0428b7f13876b8d2d25b572d1fdcbc7e"
    alt="Soundcheck - SCM Integration
Configuration"
    width="3444"
    height="1912"
    data-path="portal/assets/soundcheck-scm-integration-remote-configuration.png"
  />
</Frame>

Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - Source Control Management](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/scm).

#### BigQuery Integration

As a prerequisite to enabling the BigQuery integration, you should configure your BigQuery authentication details.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `projectId` and `credentials` under `soundcheck.collectors.bigquery.auth`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-bigquery-integration-authentication.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=29ca80e5f12b6c5c7325bb367c4ace26"
    alt="Soundcheck - BigQuery Integration
Authentication"
    width="3456"
    height="1778"
    data-path="portal/assets/soundcheck-bigquery-integration-authentication.png"
  />
</Frame>

The authentication configuration is optional, alternatively you can set up Application Default Credentials by following the
[Google documentation](https://cloud.google.com/docs/authentication/provide-credentials-adc).

To enable the BigQuery integration, go to `Soundcheck > Integrations > BigQuery` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - BigQuery](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/bigquery).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-bigquery-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=ae8c86722c19e853feca835fa4679140"
    alt="Soundcheck - BigQuery Integration
Configuration"
    width="3456"
    height="1914"
    data-path="portal/assets/soundcheck-bigquery-integration-configuration.png"
  />
</Frame>

#### Datadog Integration

As a prerequisite to enabling the Datadog integration, you must configure your Datadog instance details.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `baseUrl`, `appKey` and `apiKey` under `soundcheck.collectors.datadog`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-datadog-integration-authorization.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=3c7e3f1ded76bd12321ce3f19112e1a8"
    alt="Soundcheck - Datadog Integration
Authorization"
    width="3456"
    height="1774"
    data-path="portal/assets/soundcheck-datadog-integration-authorization.png"
  />
</Frame>

To enable the Datadog integration, go to `Soundcheck > Integrations > Datadog` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - Datadog](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/datadog).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-datadog-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=c3e45906dd8c529b396541ab8b563219"
    alt="Soundcheck - Datadog Integration
Configuration"
    width="3456"
    height="1778"
    data-path="portal/assets/soundcheck-datadog-integration-configuration.png"
  />
</Frame>

Note: The `datadoghq.com/service-id` entity annotation is required for Datadog integration to work. If it's missing the facts won't be collected for an entity.

#### HTTP Integration

As a prerequisite to enabling the HTTP integration, you should configure your HTTP secrets.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `key` - `value` pairs under `soundcheck.collectors.http.secrets`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-http-integration-secrets.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=4564a9d35e27a797ef49be90c9010892"
    alt="Soundcheck - HTTP Integration
Authorization"
    width="3456"
    height="1916"
    data-path="portal/assets/soundcheck-http-integration-secrets.png"
  />
</Frame>

To enable the HTTP integration, go to `Soundcheck > Integrations > HTTP` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - HTTP](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-http-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=493e9e43de9df9075ae8479c7822bf99"
    alt="Soundcheck - HTTP Integration
Configuration"
    width="3454"
    height="1912"
    data-path="portal/assets/soundcheck-http-integration-configuration.png"
  />
</Frame>

#### Jira Integration

As a prerequisite to enabling the Jira integration, you must configure your Jira instance details.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `baseUrl`, `username` and `apiToken` under `soundcheck.collectors.jira`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-jira-integration-authorization.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=470a6a35b02780b2980e8b45f726d020"
    alt="Soundcheck - Jira Integration
Authorization"
    width="3456"
    height="1778"
    data-path="portal/assets/soundcheck-jira-integration-authorization.png"
  />
</Frame>

To enable the Jira integration, go to `Soundcheck > Integrations > Jira` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - Jira](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/jira).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-jira-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=fe2a1fc410b335db32d7c0d6e68b3284"
    alt="Soundcheck - Jira Integration
Configuration"
    width="3456"
    height="1782"
    data-path="portal/assets/soundcheck-jira-integration-configuration.png"
  />
</Frame>

#### Kubernetes Integration

As a prerequisite to enabling the Kubernetes integration, you must configure your Kubernetes instance details.
Go to **Plugins** and open the **Kubernetes** plugin settings and enter the details according to the backstage Kubernetes plugin [docs](https://backstage.io/docs/features/kubernetes/configuration).

Additionally, you can configure Google authentication by going to **Plugins** and opening the **Soundcheck** plugin settings, and entering `jsonKey` under `soundcheck.collectors.kubernetes.google`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-kubernetes-integration-authorization.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=2776421452a49e40e5bc27bf8293227b"
    alt="Soundcheck - Kubernetes Integration
Authorization"
    width="3456"
    height="1782"
    data-path="portal/assets/soundcheck-kubernetes-integration-authorization.png"
  />
</Frame>

To enable the Kubernetes integration, go to `Soundcheck > Integrations > Kubernetes` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - Kubernetes](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/kubernetes).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-kubernetes-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=e0cf6674c3e400b492e4bf63aa45bc44"
    alt="Soundcheck - Kubernetes Integration
Configuration"
    width="3456"
    height="1784"
    data-path="portal/assets/soundcheck-kubernetes-integration-configuration.png"
  />
</Frame>

#### NewRelic Integration

As a prerequisite to enabling the NewRelic integration, you must configure your NewRelic instance details.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `baseUrl` and `apiKey` under `soundcheck.collectors.newrelic`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-newrelic-integration-authorization.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=581d99c328d0778391775fe3dbb16335"
    alt="Soundcheck - NewRelic Integration
Authorization"
    width="3456"
    height="1778"
    data-path="portal/assets/soundcheck-newrelic-integration-authorization.png"
  />
</Frame>

To enable the NewRelic integration, go to `Soundcheck > Integrations > NewRelic` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - NewRelic](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/newrelic).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-newrelic-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=51f6cb19d94a352b695c2737ed10e1e9"
    alt="Soundcheck - NewRelic Integration
Configuration"
    width="3456"
    height="1772"
    data-path="portal/assets/soundcheck-newrelic-integration-configuration.png"
  />
</Frame>

Note: The `newrelic.com/entity-guid` entity annotation can be set as a filter for NewRelic `entity` integration.
The `newrelic.com/tag` entity annotation can be set as a filter for NewRelic `entity-search` integration.
The `newrelic.com/account-id` entity annotation can be set as a filter for NewRelic `policies-search` integration.

#### PagerDuty Integration

As a prerequisite to enabling the PagerDuty integration, you must configure your PagerDuty instance details.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `server` and `token` under `soundcheck.collectors.pagerduty`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-pagerduty-integration-authorization.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=5a9bd02357a038140b4aa76e1708ffe1"
    alt="Soundcheck - PagerDuty Integration
Authorization"
    width="3456"
    height="1778"
    data-path="portal/assets/soundcheck-pagerduty-integration-authorization.png"
  />
</Frame>

To enable the PagerDuty integration, go to `Soundcheck > Integrations > PagerDuty` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - PagerDuty](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/pagerduty).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-pagerduty-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=f03f7cd54119355aff21d24d120d3fa0"
    alt="Soundcheck - PagerDuty Integration
Configuration"
    width="3456"
    height="1782"
    data-path="portal/assets/soundcheck-pagerduty-integration-configuration.png"
  />
</Frame>

Note: Either `pagerduty.com/service-id` or `pagerduty.com/integration-key` entity annotation is required for PagerDuty integration to work. If it's missing the facts won't be collected for an entity.

#### SonarQube Integration

As a prerequisite to enabling the SonarQube integration, you must configure your SonarQube instance details.
Go to **Plugins** and open the **Soundcheck** plugin settings and enter the `baseUrl` and either `token` or `username` and `password` under `soundcheck.collectors.sonarqube`.

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-sonarqube-integration-authorization.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=59f928f32a195ac1d2c466639cdb770f"
    alt="Soundcheck - SonarQube Integration
Authorization"
    width="3456"
    height="1782"
    data-path="portal/assets/soundcheck-sonarqube-integration-authorization.png"
  />
</Frame>

To enable the SonarQube integration, go to `Soundcheck > Integrations > SonarQube` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - SonarQube](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/sonarqube).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-sonarqube-integration-configuration.png?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=204723b6235e3402f5f459122b16189f"
    alt="Soundcheck - SonarQube Integration
Configuration"
    width="3450"
    height="1774"
    data-path="portal/assets/soundcheck-sonarqube-integration-configuration.png"
  />
</Frame>

Note: The `sonarqube.org/project-key` entity annotation is required for SonarQube integration to work. If it's missing the facts won't be collected for an entity.

#### Data Registry Integration

As a prerequisite to enabling the Data Registry integration, you should enable and configure your [Data Registry settings](./data-experience/configuration) in Portal.

To enable the Data Registry integration, go to `Soundcheck > Integrations > Data Registry` and click the `Configure` button.
Find out more in the [Soundcheck plugin documentation - Fact Collectors - Third Party Integrations - Data Registry](/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/data-registry).

<Frame>
  <img
    src="https://mintcdn.com/spotify-89f50c35/dFo4Vo16_G9q5ypn/portal/assets/soundcheck-data-registry-integration-configuration.jpg?fit=max&auto=format&n=dFo4Vo16_G9q5ypn&q=85&s=ebbea9796a062bd42e5ed64130aa0938"
    alt="Soundcheck - Data Registry Integration
Configuration"
    width="1860"
    height="1127"
    data-path="portal/assets/soundcheck-data-registry-integration-configuration.jpg"
  />
</Frame>
