Datadog Service Catalog is a centralized hub for your development teams to discover and understand critical components in your runtime envrionments. If you are using products that provide application performance telemetries such as APM, USM, and RUM, you can take advantage of the auto-discovery feature. If not, you can create your Service Catalog based on your existing knowledge base (with open-source solutions like Backstage or managed solutions like ServiceNow) or create entries from service tags from other Datadog products like infrastructure monitoring and Log Management.
Automatic service discovery
Datadog Service Catalog includes both eBPF-based autodiscovery with Universal Service Monitoring and distributed tracing based detection with APM. RUM applications are included in the Service Catalog as well. If you are using any of these products, your catalog is pre-populated with entries.
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.
To add your own services to Service Catalog, you can either manually add them by creating Service Definitions through the API or GitHub integration or import them from existing sources like ServiceNow or Backstage. These services are by default not associated with any Datadog telemetry, but you can link telemetries from Datadog or external sources manually using service.datadog.yaml files.
To create a user-defined service, 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:
You can register multiple services in one YAML file by separating each definition with three dashes (---).
Import data from other sources
Backstage
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.
Manual Service Discovery through other Datadog telemetries
To discover additional 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_SERVICEtag.
After 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.
Further reading
Additional helpful documentation, links, and articles: