Labsco
datadog-labs logo

onboarding-summary

★ 139

by datadog-labs · part of datadog-labs/agent-skills

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.

🔥🔥✓ VerifiedFreeQuick setup
🧩 One of 7 skills in the datadog-labs/agent-skills package — works on its own, and pairs well with its siblings.

This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.

APM Onboarding Summary — Linux Host

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

VariableHow to resolve
HOSTNAMEhostname -f on the target host
DD_HOSTNAMEHostname as Datadog sees it — from sudo datadog-agent status
SERVICE_NAMEDD_SERVICE value from /proc/<PID>/environ or the systemd unit
ENVDD_ENV value from /proc/<PID>/environ or the systemd unit
DD_SITEgrep "^site:" /etc/datadog-agent/datadog.yaml
SSH_KEYPath to SSH private key
SSH_USERSSH username
SSH_HOSTHostname or IP of the target host

Collect live confirmation data

Run all of the following. Each populates a row in the final report.

Claude runs

# 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

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

CheckDetailStatus
Datadog Agentv<VERSION> running on <HOSTNAME>, API key validOK
SSI armed/etc/ld.so.preload contains launcher pathOK
Process injectedlauncher + language library in /proc/<PID>/maps for <SERVICE_NAME>OK
Unified Service TagsDD_SERVICE=<SERVICE_NAME> DD_ENV=<ENV> DD_VERSION=<VERSION>OK
Agent receiving traces<N> trace(s)/min in APM receiverOK
APM service visible<SERVICE_NAME> in env <ENV>OK
Traces arriving<N> trace(s) found in the last hourOK

Your service in Datadog — click to open:

Construct each URL by substituting real values. Do not print placeholder URLs.

ViewURL
Service overviewhttps://app.<DD_SITE>/apm/services/<SERVICE_NAME>?env=<ENV>
Traces explorerhttps://app.<DD_SITE>/apm/traces?query=service:<SERVICE_NAME>%20env:<ENV>
Service maphttps://app.<DD_SITE>/apm/map?env=<ENV>&service=<SERVICE_NAME>
Infrastructure hosthttps://app.<DD_SITE>/infrastructure?q=host:<HOSTNAME>
Agent fleethttps://app.<DD_SITE>/fleet-automation

Security constraints

  • Never write a raw API key into any file or chat message