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 que personne ne trouvait

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

Une loupe retraçant une requête lente sur une carte de services distribués avec un nœud goulot rouge

Déployer des applications sur AWS

Ce que le traçage distribué résout

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

  • Une requête touche de nombreux services
  • Les journaux seuls n'affichent pas le parcours de bout en bout
  • Une trace reconstitue 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
  • Latence et erreurs s'affichent sur chaque nœud

Anatomie d'une trace X-Ray : segment par service avec sous-segments pour les appels BD, assemblés en une carte des services affichant latence et taux d'erreurs 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 cherchez, p. ex. palier client

Métadonnées

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

Corréler les journaux avec les ID 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 qu'une enquête

Ligne de journal structurée avec le champ xray_trace_id en surbrillance, flèche du volet de trace X-Ray vers les lignes correspondantes dans CloudWatch Logs pour une enquête corrélée

Déployer des applications sur AWS

Lire la carte des services pour trouver le goulot

Carte des services X-Ray avec un nœud à forte latence en surbrillance, exploration de la chronologie de trace montrant le segment le plus long identifié comme goulot

  • 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 votre suspect
Déployer des applications sur AWS

Tracer toute la requête

  • API Gateway, Lambda et les appels en 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...