onboarding-summary — Claude Code skill: APM setup report
Builds a live report proving Single Step Instrumentation works in Kubernetes, with deep links into the Datadog UI.
npx skills add datadog-labs/agent-skills --skill onboarding-summary -a claude-codeWhat onboarding-summary does
Reach for this skill once verify-ssi has passed and troubleshoot-ssi has cleared its checks. It queries the cluster and Datadog, then prints a table: how many agent pods are running, whether instrumentation targets the right namespace, whether the datadog-lib-<language>-init init container landed in the pod spec, whether the service shows up in APM, and whether traces arrived in the last hour.
Several values have to be resolved first: AGENT_NAMESPACE, APP_NAMESPACE, APP_LABEL, CLUSTER_NAME, SERVICE_NAME, ENV and DD_SITE. Some come from the Deployment manifest, others from datadog-agent.yaml. The skill then checks auth with pup auth status --site <DD_SITE> and opens a browser login if the token is missing. No working pup token means no report, so that check is worth doing up front.
The output ends with clickable links to the service overview, trace explorer, service map and agent fleet. Any value that cannot be confirmed gets marked failed and points back to troubleshoot-ssi. One rule is stated outright: a raw API key never goes into a file or a chat message.
What it helps with
- confirm APM instrumentation works end to end
- check the init container was actually injected into the pod spec
- verify traces reach Datadog within the last hour
- collect service, trace and service-map links in one report
- spot an SSI setup that quietly broke somewhere
Example prompts for the agent
- Is everything working for my service?
- Show me the APM status for the payments namespace
- Confirm APM is set up after enable-ssi
How to install onboarding-summary
1Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill onboarding-summary -a claude-code2Manually: put the files in place
~/.claude/skills/onboarding-summary/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/onboarding-summary/
1Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill onboarding-summary -a codex2Manually: put the files in place
.agents/skills/onboarding-summary/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill onboarding-summary -a cursor2Manually: put the files in place
.cursor/skills/onboarding-summary/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install datadog-labs/agent-skills onboarding-summary2Manually: put the files in place
.github/skills/onboarding-summary/SKILL.md1Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill onboarding-summary -a gemini-cli2Platform CLI
gemini skills install https://github.com/datadog-labs/agent-skills --path dd-apm/k8s-ssi/onboarding-summaryManually: put the files in place
.devin/skills/onboarding-summary/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill onboarding-summary -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about onboarding-summary
How do I install onboarding-summary in Claude?
Run npx skills add datadog-labs/agent-skills --skill onboarding-summary -a claude-code. The skill file lands at ~/.claude/skills/onboarding-summary/SKILL.md.
What does onboarding-summary do?
It produces a confirmation report that Single Step Instrumentation is in place and APM is working: agent pods, instrumentation config, init container, service visibility and incoming traces. Each row comes with a link into Datadog.
When should I run it?
Only after agent-install and enable-ssi both finished successfully and the verify-ssi and troubleshoot-ssi checks are clean. Anything still failing should be fixed first.
Source text
SKILL.md · MIT
---
name: onboarding-summary
description: Generate a live Single Step Instrumentation (SSI) onboarding confirmation report — verifies APM instrumentation is working end-to-end with deep links into the Datadog UI. Only use after agent-install and enable-ssi have both completed successfully.
metadata:
version: "1.0.0"
author: datadog-labs
repository: https://github.com/datadog-labs/agent-skills
tags: datadog,apm,kubernetes,ssi,summary,verification
alwaysApply: "false"
---
# APM Onboarding Summary
## Triggers
Invoke this skill when:
- All steps in `verify-ssi` have passed
- All checks in `troubleshoot-ssi` have been resolved
- The user asks "is everything working?", "show me the status", or "confirm APM is set up"
Do NOT invoke this skill if any verification or troubleshooting check is still failing — resolve those first.
---
## Context to resolve before acting
| Variable | How to resolve |
|---|---|
| `AGENT_NAMESPACE` | Namespace where Datadog Agent is installed |
| `APP_NAMESPACE` | Namespace of the application |
| `APP_LABEL` | Check `spec.selector.matchLabels.app` in the Deployment manifest |
| `CLUSTER_NAME` | `spec.global.clusterName` in `datadog-agent.yaml` |
| `SERVICE_NAME` | `tags.datadoghq.com/service` label on the Deployment |
| `ENV` | `tags.datadoghq.com/env` label on the Deployment |
| `DD_SITE` | `spec.global.site` in `datadog-agent.yaml` |
---
## Prerequisites
### Claude runs
```bash
pup auth status --site <DD_SITE>
```
If valid token — proceed.
ERROR: Not authenticated:
### Claude runs
```bash
pup auth login --site <DD_SITE>
```
> This opens a browser tab for OAuth. Complete the login there — Claude will continue once the command exits.
---
## Collect live confirmation data
Run all of the following. Each populates a row in the final report.
### Claude runs
```bash
# Agent pod count and status
kubectl get pods -n <AGENT_NAMESPACE> \
-l app.kubernetes.io/component=agent \
--no-headers
# SSI instrumentation config live in cluster
kubectl get datadogagent datadog -n <AGENT_NAMESPACE> \
-o jsonpath='{.spec.features.apm.instrumentation}'
# Init container confirmed in app pod spec
kubectl get pod -l app=<APP_LABEL> -n <APP_NAMESPACE> \
-o jsonpath='{.items[0].spec.initContainers[*].name}'
# Service visible and traced in APM
DD_SITE=<DD_SITE> pup apm services list --env <ENV> --from 1h
# Traces arriving in the last hour
DD_SITE=<DD_SITE> pup traces search --query "service:<SERVICE_NAME>" --from 1h --limit 5
```
**Only if DSM was enabled via `enable-dsm`:**
```bash
# DSM pipeline data for the service
DD_SITE=<DD_SITE> pup metrics query \
--query "avg:data_streams.latency{service:<SERVICE_NAME>,env:<ENV>} by {pathway_type}" \
--from 15m --to now
```
---
## Present the report
Fill in every value from live command output. Do not leave any placeholder unfilled. If a value cannot be confirmed, mark that row as failed and link to `troubleshoot-ssi`.
---
**APM onboarding complete**
| Check | Detail | Status |
|---|---|---|
| Datadog Agent | `<N>` pod(s) Running in `<AGENT_NAMESPACE>` | OK |
| SSI enabled | Targeting namespace `<APP_NAMESPACE>`, language `<LANGUAGE>` v`<MAJOR_VERSION>` | OK |
| Init container injected | `datadog-lib-<language>-init` present in pod spec | OK |
| Tracer reporting | Service `<SERVICE_NAME>` appears in `pup apm services list` with `isTraced: true` | OK |
| APM service visible | `<SERVICE_NAME>` in env `<ENV>` | OK |
| Traces arriving | `<N>` trace(s) found in the last hour | OK |
| Data Streams (only if enabled) | `data_streams.latency` series for `<SERVICE_NAME>`, or "pending first message" | OK |
---
**Your service in Datadog — click to open:**
Construct each URL by substituting real values. Do not print placeholder URLs.
| View | URL |
|---|---|
| Service overview | `https://app.<DD_SITE>/apm/services/<SERVICE_NAME>?env=<ENV>` |
| Traces explorer | `https://app.<DD_SITE>/apm/traces?query=service:<SERVICE_NAME>%20env:<ENV>` |
| Service map | `https://app.<DD_SITE>/apm/map?env=<ENV>&service=<SERVICE_NAME>` |
| Agent fleet | `https://app.<DD_SITE>/fleet-automation` |
| Data Streams (only if enabled) | `https://app.<DD_SITE>/data-streams` |
---
## Security constraints
- Never write a raw API key into any file or chat message
© datadog-labs · MIT · datadog-labs/agent-skills