Traçage distribué avec AWS X-Ray et journalisation structurée

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

La requête lente introuvable

  • Une requête prend quatre secondes
  • Les journaux de chaque service semblent corrects isolément
  • Personne ne voit le parcours complet

Une loupe suit une requête lente à travers une carte de services distribués avec un nœud goulet d'étranglement en rouge

Déployer des applications sur AWS

Ce que résout le traçage distribué

Silos de journaux par service isolés en rouge à gauche versus une chronologie de trace Gantt X-Ray unifiée reliant la même requête via API Gateway, Lambda, DynamoDB et une API externe en vert

  • Une requête touche de nombreux services
  • Les journaux seuls n'affichent pas le parcours de bout en bout
  • Une trace recompose toute la requête
  • Voyez exactement où le temps s'est écoulé
Déployer des applications sur AWS

Segments, sous-segments et carte des services

  • Segment : travail effectué par un service
  • Sous-segment : unité dans un segment, p. ex. un appel BD
  • Carte des services : graphe visuel de tous les segments
  • La latence et les erreurs s'affichent sur chaque nœud

Anatomie d'une trace X-Ray : un segment par service avec des sous-segments pour les appels BD, assemblés en un graphe de carte des services affichant latence et taux d'erreur sur chaque nœud

Déployer des applications sur AWS

Annotations vs métadonnées


Annotations

  • Paires clé-valeur indexées, donc filtrables
  • À utiliser pour ce que vous chercherez, p. ex. palier client

Métadonnées

  • Détails supplémentaires, non indexés
  • Ajoutez-les pour le contexte, mais on ne peut pas chercher dessus
Déployer des applications sur AWS

Corréler les journaux avec les IDs de trace

  • Chaque trace a un ID de trace unique
  • Incluez l'ID de trace dans vos journaux structurés
  • Passez d'une trace lente à ses lignes de journal exactes
  • Journaux et traces ne font plus qu'une enquête

Ligne de journal structurée avec le champ xray_trace_id mis en évidence, flèche de la vue X-Ray vers les lignes correspondantes dans CloudWatch Logs pour une corrélation

Déployer des applications sur AWS

Lire la carte des services pour trouver le goulet d'étranglement

Carte des services X-Ray avec un nœud à forte latence en surbrillance, exploration de la chronologie des traces montrant la barre de segment la plus longue identifiée comme goulot d'étranglement

  • Commencez par la carte des services, pas les journaux
  • Trouvez le nœud à plus forte latence
  • Explorez sa chronologie de trace
  • Le segment le plus long est le suspect
Déployer des applications sur AWS

Tracer toute la requête

  • API Gateway, Lambda et les appels aval sont tous tracés
  • Chacun ajoute son segment à la même trace
  • Un ID de trace relie journaux et segments
  • Visibilité de bout en bout pour chaque requête

Trace distribuée de bout en bout d'API Gateway à Lambda puis DynamoDB et une API externe, un ID de trace visible dans chaque en-tête de segment reliant tous les journaux et segments

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...