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