Urmărire distribuită cu AWS X-Ray și logging structurat

Implementarea aplicațiilor pe AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Cererea lentă pe care nimeni n-o găsea

  • O cerere durează patru secunde
  • Logurile fiecărui serviciu par în regulă
  • Nimeni nu vede întregul parcurs

O lupă urmărind o cerere lentă pe o hartă de servicii distribuite, cu un nod-blocaj marcat în roșu

Implementarea aplicațiilor pe AWS

Ce rezolvă urmărirea distribuită

Silozuri de loguri izolate per serviciu în roșu, în stânga, față de un traseu X-Ray Gantt unificat în verde, care leagă aceeași cerere prin API Gateway, Lambda, DynamoDB și API extern

  • O cerere traversează mai multe servicii
  • Logurile singure nu arată parcursul complet
  • Un traseu leagă întreaga cerere
  • Vezi exact unde s-a pierdut timpul
Implementarea aplicațiilor pe AWS

Segmente, subsegmente și harta serviciilor

  • Segment: activitatea unui singur serviciu
  • Subsegment: o unitate din segment, precum un apel DB
  • Harta serviciilor: un graf vizual al tuturor segmentelor
  • Latența și erorile sunt afișate pe fiecare nod

Anatomia unui traseu X-Ray: segment per serviciu cu subsegmente pentru apeluri DB, asamblate într-un graf al hărții serviciilor cu latență și rată de eroare pe fiecare nod

Implementarea aplicațiilor pe AWS

Adnotări vs. metadate


Adnotări

  • Perechi cheie-valoare indexate, deci filtrabile
  • Folosește-le pentru câmpuri după care vei căuta, precum nivelul clientului

Metadate

  • Detalii suplimentare, neindexate
  • Utile pentru context, dar nu pot fi căutate
Implementarea aplicațiilor pe AWS

Corelarea logurilor cu ID-urile de traseu

  • Fiecare traseu are un ID de traseu unic
  • Include ID-ul de traseu în logurile structurate
  • Treci de la un traseu lent la liniile exacte de log
  • Logurile și traseele devin o singură investigație

Linie de log structurat cu câmpul xray_trace_id evidențiat, săgeată din vizualizarea X-Ray către liniile de log corespunzătoare din CloudWatch Logs

Implementarea aplicațiilor pe AWS

Citirea hărții serviciilor pentru a identifica blocajul

Harta serviciilor X-Ray cu un nod cu latență ridicată evidențiat, detaliere în cronologia traseului cu cel mai lung segment identificat ca blocaj

  • Începe cu harta serviciilor, nu cu logurile
  • Găsește nodul cu cea mai mare latență
  • Detaliază cronologia traseului
  • Segmentul cel mai lung este principalul suspect
Implementarea aplicațiilor pe AWS

Urmărirea pe întreaga cerere

  • API Gateway, Lambda și apelurile ulterioare sunt urmărite
  • Fiecare adaugă segmentul său la același traseu
  • Un singur ID de traseu leagă logurile și segmentele
  • Vizibilitate completă pentru fiecare cerere

Traseu distribuit complet de la API Gateway prin Lambda către DynamoDB și API extern, cu un ID de traseu vizibil în antetul fiecărui segment

Implementarea aplicațiilor pe AWS

Hai să exersăm!

Implementarea aplicațiilor pe AWS

Preparing Video For Download...