Rastreamento distribuído com AWS X-Ray e logs estruturados
Implantando Aplicações na AWS
Dunieski Otano
Amazon Web Services Solutions Architect
A requisição lenta que ninguém encontrou
Uma requisição leva quatro segundos
Os logs de cada serviço parecem ok isoladamente
Ninguém enxerga o caminho completo
O que o rastreamento distribuído resolve
Uma requisição toca
muitos serviços
Só logs não mostram o
caminho de ponta a ponta
Um
trace
costura a requisição inteira
Veja exatamente onde o tempo foi gasto
Segmentos, subsegmentos e o service map
Segment
: o trabalho feito por um serviço
Subsegment
: uma unidade dentro do segmento, como uma chamada ao BD
Service map
: um grafo visual de todos os segmentos
Latência e erros aparecem em cada nó
Anotações vs. metadados
Anotações
Pares chave-valor indexados, então são
filtráveis
Use para o que você vai pesquisar, como nível de cliente
Metadados
Detalhe extra,
não indexado
Anexe para contexto, mas não dá para pesquisar por isso
Correlacionando logs com trace IDs
Cada trace tem um
trace ID
único
Inclua o trace ID nos seus
logs estruturados
Pule de um trace lento para suas linhas de log exatas
Logs e traces viram uma única investigação
Lendo o service map para achar o gargalo
Comece pelo
service map
, não pelos logs
Ache o nó com maior
latência
Aprofunde na sua
linha do tempo do trace
O segmento mais longo é o suspeito
Rastreando toda a requisição
API Gateway, Lambda e chamadas downstream todas
rastreáveis
Cada uma adiciona seu
segment
ao mesmo trace
Um trace ID une logs e segmentos
Visibilidade de ponta a ponta para cada requisição
Vamos praticar!
Implantando Aplicações na AWS
Preparing Video For Download...