dd-apm — скилл для Claude Code: Datadog APM, трейсы и DSM
Скилл для работы с Datadog APM: установка агента, автоинструментация, разбор трейсов и мониторинг очередей. Пригодится, когда сервис уже в Datadog, а вы не помните, с чего начать.
npx skills add datadog-labs/agent-skills --skill dd-apm -a claude-codeЧто делает dd-apm
Скилл разводит запросы по маршрутам. Упомянули Kubernetes, EKS, GKE, helm или DatadogAgent CR — агент читает инструкции по SSI на кластере. Один хост, VM или EC2 без оркестратора — идёт по linux-ветке. Отдельные маршруты есть для переименования сервисов и для Data Streams Monitoring.
Внутри — не один файл, а дерево подскиллов: k8s-ssi/agent-install, enable-ssi, verify-ssi, service-remapping, enable-dsm. Каждый маршрут идёт в паре с антипаттерном, который выглядит рабочим, но молча ломается. Например, обычный helm install datadog datadog/datadog не поддерживает SSI через DatadogAgent CR, а ddtrace-run в коде при SSI не нужен вовсе — автоинструментация обходится без правок приложения.
Для запросов к данным скилл гоняет команды pup: pup apm services list, pup traces search, pup apm flow-map. Нужен установленный Datadog Labs Pup и вход через pup auth login. Тег окружения скилл советует сначала подтвердить у вас, а не подставлять prod самому. DSM включается одной настройкой на сервис, но перед этим скилл требует сказать, что на базовом APM она тарифицируется отдельно.
Какие задачи решает
- поставить Datadog Agent на кластер с автоинструментацией через SSI
- включить SSI на одном хосте или EC2 без оркестратора
- переименовать сервис в Datadog без раскатки новой версии
- найти медленные трейсы по сервису и порогу длительности
- включить мониторинг лага очередей между сервисами
Примеры запросов агенту
- поставь Datadog APM на EKS через SSI
- мой сервис в Datadog показывается под неправильным именем, поправь
- включи DSM для потока Kafka между сервисами
Как установить dd-apm
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-apm -a claude-code2Вручную: положить файлы
~/.claude/skills/dd-apm/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dd-apm/
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-apm -a codex2Вручную: положить файлы
.agents/skills/dd-apm/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-apm -a cursor2Вручную: положить файлы
.cursor/skills/dd-apm/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install datadog-labs/agent-skills dd-apm2Вручную: положить файлы
.github/skills/dd-apm/SKILL.md1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-apm -a gemini-cli2Командой платформы
gemini skills install https://github.com/datadog-labs/agent-skills --path dd-apmВручную: положить файлы
.devin/skills/dd-apm/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-apm -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о dd-apm
Как установить dd-apm в Claude?
Выполните npx skills add datadog-labs/agent-skills --skill dd-apm -a claude-code. Скилл окажется в ~/.claude/skills/dd-apm/SKILL.md.
Что делает dd-apm?
Помогает настроить Datadog APM: установить агент, включить автоинструментацию, разобрать трейсы и карту зависимостей, подключить Data Streams Monitoring.
Что нужно для работы dd-apm?
Установленный Datadog Labs Pup и авторизация через pup auth login. Тег окружения скилл советует подтвердить у вас, а не подставлять самому.
Исходный текст
SKILL.md · MIT
---
name: dd-apm
description: APM - install, onboard, instrument, enable, set up, configure, traces, services, dependencies, performance analysis, Data Streams Monitoring (DSM), queue lag, pipeline latency. Use for any request involving Datadog APM setup, instrumentation (SSI, ddtrace, agent install), or analysis.
alwaysApply: true
metadata:
version: "1.2.0"
author: datadog-labs
repository: https://github.com/datadog-labs/agent-skills
tags: datadog,apm,tracing,dsm,data-streams,performance,distributed-tracing,dd-apm,install,onboarding,instrumentation,ssi,agent
globs: "**/ddtrace*,**/datadog*.yaml,**/*trace*"
---
# Datadog APM
Distributed tracing, service maps, and performance analysis.
## Routing — Read This First
Match the user's request to one of the entries below. Each entry has the same shape: **triggers** → which sub-skill to load → the anti-pattern to avoid. If a request seems to fit more than one entry, see "Overlap disambiguation". If nothing matches, see "None of the above" at the end.
---
**Kubernetes APM install / instrument / onboard** — trigger when the user mentions Kubernetes, K8s, EKS, GKE, AKS, kind, minikube, K3s, helm, DatadogAgent CR, kubectl, SSI on a cluster, pod injection, or init containers.
**Immediately read** `.claude/skills/dd-apm/k8s-ssi/agent-install/SKILL.md` now, then `.claude/skills/dd-apm/k8s-ssi/enable-ssi/SKILL.md`, then `.claude/skills/dd-apm/k8s-ssi/verify-ssi/SKILL.md` — do not proceed from memory.
> **Common wrong approaches that LOOK like they work but silently fail:**
> - `helm install datadog datadog/datadog` — the standard chart does NOT support SSI via DatadogAgent CR.
> - Adding `ddtrace` imports or `ddtrace-run` to the app — SSI auto-instruments WITHOUT any code changes.
> - `admission.datadoghq.com/enabled` annotations — that's admission controller config injection, not SSI init container injection.
---
**Linux APM install / instrument / onboard** — trigger when the user mentions a single host, VM, EC2 instance, bare-metal, RHEL/Ubuntu/Debian, systemd, or no orchestrator.
**Immediately read** `.claude/skills/dd-apm/linux-ssi/agent-install/SKILL.md` now, then `.claude/skills/dd-apm/linux-ssi/enable-ssi/SKILL.md`, then `.claude/skills/dd-apm/linux-ssi/verify-ssi/SKILL.md` — do not proceed from memory.
> **Do NOT** install the agent via plain `apt-get install datadog-agent` (or yum equivalent) and assume SSI follows — host auto-instrumentation requires the install script with the SSI flags, which the sub-skill walks through.
---
**Service rename / service remapping** — trigger when the user mentions renaming a service, collapsing multiple service names, stripping suffixes/prefixes, or cleaning up inferred services.
**Immediately read** `.claude/skills/dd-apm/service-remapping/SKILL.md` now — do not proceed from memory.
> **Do NOT** change `tags.datadoghq.com/service` labels or `DD_SERVICE` env vars to rename a service in Datadog. That requires a rollout and only affects new data. Use a service remapping rule — it rewrites the name at ingestion time with no deployment change.
---
**Data Streams Monitoring (DSM) / queue and pipeline monitoring**: trigger when the user mentions data streams, DSM, consumer or queue lag, pipeline latency, end-to-end latency across queues, or monitoring Kafka / RabbitMQ / SQS / SNS / Kinesis / Pub/Sub flows between services.
**Immediately read** `.claude/skills/dd-apm/enable-dsm/SKILL.md` now. Do not proceed from memory.
> **Do NOT** install a separate DSM agent, package, or library. DSM runs in the Datadog SDK that APM already injected and is enabled with one setting per service. **Do NOT** enable it without first telling the user it is included with APM Pro and Enterprise and billed separately on base APM.
---
### Overlap disambiguation
When a request could plausibly fit more than one entry above, use these tiebreakers:
| Hint | Route to |
|---|---|
| Cluster orchestrator mentioned (EKS/GKE/AKS/kind/K3s/minikube) — even if "just one node" | k8s-ssi |
| Single host, VM, or EC2 with no orchestrator | linux-ssi |
| "Several services that should be one" | service-remapping — the sub-skill picks the rule type based on whether the duplicates are real instrumented services or inferred entities (DBs, queues, external APIs) |
| "My service shows under the wrong name" | First check `DD_SERVICE` on the deploy. If correct and the name is still wrong → service-remapping. |
| "Monitor Kafka" / "monitor my queues" | Ask whether they mean broker/cluster health (Kafka Console, an Agent check: https://docs.datadoghq.com/data_streams/kafka/setup/) or message flow between their services (enable-dsm) |
| "Reduce APM volume / cost / noise" | No sub-skill yet. Ask whether the user means sampling (fewer ingested traces) or retention filters (less indexed data) before suggesting commands. |
---
### None of the above
If the request doesn't match any entry above, continue reading the trace-search, service analysis, and metrics content below. If even that doesn't fit, **ask the user to clarify** — do not invent a workflow.
---
## Requirements
Datadog Labs Pup should be installed. See [Setup Pup](https://github.com/datadog-labs/agent-skills/tree/main?tab=readme-ov-file#setup-pup) if not.
## Command Execution Order (Token-Efficient)
For scoped commands, use this order:
1. Check context first (prior outputs, conversation, saved values).
2. If a required value is missing, run a discovery command first.
3. If still ambiguous, ask the user to confirm.
4. Then run the target command.
5. Avoid speculative commands likely to fail.
## Quick Start
```bash
pup auth login
# Confirm env tag with the user first (do not assume production/prod/prd).
pup apm services list --env <env> --from 1h --to now
pup traces search --query "service:api-gateway" --from 1h
```
## Services
### List Services
```bash
pup apm services list --env <env> --from 1h --to now
pup apm services stats --env <env> --from 1h --to now
```
### Service Stats
```bash
pup apm services stats --env <env> --from 1h --to now
```
### Service Map
```bash
# View dependencies
pup apm flow-map --query "service:api-gateway&from=$(($(date +%s)-3600))000&to=$(date +%s)000" --env <env> --limit 10
```
## Traces
### Search Traces
```bash
# By service
pup traces search --query "service:api-gateway" --from 1h
# Errors only
pup traces search --query "service:api-gateway status:error" --from 1h
# Slow traces (>1s)
pup traces search --query "service:api-gateway @duration:>1000ms" --from 1h
# With specific tag
pup traces search --query "service:api-gateway @http.url:/api/users" --from 1h
```
### Trace Detail
```bash
# No direct get command for a single trace ID.
# Use traces search with a narrow query and time window.
pup traces search --query "trace_id:<trace_id>" --from 1h
```
## Key Metrics
| Metric | What It Measures |
|--------|------------------|
| `trace.http.request.hits` | Request count |
| `trace.http.request.duration` | Latency |
| `trace.http.request.errors` | Error count |
| `trace.http.request.apdex` | User satisfaction |
## Service Level Objectives
Link APM to SLOs:
```bash
pup slos create --file slo.json
```
## Common Queries
| Goal | Query |
|------|-------|
| Slowest endpoints | `avg:trace.http.request.duration{*} by {resource_name}` |
| Error rate | `sum:trace.http.request.errors{*} / sum:trace.http.request.hits{*}` |
| Throughput | `sum:trace.http.request.hits{*}.as_rate()` |
## Troubleshooting
| Problem | Fix |
|---------|-----|
| No traces | Check ddtrace installed, DD_TRACE_ENABLED=true |
| Missing service | Verify DD_SERVICE env var |
| Traces not linked | Check trace headers propagated |
| High cardinality | Don't tag with user_id/request_id |
## References/Docs
- [APM Setup](https://docs.datadoghq.com/tracing/)
- [Trace Search](https://docs.datadoghq.com/tracing/trace_explorer/)
© datadog-labs · MIT · datadog-labs/agent-skills