datadog-labs/agent-onboarding-summary
Generate a live Single Step Instrumentation (SSI) onboarding confirmation report for Linux hosts — 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.
npx skills add https://github.com/datadog-labs/agent-skills --skill onboarding-summary
Invoke this skill when:
verify-ssi have passedtroubleshoot-ssi have been resolvedDo NOT invoke this skill if any verification or troubleshooting check is still failing — resolve those first.
| Variable | How to resolve |
|---|---|
| HOSTNAME | hostname -f on the target host |
| DD_HOSTNAME | Hostname as Datadog sees it — from sudo datadog-agent status |
| SERVICE_NAME | DD_SERVICE value from /proc/<PID>/environ or the systemd unit |
| ENV | DD_ENV value from /proc/<PID>/environ or the systemd unit |
| DD_SITE | grep "^site:" /etc/datadog-agent/datadog.yaml |
| SSH_KEY | Path to SSH private key |
| SSH_USER | SSH username |
| SSH_HOST | Hostname or IP of the target host |
pup auth status --site <DD_SITE>
If valid token — proceed.
ERROR: Not authenticated:
pup auth login --site <DD_SITE>
> This opens a browser tab for OAuth. Complete the login there — Claude will continue once the command exits.
Run all of the following. Each populates a row in the final report.
# Agent version and status
sudo datadog-agent status 2>&1 | grep -E "Agent \(v|Status:|API Keys status"
# Inject library armed in ld.so.preload
ssh -o StrictHostKeyChecking=no -i <SSH_KEY> <SSH_USER>@<SSH_HOST> "cat /etc/ld.so.preload"
# Process confirmed injected — launcher + language library in /proc/<PID>/maps
ssh -o StrictHostKeyChecking=no -i <SSH_KEY> <SSH_USER>@<SSH_HOST> \
"pgrep -a -f '<SERVICE_NAME>' | head -3"
Use the PID from above:
ssh -o StrictHostKeyChecking=no -i <SSH_KEY> <SSH_USER>@<SSH_HOST> \
"sudo cat /proc/<PID>/maps | grep -E 'launcher|apm-library|datadog'"
# UST vars in process environment
ssh -o StrictHostKeyChecking=no -i <SSH_KEY> <SSH_USER>@<SSH_HOST> \
"sudo cat /proc/<PID>/environ | tr '\0' '\n' | grep -E 'DD_SERVICE|DD_ENV|DD_VERSION'"
# Agent APM receiver — trace counts
ssh -o StrictHostKeyChecking=no -i <SSH_KEY> <SSH_USER>@<SSH_HOST> \
"sudo datadog-agent status 2>&1 | grep -A 10 'Receiver (previous minute)'"
# Service visible and traced in APM backend
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
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 | v<VERSION> running on <HOSTNAME>, API key valid | OK |
| SSI armed | /etc/ld.so.preload contains launcher path | OK |
| Process injected | launcher + language library in /proc/<PID>/maps for <SERVICE_NAME> | OK |
| Unified Service Tags | DD_SERVICE=<SERVICE_NAME> DD_ENV=<ENV> DD_VERSION=<VERSION> | OK |
| Agent receiving traces | <N> trace(s)/min in APM receiver | OK |
| APM service visible | <SERVICE_NAME> in env <ENV> | OK |
| Traces arriving | <N> trace(s) found in the last hour | 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> |
| Infrastructure host | https://app.<DD_SITE>/infrastructure?q=host:<HOSTNAME> |
| Agent fleet | https://app.<DD_SITE>/fleet-automation |
Take datadog-labs/agent-onboarding-summary from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.