用途:在 Kubernetes 上验证 APM 的单步插桩(Single Step Instrumentation,SSI)是否端到端工作。SSI 可在不改代码的情况下自动为应用接入 APM。该技能适用于启用 APM 后确认 SSI 生效、检查 Pod 是否被插桩、确认追踪器在运行并上报遥测、确认追踪器配置正确应用。若尚未启用 SSI,应先运行 enable-ssi;若 Pod 完全未被插桩,应使用 troubleshoot-ssi。
前置条件:enable-ssi 已完成;自启用 SSI 后应用 Pod 已重启;pup-cli 已检查、安装并认证,包括 pup --version,未安装时可执行 brew tap datadog-labs/pack 与 brew install pup,认证检查与登录使用 pup auth status --site <DD_SITE>、pup auth login --site <DD_SITE>;无浏览器时可用 export DD_APP_KEY=<your-app-key>。行动前需解析变量:CLUSTER_NAME、ENV、SERVICE_NAME。
主要步骤:第一步用 kubectl get pod 检查 initContainers,若包含 datadog-lib-<language>-init 与 datadog-init-apm-inject 则说明已注入;缺失通常说明 Pod 未在启用后重启或命名空间匹配不正确。第二步用 pup apm services list --env <ENV> --from 1h 确认服务出现且 isTraced: true;服务缺失可先用 kubectl port-forward 发送测试流量再重试,仍缺失时检查 agent 的 trace receiver,若为 0 条 trace 则转 troubleshoot-ssi。第三步仅在 enable-ssi 显式配置了 ddTraceConfigs 时执行,通过 kubectl get pod 读取容器环境变量,确认每个 ddTraceConfigs 变量以配置值出现在目标 Pod 中;值不同说明 Deployment 自行设置了该变量而 SSI 不会覆盖,缺失则检查 DatadogAgent 清单并确认 Pod 已重启。还可用 pup apm service-library-config get 查看运行时上报,但该视图不列出所有 SDK 的每个设置,设置缺失不视为失败。
完成条件:以上适用步骤全部通过;任一检查失败转 troubleshoot-ssi;全部通过后自动进入 onboarding-summary。安全约束:绝不将原始 API key 写入任何文件或聊天消息;未经用户确认不得运行 kubectl delete。