Distribuerad spårning med AWS X-Ray och strukturerad loggning

Driftsättning av applikationer på AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Den långsamma förfrågan som ingen hittade

  • En förfrågan tar fyra sekunder
  • Varje tjänsts loggar ser bra ut var för sig
  • Ingen kan se hela vägen

Ett förstoringsglas som spårar en långsam förfrågan genom en distribuerad tjänstkarta med en röd flaskhals

Driftsättning av applikationer på AWS

Vad distribuerad spårning löser

Isolerade loggar per tjänst i rött till vänster, mot en enhetlig X-Ray Gantt-spårning i grönt som binder ihop samma förfrågan genom API Gateway, Lambda, DynamoDB och ett externt API

  • En förfrågan berör många tjänster
  • Loggar ensamma visar inte hela vägen
  • En spårning binder ihop hela förfrågan
  • Se exakt var tiden gick
Driftsättning av applikationer på AWS

Segment, undersegment och tjänstkartan

  • Segment: arbetet som utförs av en tjänst
  • Undersegment: en enhet inom ett segment, t.ex. ett DB-anrop
  • Tjänstkarta: en visuell graf över alla segment
  • Svarstid och fel visas på varje nod

X-Ray-spårningens anatomi: segment per tjänst med undersegment för DB-anrop, samlade i en tjänstkartsgraf som visar svarstid och felfrekvens på varje nod

Driftsättning av applikationer på AWS

Annotationer vs metadata


Annotationer

  • Indexerade nyckel-värdepar som är filterbara
  • Använd dem för saker du söker på, till exempel kundnivå

Metadata

  • Extra detaljer, inte indexerade
  • Bifoga för kontext – du kan inte söka på dem
Driftsättning av applikationer på AWS

Korrelera loggar med spårnings-ID:n

  • Varje spårning har ett unikt spårnings-ID
  • Inkludera spårnings-ID:t i dina strukturerade loggar
  • Hoppa från en långsam spårning till exakta loggrader
  • Loggar och spårningar blir en gemensam undersökning

Strukturerad loggpost med fältet xray_trace_id markerat, pil från X-Ray-spårningsvyn till matchande loggrader i CloudWatch Logs för korrelerad undersökning

Driftsättning av applikationer på AWS

Läsa tjänstkartan för att hitta flaskhalsen

X-Ray-tjänstkarta med en nod med hög svarstid markerad, inzoomning på spårningens tidslinje där det längsta segmentet identifieras som flaskhals

  • Börja med tjänstkartan, inte loggarna
  • Hitta noden med högst svarstid
  • Zooma in på dess spårningens tidslinje
  • Det längsta segmentet är din misstänkte
Driftsättning av applikationer på AWS

Spårning genom hela förfrågan

  • API Gateway, Lambda och nedströmsanrop är alla spårade
  • Var och en lägger till sitt segment i samma spårning
  • Ett spårnings-ID binder ihop loggar och segment
  • Komplett synlighet för varje förfrågan

Distribuerad heltäckande spårning från API Gateway via Lambda till DynamoDB och ett externt API, med ett synligt spårnings-ID i varje segmenthuvud som binder ihop alla loggar och segment

Driftsättning av applikationer på AWS

Nu kör vi en övning!

Driftsättning av applikationer på AWS

Preparing Video For Download...