Generate exhaustively complete and accurate Datadog Software Catalog entity YAML files (v3 schema) by examining project source code and interviewing engineers. Use when engineers need to create or update entity.datadog.yaml files for services, datastores, queues, APIs, or systems. Triggers include: "create entity yaml", "generate service catalog entry", "document this project in datadog", "create service definition", "add to software catalog", or any request involving Datadog entity/service documentation. Supports all v3 entity kinds: service, datastore, queue, api, system. Fetches existing Datadog data via API. Validates against official JSON schema. Merges with existing definitions. Outputs to .datadog/ directory.
Generate comprehensive, validated Datadog Software Catalog entity YAML files (v3 schema) through project analysis and engineer interviews.
.datadog/Run the project analyzer to extract metadata signals:
uv run scripts/project_analyzer.py /path/to/project
Detected signals:
pyproject.toml, package.json, pom.xml, build.gradle → name, description, language, dependenciesDockerfile, docker-compose.yml → service type, dependencieskubernetes/, helm/, terraform/ → infrastructure, dependencies.github/workflows/, .gitlab-ci.yml → CI/CD pipelinesREADME.md, CODEOWNERS → description, owners.datadog/entity.datadog.yaml → merge baseopenapi.yaml, swagger.json → API definitionsOutput: JSON with detected values and confidence levels.
Query Datadog API for context (requires DD_API_KEY and DD_APP_KEY in environment):
uv run scripts/datadog_fetcher.py --service-name <name>
Fetches:
Conduct structured interview to fill gaps. See references/interview-guide.md for complete question bank.
Interview strategy:
Core questions by entity kind:
critical, high, medium, lowproduction, experimental, deprecatedweb, grpc, rest, graphql, worker, custompostgres, mysql, redis, mongodb, elasticsearch, cassandra, dynamodb, etc.kafka, rabbitmq, sqs, kinesis, pubsub, etc.openapi, graphql, rest, grpcRequired tags (HMH standards):
env: (production, staging, development)service: (service name)tier: (critical, high, medium, low)Use the entity generator with collected data:
uv run scripts/entity_generator.py --input collected_data.json --output .datadog/
Multi-entity support: For monorepos, generate multiple entities separated by --- in single file or separate files.
Validate against official Datadog JSON schema:
uv run scripts/schema_validator.py .datadog/entity.datadog.yaml
Validation checks:
key:value)If .datadog/entity.datadog.yaml exists:
Output location: .datadog/entity.datadog.yaml
See references/v3-schema.md for complete schema documentation.
apiVersion: v3
kind: service # service | datastore | queue | api | system
metadata:
name: my-service # Required, unique identifier
displayName: My Service # Human-readable name
namespace: default # Optional, defaults to 'default'
owner: team-name # Primary owner team
additionalOwners: # Multi-ownership
- name: sre-team
type: operator
description: Short description
tags:
- env:production
- service:my-service
- tier:critical
contacts:
- name: On-Call
type: email
contact: oncall@company.com
- name: Team Channel
type: microsoft-teams
contact: https://teams.microsoft.com/l/channel/...
links:
- name: Runbook
type: runbook
url: https://confluence.company.com/runbook
- name: Dashboard
type: dashboard
url: https://app.datadoghq.com/dashboard/xxx
- name: Source Code
type: repo
provider: github
url: https://github.com/org/repo
spec:
lifecycle: production # production | experimental | deprecated
tier: critical # critical | high | medium | low
# ... kind-specific fields
integrations:
pagerduty:
serviceURL: https://company.pagerduty.com/service-directory/PXXXXXX
datadog:
codeLocations:
- repositoryURL: https://github.com/org/repo
paths:
- "src/**"
logs:
- name: Error Logs
query: "service:my-service status:error"
events:
- name: Deployments
query: "source:kubernetes service:my-service"
extensions:
company.com/jira-project: PROJ
company.com/confluence-space: https://confluence.company.com/space
spec:
type: web # web | grpc | rest | graphql | worker
languages:
- python
- go
dependsOn:
- service:auth-service
- datastore:postgres-main
- queue:events-kafka
componentOf:
- system:platform
spec:
type: postgres # postgres | mysql | redis | mongodb | etc.
dependencyOf: # Services that depend on this
- service:api-service
spec:
type: kafka # kafka | rabbitmq | sqs | kinesis
componentOf:
- system:messaging
spec:
components:
- service:web-frontend
- service:api-backend
- datastore:main-db
- queue:events
See references/integration-patterns.md for complete patterns.
PagerDuty: https://<subdomain>.pagerduty.com/service-directory/P<alphanumeric>
JIRA: Extension field company.com/jira-project: <PROJECT_KEY>
Confluence: Link with type: doc, provider: confluence
MS Teams: Contact with type: microsoft-teams, URL format: https://teams.microsoft.com/l/channel/...
Snyk/SonarQube/BrowserStack/Orca: Custom extensions field
| Script | Purpose |
|--------|---------|
| scripts/project_analyzer.py | Analyze project for metadata signals |
| scripts/datadog_fetcher.py | Fetch existing Datadog entities and context |
| scripts/entity_generator.py | Generate entity YAML from collected data |
| scripts/schema_validator.py | Validate YAML against JSON schema |
npx skills add zircote/datadog-entity-generator下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer