All skills
datadog-labs avatar

/dd-apm

@9bcb3ce official

APM - install, onboard, instrument, enable, set up, configure, traces, services, dependencies, performance analysis. Use for any request involving Datadog APM setup, instrumentation (SSI, ddtrace, agent install), or analysis.

Use this Skill: https://skilld.dev/gh/datadog-labs/agent-skills/dd-apm

This session only. Nothing lands on disk.

linux-ssionboarding-summarySKILL.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

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

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

Prerequisites

Claude runs

pup auth status --site <DD_SITE>

If valid token — proceed.

ERROR: Not authenticated:

Claude runs

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

# 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

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

Security constraints

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

Source: SKILL.md on GitHub

1 warning2d5 checks · Risk SAFE
  • Gen Agent Trust Hub2d

    The skill facilitates the installation, configuration, and troubleshooting of Datadog APM for Kubernetes and Linux environments. It uses official Datadog installation scripts and a CLI tool ('pup') from the 'datadog-labs' GitHub organization. It requires administrative privileges (sudo) and SSH access to perform system-level instrumentation and configuration. All behaviors align with its documented purpose as a Datadog Labs utility.

  • Socket2d

    2 alerts: gptAnomaly

  • Snyk2d

    Risk: LOW · No issues

  • Runlayer6mo

    1/1 file flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 9bcb3ce. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 18 hours ago.

Activeupdated 4 months ago
alwaysApply
true
Other metadata
metadata
{
  "version": "1.1.0",
  "author": "datadog-labs",
  "repository": "https://github.com/datadog-labs/agent-skills",
  "tags": "datadog,apm,tracing,performance,distributed-tracing,dd-apm,install,onboarding,instrumentation,ssi,agent",
  "globs": "**/ddtrace*,**/datadog*.yaml,**/*trace*"
}
  • Performance
  • datadog
  • apm
  • tracing
  • distributed-tracing
  • instrumentation
  • ddtrace
  • kubernetes
  • linux
  • service-remapping

README badge

README badge for datadog-labs/agent-skills/dd-apm

Installs the Datadog agent, enables single-step instrumentation (SSI) for automatic tracing, and provides commands to search traces and view service maps. Use this skill for any Datadog APM setup, onboarding, or performance analysis task on Kubernetes, Linux, or to rename services in APM.

Generated from the current SKILL.md.

Does this skill handle both Kubernetes and Linux host APM setup?
Yes. The skill routes to Kubernetes-specific sub-skills (k8s-ssi) when a cluster orchestrator is mentioned, and Linux-specific sub-skills (linux-ssi) for single hosts or VMs with no orchestrator.
Can I use this skill to rename services in Datadog?
Yes. The skill includes a service-remapping sub-skill that rewrites service names at ingestion time without requiring a deployment rollout.
Does this skill set up Single Step Instrumentation (SSI)?
Yes. SSI auto-instrumentation is covered in both the k8s-ssi and linux-ssi sub-skills; SSI requires no code changes and is enabled via agent installation flags or init container injection.
What if my request doesn't match Kubernetes, Linux, or service remapping?
The skill supports trace searching, service analysis, and metrics queries via pup commands. If your request still doesn't fit, the skill asks you to clarify rather than guessing a workflow.
Do I need to install Datadog Pup separately?
Yes. Datadog Labs Pup must be installed before using this skill; setup instructions are in the main agent-skills repository.

Generated from the current SKILL.md. These answers refresh after source changes.