--- 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 ``` If valid token — proceed. ERROR: Not authenticated: ### Claude runs ```bash pup auth login --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 \ -l app.kubernetes.io/component=agent \ --no-headers # SSI instrumentation config live in cluster kubectl get datadogagent datadog -n \ -o jsonpath='{.spec.features.apm.instrumentation}' # Init container confirmed in app pod spec kubectl get pod -l app= -n \ -o jsonpath='{.items[0].spec.initContainers[*].name}' # Pod confirmed instrumented — init containers in pod spec kubectl get pod -l app= -n \ -o jsonpath='{.items[0].spec.initContainers[*].name}' # Service visible and traced in APM DD_SITE= pup apm services list --env --from 1h # Traces arriving in the last hour DD_SITE= pup traces search --query "service:" --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 | `` pod(s) Running in `` | OK | | SSI enabled | Targeting namespace ``, language `` v`` | OK | | Init container injected | `datadog-lib--init` present in pod spec | OK | | Pod instrumented | `` in `pup fleet instrumented-pods list` | OK | | Tracer reporting | Service ``, ``, tracer v`` | OK | | APM service visible | `` in env `` | OK | | Traces arriving | `` 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./apm/services/?env=` | | Traces explorer | `https://app./apm/traces?query=service:%20env:` | | Service map | `https://app./apm/map?env=&service=` | | Agent fleet | `https://app./fleet-automation` | --- ## Security constraints - Never write a raw API key into any file or chat message