verify-ssi

Par datadog-labs · agent-skills

Vérifie que l'instrumentation Single Step (SSI) fonctionne de bout en bout sur Kubernetes — la SSI instrumente automatiquement les applications pour l'APM sans modification du code. À utiliser uniquement après l'exécution de enable-ssi.

npx skills add https://github.com/datadog-labs/agent-skills --skill verify-ssi

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-ssi est 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 list avec 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 delete sans confirmation de l'utilisateur

Skills similaires