X-RAY com Lambda e Python

Sua função Lambda está lenta e você não tem ideia de qual parte está causando isso. O X-Ray rastreia cada invocação, mostra as conexões do mapa de serviços e detalha onde o tempo está sendo gasto. É a diferença entre adivinhar e saber.

TL;DR: Adicione rastreamento AWS X-Ray a uma função Lambda Python para obter traces distribuídos e insights de performance.
Stack: AWS Lambda, AWS X-Ray, Python, aws-xray-sdk
Nível: Intermediário
Tempo de leitura: ~5 min

Instalar dependências

pip install botocore boto3 aws-xray-sdk

Instrumentar a Lambda

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

patch_all()  # Auto-instrumenta boto3, requests e outras libs suportadas

def lambda_handler(event, context):
    # Seu código Lambda aqui
    pass

O patch_all() intercepta chamadas boto3, requisições HTTP e outras bibliotecas suportadas automaticamente, então cada chamada downstream vira um subsegmento no trace sem código extra.

Habilitar X-Ray na Lambda

No console da Lambda, vá em Configuration, depois “Monitoring and operations tools”, e habilite “Active tracing.” Esse é o switch que diz à Lambda para anexar um trace X-Ray a cada invocação.

O que você construiu

Rastreamento X-Ray habilitado na sua Lambda e instrumentado com o SDK Python. Os traces agora aparecerão no console do X-Ray mostrando mapas de serviços, detalhamento de latência e timing dos subsegmentos para cada invocação.

Próximos passos

  • Crie subsegmentos personalizados com xray_recorder.begin_subsegment(“db-query”) para rastrear chamadas individuais ao banco dentro da Lambda.
  • Habilite X-Ray no seu API Gateway para obter traces de ponta a ponta desde a requisição HTTP pela Lambda até os serviços downstream.
  • Configure regras de amostragem no X-Ray para reduzir volume e custo de traces em ambientes de alto tráfego, mantendo traces completos para casos de erro.

Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.

Deixe um comentário