- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`Software Catalog uses definition schemas to store and display relevant metadata about your services. The schemas have built-in validation rules to ensure that only valid values are accepted. You can view warnings in the Definition tab on the Software Catalog side panel for any selected services.
Datadog supports four versions of the definition schema:
Each version builds upon the previous one, adding new functionality while maintaining backwards compatibility. Choose the version that best suits your needs and infrastructure complexity.
The following features are supported in each version:
Feature | v3.0 | v2.2 | v2.1 | v2.0 |
---|---|---|---|---|
Basic Metadata | ||||
Service Groupings | ||||
User Annotations | ||||
CI Pipeline Associations | ||||
Expanded Data Model | ||||
Multi-ownership | ||||
Manual Dependency Declaration |
For detailed information about each version, including full schemas and example YAML files, see the individual version pages in Supported versions.
codeLocations
section in v3.0 specifies the locations of the code with the repository that contains the code and its associated paths
. The paths
attribute is a list of globs that should match paths in the repository.You can see the full schema definitions on Github.
V3.0 contains the following changes from v2.2:
schema_version
is now apiVersion
kind
field is new and defines the type of component: service, queue, datastore, system, or APIdd-service
is now metadata.name
team
is now owner
and additionalOwners
if there are multiple teamslifecycle
, tier
, languages
, and type
are now under spec
links
, contacts
, and description
, and tags
are now under metadataapplication
has been enhanced to become its own kind: system
. It no longer exists as a discrete field on a service.kind:system
entity.datadog.yaml
apiVersion: v3
kind: system
metadata:
name: myapp
displayName: My App
tags:
- tag:value
links:
- name: shopping-cart runbook
type: runbook
url: https://runbook/shopping-cart
- name: shopping-cart architecture
provider: gdoc
url: https://google.drive/shopping-cart-architecture
type: doc
- name: shopping-cart Wiki
provider: wiki
url: https://wiki/shopping-cart
type: doc
- name: shopping-cart source code
provider: github
url: http://github/shopping-cart
type: repo
contacts:
- name: Support Email
type: email
contact: team@shopping.com
- name: Support Slack
type: slack
contact: https://www.slack.com/archives/shopping-cart
owner: myteam
additionalOwners:
- name: opsTeam
type: operator
integrations:
pagerduty:
serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart
opsgenie:
serviceURL: https://www.opsgenie.com/service/shopping-cart
region: US
spec:
components:
- service:myservice
- service:otherservice
extensions:
datadoghq.com/shopping-cart:
customField: customValue
datadog:
codeLocations:
- repositoryURL: https://github.com/myorganization/myrepo.git
paths:
- path/to/service/code/**
events:
- name: "deployment events"
query: "app:myapp AND type:github"
- name: "event type B"
query: "app:myapp AND type:github"
logs:
- name: "critical logs"
query: "app:myapp AND type:github"
- name: "ops logs"
query: "app:myapp AND type:github"
pipelines:
fingerprints:
- fp1
- fp2
kind:custom.library
entity.datadog.yaml
apiVersion: v3
kind: custom.library
metadata:
name: my-library
displayName: My Library
tags:
- tag:value
links:
- name: shopping-cart runbook
type: runbook
url: https://runbook/shopping-cart
- name: shopping-cart architecture
provider: gdoc
url: https://google.drive/shopping-cart-architecture
type: doc
- name: shopping-cart Wiki
provider: wiki
url: https://wiki/shopping-cart
type: doc
- name: shopping-cart source code
provider: github
url: http://github/shopping-cart
type: repo
contacts:
- name: Support Email
type: email
contact: team@shopping.com
- name: Support Slack
type: slack
contact: https://www.slack.com/archives/shopping-cart
owner: myteam
additionalOwners:
- name: opsTeam
type: operator
If a single component is part of multiple systems, you must specify that component in the YAML for each system. For example, if the datastore orders-postgres
is a component of both a postgres fleet and a web application, specify two YAMLs:
For the postgres fleet (managed-postgres
), specify a definition for kind:system
:
entity.datadog.yaml
apiVersion: v3
kind: system
spec:
components:
- datastore:orders-postgres
- datastore:foo-postgres
- datastore:bar-postgres
metadata:
name: managed-postgres
owner: db-team
For the web application (shopping-cart
), declare a separate definition for kind:system
:
entity.datadog.yaml
apiVersion: v3
kind: system
spec:
lifecycle: production
tier: critical
components:
- service:shopping-cart-api
- service:shopping-cart-processor
- queue:orders-queue
- datastore:orders-postgres
metadata:
name: shopping-cart
owner: shopping-team
additionalOwners:
- name: sre-team
type: operator
---
apiVersion: v3
kind: datastore
metadata:
name: orders-postgres
additionalOwners:
- name: db-team
type: operator
---
apiVersion: v3
kind: service
metadata:
name: shopping-cart-api
---
apiVersion: v3
kind: service
metadata:
name: shopping-cart-processor
---
The inheritFrom
field instructs the ingestion pipeline to inherit metadata from the entity’s metadata referenced by <entity_kind>:<name>
.
entity.datadog.yaml
inheritFrom:<entity_kind>:<name>
Components (kind:service
, kind:datastore
, kind:queue
, kind:ui
) inherit all metadata from the system that they belong to under the following conditions:
inheritFrom:<entity_kind>:<name>
is absent in the YAML file.v3.0 supports the same methods of creating metadata as previous versions, including Github, API, Terraform, Backstage, ServiceNow, and the UI. However, there are new API endpoints and a new Terraform module for v3.0.
To create, get, and delete definitions for all entity types like endpoints, systems, datastores, and queues, see the Software Catalog API reference.
type
and languages
ci-pipeline-fingerprints
contact.type
and link.type
The full schema is available on GitHub.
Example YAML:
schema-version: v2.2
dd-service: shopping-cart
team: e-commerce
application: shopping-app
tier: "1"
type: web
languages:
- go
- python
contacts:
- type: slack
contact: https://yourorg.slack.com/archives/e-commerce
- type: email
contact: ecommerce@example.com
- type: microsoft-teams
contact: https://teams.microsoft.com/example
links:
- name: Runbook
type: runbook
url: http://runbook/shopping-cart
- name: Source
type: repo
provider: github
url: https://github.com/shopping-cart
- name: Deployment
type: repo
provider: github
url: https://github.com/shopping-cart
- name: Config
type: repo
provider: github
url: https://github.com/consul-config/shopping-cart
- name: E-Commerce Team
type: doc
provider: wiki
url: https://wiki/ecommerce
- name: Shopping Cart Architecture
type: doc
provider: wiki
url: https://wiki/ecommerce/shopping-cart
- name: Shopping Cart RFC
type: doc
provider: google doc
url: https://doc.google.com/shopping-cart
tags:
- business-unit:retail
- cost-center:engineering
integrations:
pagerduty:
service-url: https://www.pagerduty.com/service-directory/PSHOPPINGCART
opsgenie:
service-url: "https://www.opsgenie.com/service/uuid"
region: "US"
ci-pipeline-fingerprints:
- id1
- id2
extensions:
additionalProperties:
customField1: customValue1
customField2: customValue2
application
, tier
, and lifecycle
Application
and Teams
can be used as grouping variables in Software CatalogLifecycle
field indicates development stage to differentiate between production
, experimental
, or deprecated
servicesTier
field indicates service criticality for prioritizing during incident triageThe full schema is available on GitHub.
Example YAML:
schema-version: v2.1
dd-service: delivery-state-machine
team: serverless
application: delivery-state-machine
tier: tier0
lifecycle: production
contacts:
- type: slack
contact: https://datadogincidents.slack.com/archives/C01EWN6319S
links:
- name: Demo Dashboard
type: dashboard
url: https://app.datadoghq.com/dashboard/krp-bq6-362
- name: Source
provider: github
url: https://github.com/DataDog/shopist-serverless/tree/main/delivery-state-machine
type: repo
- name: Deployment
provider: github
url: https://github.com/DataDog/shopist-serverless/blob/main/delivery-state-machine/serverless.yml
type: repo
- name: Datadog Doc
provider: link
url: https://docs.datadoghq.com/
type: doc
tags:
- "app:serverless-delivery"
- "tier:3"
- "business-unit:operations"
The full schema is available on GitHub.
Example YAML:
schema-version: v2
dd-service: delivery-api
team: distribution-management
contacts:
- type: slack
contact: https://datadogincidents.slack.com/archives/C01EWN6319S
links:
- name: Demo Dashboard
type: dashboard
url: https://app.datadoghq.com/dashboard/krp-bq6-362
repos:
- name: Source
provider: github
url: https://github.com/DataDog/shopist/tree/prod/rails-storefront
docs:
- name: Datadog Doc
provider: link
url: https://docs.datadoghq.com/
tags: []
integrations:
pagerduty: https://datadog.pagerduty.com/service-directory/PXZNFXP
The extensions
field is supported in all versions. You can incorporate this custom field into deployment processes to standardize and codify best practices.
service.datadog.yaml
schema-version: v2.2
dd-service: web-store
team: shopist
...
extensions:
shopist.com/release-scheduler:
release-manager:
slack: "release-train-shopist"
schedule: "* * * * *"
env:
- name: "staging"
ci_pipeline: "//domains/examples/apps/hello-joe/config/k8s:release-staging"
branch: "hello-joe/staging"
schedule: "* * * * 1"
Datadog provides a JSON Schema for definitions so that when you are editing a definition in a supporting IDE, features such as autocomplete and validation are provided.
The JSON schema for Datadog definitions is registered with the open source Schema Store.