Instrumentação de Código de Observabilidade - Anotações X-Ray, Logs Estruturados, Verificação de Saúde

Organizando anotações X-Ray/Subsegmentos, logs estruturados, código de métricas personalizadas e verificações de saúde.

O post anterior cobria como ler logs e metricas com CloudWatch e X-Ray. Este post cobre como incorporar funcionalidades de observabilidade diretamente no seu codigo — preparando-se antecipadamente para que problemas sejam mais faceis de encontrar depois.

 

Instrumentacao de Codigo com X-Ray

Instrumentacao significa inserir pontos de medicao no codigo para coletar dados durante a execucao.

Annotations

Annotations adicionam pares chave-valor indexados e pesquisaveis aos dados de rastreamento do X-Ray.

Exemplo: adicionar user_id="abc123" como Annotation permite pesquisar depois "mostre todas as requisicoes deste usuario" no X-Ray.

Como criar fichas de indice para livros — voce pode encontra-los rapidamente por palavras-chave.

Nota importante: Metadata e diferente de Annotations — NAO e indexada e nao e pesquisavel. Usada apenas para informacoes de referencia complementares. O exame frequentemente testa essa diferenca.

Subsegments

Subsegments medem o tempo de operacoes individuais dentro de um unico servico.

Exemplo, dentro de uma funcao Lambda: Consulta DynamoDB: 50ms Upload S3: 200ms Chamada API externa: 500ms

Ao registrar cada operacao como subsegmento, voce ve imediatamente onde o tempo e gasto.

 

Logging Estruturado

Emitir logs em formato JSON em vez de texto simples.

Log simples: ERROR: DB connection failed

Log estruturado: {"level":"ERROR","message":"DB connection failed","requestId":"abc-123","userId":"user-456"}

Beneficios: Pesquisar por campos especificos no CloudWatch Logs Insights Estatisticas de erros e analise de padroes mais faceis Processamento automatizado padronizado

 

Metricas Personalizadas

Alem das metricas padrao da AWS, voce pode enviar suas proprias medicoes especificas do negocio: Tempo de processamento de pedidos Taxa de abandono de carrinho Proporcao sucesso/falha de login

Como enviar: API PutMetricData: Chamada direta enviando valores de metricas ao CloudWatch EMF: Emite logs estruturados e metricas sao extraidas automaticamente

 

Health Checks

Verificacao periodica de que um servico esta funcionando normalmente — como tirar o pulso.

ELB Health Checks: Load balancer envia sinais periodicos ao /health de cada servidor. Se falhar, para de enviar trafego. ECS Health Checks: Comando HEALTHCHECK dentro do container. Se falhar, reinicia automaticamente. Route 53 Health Checks: Monitora endpoints. Se detectar falha, Failover routing redireciona trafego.

 

Configuracao de Alertas

CloudWatch Alarms -> topico SNS -> email, SMS ou Lambda Regras EventBridge -> notificacoes para eventos especificos

 

Pontos-Chave do Exame

"Pesquisar requisicoes de usuario especifico no X-Ray" -- Annotations (indexadas)

"Medir tempo de consulta BD/HTTP no X-Ray" -- Subsegments

"Logs JSON, pesquisaveis por campo" -- Logging estruturado

"Enviar metricas especificas da aplicacao" -- PutMetricData ou EMF

"Verificar periodicamente se instancias estao saudaveis" -- ELB health checks

"Verificar saude do container" -- ECS HEALTHCHECK

"Notificar quando implantacao concluida" -- EventBridge + SNS

Annotations = pesquisaveis (indexadas), Metadata = nao pesquisavel

Voltar à lista do blog