Enquête
Vous menez une enquête inter-produits. Les véritables enquêtes touchent presque toujours plus d'un produit — une erreur de log mène aux traces, une trace lente révèle un span défaillant, un span défaillant se corrèle avec une session spécifique. Suivez la piste jusqu'à avoir une cause racine concrète.
Prérequis
Cette compétence nécessite que le serveur MCP LaunchDarkly hébergé à distance soit configuré dans votre environnement.
Outils MCP requis :
query-logs— récupérer les entrées de log paginéesquery-traces— récupérer les entrées de trace/span paginéesquery-error-groups— récupérer les groupes d'erreurs avec stack traces et fréquencequery-sessions— récupérer les replays de session avec détails utilisateurquery-aggregations— agrégations en buckets sur un type de produit pour tendances et comptagesquery-timeline-events— extraire la chronologie des événements au sein d'une sessionget-keys— découvrir les clés d'attribut/regroupement valides pour un type de produit
Flux de travail
- Planifiez d'abord. Avant le premier appel d'outil, présentez un plan numéroté concis de ce que vous allez interroger et pourquoi. Puis exécutez-le. Ne sautez cette étape que pour des recherches triviales.
- Commencez étroit. Choisissez une fenêtre temporelle ciblée (24h par défaut si l'utilisateur n'a pas spécifié) et l'identifiant le plus spécifique que vous ayez — trace ID, session ID, error group ID, flag key. Les requêtes larges retournent du bruit.
- Laissez chaque résultat éclairer le suivant. N'utilisez pas un seul appel d'outil. Exécutez plusieurs invocations de
query-logs,query-aggregations,query-traces,query-error-groupsetquery-sessions, en utilisant les conclusions de chacune pour affiner la suivante. - Respectez la limite de 50 entrées. Les outils
query-logs,query-traces,query-error-groupsetquery-sessionsretournent au maximum 50 entrées par appel. Pour des datasets plus larges, lancez d'abord une requêtequery-aggregationspour agréger, puis réduisez avec des recherches ciblées. - Croisez agressivement. Trace IDs dans les logs, session IDs dans les erreurs, messages d'erreur dans les replays de session — l'endroit où les produits se connectent est généralement où se trouve la cause racine.
- Maintenez une checklist en cours. Résumez périodiquement ce que vous avez confirmé vs ce que vous devez encore tester. Cela empêche les enquêtes de dériver.
- Terminez avec des données actionnables. Insights clairs qui répondent à la question initiale, références directes que l'utilisateur peut consulter (extraits de log, trace IDs, session IDs, error group IDs), une évaluation de la sévérité, et au moins une remediation concrète — un changement de configuration, un basculement de flag, un correctif au niveau du code avec fichier et ligne, ou une étape diagnostique spécifique avec la requête exacte à exécuter.
Charger les fichiers compagnons quand pertinent
logs.md— quand l'enquête touche les logs (messages d'erreur, filtres level=error, patterns de log de service)traces.md— lors de l'analyse du flux de requête, de la latence ou des relations entre spanserrors.md— lors de l'examen des groupes d'erreurs, stack traces, fréquence d'exceptionsessions.md— lors de la reconstruction de parcours utilisateur ou de la corrélation du comportement frontend avec les événements backendmetrics.md— lors de l'agrégation sur un large dataset ou de la construction d'un graphique
Orientation universelle
- Préférez l'agrégation à la pagination. Si vous voulez énumérer des utilisateurs uniques, compter des valeurs distinctes ou résumer, utilisez
query-aggregationsavecgroup_by— ne paginez pas à travers les enregistrements individuels. Utilisezget-keyspour découvrir d'abord la bonne dimension de regroupement. - Appelez
get-keysavant les filtres d'attribut. Les noms d'attribut varient selon les types de produits et services (spanNamevsspan_name,hasErrorsvshas_errors). Un appelget-keyspréalable évite les requêtes gaspillées avec des noms de champ erronés. - Citez les identifiants spécifiques. Chaque recommandation doit référencer la flag key exacte, le nom de service, session ID, trace ID ou chemin de fichier que vous avez extrait des données. L'utilisateur doit pouvoir agir sur votre résumé sans refaire votre enquête.
- Gérez les résultats d'outil volumineux. Quand un résultat d'outil est persisté dans un fichier (vous verrez « Output too large ... Full output saved to: <path> »), n'utilisez PAS Read — il a la même limite de tokens. Utilisez Bash avec
python3oujqpour extraire la tranche spécifique dont vous avez besoin. - Dégradation gracieuse en cas d'échec d'outil. Si un appel d'outil échoue (débordement de buffer, timeout, erreur serveur), n'arrêtez pas en silence. Essayez un outil ou une approche alternative. Si rien ne fonctionne, livrez ce que vous avez trouvé jusqu'à présent plus les étapes concrètes que l'utilisateur peut entreprendre manuellement.
- Gérer les demandes vagues. « Enquêtez sur ceci » ou « qu'est-ce qui se passe » est une invitation à creuser, pas à résumer. Itérez les appels d'outil jusqu'à avoir une cause racine ou avoir épuisé les données disponibles.
Si un outil n'est pas disponible dans votre environnement, le serveur MCP correspondant n'est peut-être pas connecté — surfacez-le plutôt que de le contourner.