Adding Entries to Service Catalog

Overview

Datadog Service Catalog includes all discovered services from APM, USM, and RUM by default. If you are using any of these products, your catalog is pre-populated with entries. If you are not, there are many other ways to add services to your Service Catalog.

Opt in to the private beta!

Datadog automatically discovers the dependencies of instrumented services, including databases or third-party APIs, even if the dependency hasn't been instrumented. The Service Catalog lists these as separate entries. To differentiate auto-detected components from instrumented services, you can request access to the private beta for inferred services.

Request Access

Create user-defined services

You can add services to Service Catalog that are not associated with any Datadog telemetry. To create such an entry, name your service in the dd-service field in a service.datadog.yaml file at the root of the repository, using one of the supported metadata schema versions. For example:

Example

service.datadog.yaml

schema-version: v2.1
dd-service: my-unmonitored-cron-job
team: shopist
contacts:
 - type: slack
   contact: https://datadogincidents.slack.com/archives/XXXXX
application: shopist
description: important cron job for shopist backend
tier: tier1
lifecycle: production
links:
 - name: Common Operations
   type: runbook
   url: https://datadoghq.atlassian.net/wiki/
 - name: Disabling Deployments
   type: runbook
   url: https://datadoghq.atlassian.net/wiki/
tags: []
integrations:
 pagerduty:
   service-url: https://datadog.pagerduty.com/service-directory/XXXXXXX
External Resources (Optional)

You can register multiple services in one YAML file by separating each definition with three dashes (---).

Discover additional services

To discover other services through existing Datadog telemetry such as infrastructure metrics, navigate to the Setup & Config tab on the top of the page and click on the Import Entries tab. You can import services from other Datadog telemetry containing the DD_SERVICE tag.

Import Entries tab in the Service Catalog setup and configuration section

Once you have imported some entries, they appear in the Explore tab. Entries may expire unless you add metadata such as the owner or contacts by using the API or the GitHub integration.

To remove your imported services from the default Explore view, click Clear Previously Imported Services. This removes all services that do not have metadata or do not have APM, Universal Service Monitoring (USM), or Real User Monitoring (RUM) telemetry.

Confirm the deletion of previously imported services in the Service Catalog setup and configuration section

Import data from other sources

Backstage

Service panel highlighting backstage metadata, links and definition

If you already have data or services registered in Backstage, you can import these services into Datadog directly.

If you use API or Terraform, replace the YAMLs in your requests.

If you use GitHub integration, directly save your Backstage YAMLs to a repo with Datadog read permission. Datadog scans for files named catalog-info.yaml located at the root folder of a repo.

Upon import, the following occurs:

  • Datadog only recognizes kind:component in Backstage YAMLs as services
  • metadata.name gets mapped to dd-service
  • metadata.namespace gets mapped to a custom tag with the format namespace:${metadata.namespace}
  • spec.lifecycle gets mapped to lifecycle
  • spec.owner gets mapped to team
  • metadata.links gets mapped to links
    • The annotation github.com/project-slug maps to a link with type=repo and url=https://www.github.com/${github.com/project-slug}
  • metadata.description gets mapped to description
  • spec.system gets mapped to application
  • Other spec values get mapped to custom tags

ServiceNow

You can populate your Datadog Service Catalog with services from your ServiceNow CMDB by using the Service Ingestion feature in the Datadog-ServiceNow integration.

Further reading