Vérifier APM SSI sur Kubernetes
Avant toute chose : Résolvez entièrement toutes les variables dans
## Context to resolve before acting. Ne commencez pas l'étape 1 tant que chaque variable n'a pas une valeur concrète.
Déclencheurs
Invoquez cette skill quand l'utilisateur exprime l'intention de :
- Confirmer que SSI fonctionne après l'activation d'APM
- Vérifier que les pods sont instrumentés
- Vérifier que le tracer s'exécute et rapporte la télémétrie
- Confirmer que la config du tracer est appliquée correctement
N'invoquez PAS cette skill si :
- SSI n'a pas encore été activé — exécutez d'abord
enable-ssi - Les pods ne sont pas du tout instrumentés — utilisez
troubleshoot-ssi
Prérequis
- [ ]
enable-ssiest terminé - [ ] Les pods applicatifs ont été redémarrés depuis l'activation de SSI
pup-cli : vérifier, installer et s'authentifier
Claude exécute
pup --version
Si non trouvé :
Claude exécute
brew tap datadog-labs/pack
brew install pup
Vérifier l'authentification :
pup auth status --site <DD_SITE>
Si non authentifié :
Claude exécute
pup auth login --site <DD_SITE>
Cela ouvre un onglet navigateur pour OAuth. Complétez la connexion là-bas — Claude continuera une fois la commande terminée.
Si token valide — procédez.
ERREUR : Aucun navigateur disponible — utilisez le fallback API key : export DD_APP_KEY=<your-app-key>
Context to resolve before acting
| Variable | How to resolve |
|---|---|
CLUSTER_NAME |
Vérifiez spec.global.clusterName dans datadog-agent.yaml, ou kubectl config current-context |
ENV |
Vérifiez le label tags.datadoghq.com/env sur le Deployment applicatif |
SERVICE_NAME |
Vérifiez le label tags.datadoghq.com/service sur le Deployment applicatif |
Étape 1 : Confirmer que les Pods sont Instrumentés
Claude exécute
kubectl get pod -l app=<APP_LABEL> -n <APP_NAMESPACE> \
-o jsonpath='{.items[0].spec.initContainers[*].name}'
Si la sortie inclut datadog-lib-<language>-init et datadog-init-apm-inject — les init containers SSI sont injectés.
ERREUR : Init containers manquants — le pod n'a pas été redémarré après l'activation de SSI, ou le ciblage du namespace ne correspond pas. Redémarrez le pod et vérifiez de nouveau.
Étape 2 : Confirmer que le Tracer Rapporte la Télémétrie
Claude exécute
DD_SITE=<DD_SITE> pup apm services list --env <ENV> --from 1h
Si <SERVICE_NAME> apparaît dans la liste des services avec isTraced: true — continuez à l'étape 3.
ERREUR : Service manquant — envoyez d'abord du trafic à l'app, puis réessayez :
Claude exécute
# Port-forward et envoyez du trafic de test
kubectl port-forward deployment/<DEPLOYMENT_NAME> 8099:8000 -n <APP_NAMESPACE> &
sleep 2 && for i in $(seq 1 10); do curl -s -o /dev/null http://localhost:8099/; done
sleep 30 && kill %1 2>/dev/null
DD_SITE=<DD_SITE> pup apm services list --env <ENV> --from 10m
ERREUR : Toujours manquant après le trafic — vérifiez le récepteur de traces de l'agent : kubectl exec -n <AGENT_NAMESPACE> <AGENT_POD> -c agent -- agent status | grep -A 10 "Receiver (previous minute)". Si le récepteur affiche 0 traces, allez à troubleshoot-ssi.
Étape 3 : Confirmer la Configuration du Tracer
Exécutez cette étape seulement si ddTraceConfigs a été explicitement configuré dans enable-ssi (par ex. profiling, AppSec, Data Streams). Si SSI basique a été configuré sans ddTraceConfigs, ignorez cette étape — une réponse vide ici est attendue et ne constitue pas un échec.
Claude exécute
pup apm service-library-config get \
--service-name <SERVICE_NAME> \
--env <ENV>
Si la sortie affiche les variables d'environnement attendues correspondant à ce qui a été configuré dans ddTraceConfigs — terminé.
Si la sortie est vide et ddTraceConfigs n'a pas été configuré — attendu, pas un échec.
ERREUR : Config manquante mais ddTraceConfigs a été configuré — vérifiez qu'il est présent dans le manifest DatadogAgent sous la cible correcte, et que les pods ont été redémarrés après le changement de config.
Terminé
Quittez quand TOUS les éléments suivants sont vrais :
- [ ] Étape 1 : les pods cibles apparaissent dans
instrumented-pods list - [ ] Étape 2 : le service apparaît dans
tracers listavec un statut actif - [ ] Étape 3 : la config du tracer correspond à ce qui a été défini dans
DatadogAgent
Si une vérification échoue, allez à troubleshoot-ssi.
Quand toutes les étapes réussissent, procédez automatiquement à onboarding-summary maintenant — ne demandez pas la permission à l'utilisateur.
Contraintes de sécurité
- Ne jamais écrire une clé API brute dans aucun fichier ou message de chat
- Ne jamais exécuter
kubectl deletesans confirmation de l'utilisateur