AWS Lambda Node.js — Instrumentação Zero-Code com Elven Observability Layer

1️⃣ Visão Geral

A Elven fornece Layers de instrumentação para AWS Lambda, permitindo:

  • Captura automática de logs, métricas e traces.
  • Envio de dados para a plataforma Elven Observability com zero código.
  • Totalmente gerenciado via Layers e variáveis de ambiente.
  • Compatível com qualquer linguagem de runtime da Lambda, através do nosso bootstrap universal.

Esta documentação descreve como instrumentar sua Lambda com as Layers oficiais da Elven.


2️⃣ Pré-requisitos

  • A função Lambda já deve estar implementada e funcional.
  • Permissão para modificar a configuração da Lambda (Layers e variáveis de ambiente).
  • Ter o Tenant ID e Token de autenticação fornecidos pela Elven Observability.

Se você não possui o Tenant ID e Token, acesse:

👉 https://elvenobservability.com

Ou solicite ao time de suporte da Elven.


3️⃣ Configurando a Lambda

Passo 1 — Adicionar a Layer Elven

Escolha a Layer conforme o seu caso:

LayerARN
elven-instrumentation-js (completo: logs + metrics + traces)(usar a lista de ARNs abaixo)

Exemplo (us-east-1):

arn:aws:lambda:us-east-1:204595508824:layer:elven-instrumentation-js:1
  • No console AWS Lambda, vá em sua função > Configuration > Layers > Add a layer.
  • Adicione a Layer pelo ARN da sua região.

Passo 2 — Alterar o Handler

Muito importante!

Por padrão, a Layer Elven intercepta a execução da Lambda através do Bootstrap próprio.

Você deve:

1️⃣ Definir o verdadeiro path do seu handler na variável de ambiente AWS_LAMBDA_FUNCTION_HANDLER.

Exemplo:

AWS_LAMBDA_FUNCTION_HANDLER=src/index.handler

2️⃣ Definir o bootstrap da Elven:

No console, adicione:

AWS_LAMBDA_EXEC_WRAPPER=/opt/bootstrap

Isso garante que o bootstrap Elven inicialize primeiro, antes de chamar seu handler real.


Passo 3 — Configurar as variáveis de ambiente

Abaixo a lista completa:

VariávelDescriçãoExemplo
AWS_LAMBDA_FUNCTION_HANDLERCaminho real do seu handlersrc/index.handler
AWS_LAMBDA_EXEC_WRAPPERSempre /opt/bootstrap/opt/bootstrap
LOKI_URLEndpoint do Loki da Elvenhttps://loki.elvenobservability.com/loki/api/v1/push
LOKI_AUTH_TOKENToken de autenticação(fornecido pela Elven)
LOKI_TENANT_IDTenant ID do cliente(fornecido pela Elven)
LOKI_APP_NAMENome da aplicação (para labeling)my-app
LOKI_COOPERATIVE_MODEHabilita modo resilientetrue
LOKI_PURE_HANDLERModo seguro de interceptaçãotrue
LOKI_SAFE_INITHabilita inicialização protegidatrue
OTEL_EXPORTER_OTLP_ENDPOINTEndpoint do seu OTEL Collectorhttp://my-otel-collector.com:4318
OTEL_SERVICE_NAMENome do serviço (traces)my-app
OTEL_RESOURCE_ATTRIBUTESAtributos adicionais de recursoservice.name=my-app,environment=production
OTEL_LAMBDA_TRACE_MODEAtiva captura de tracescapture
OTEL_LOG_LEVELLog interno do SDKerror
OTEL_PROPAGATORSPropagadores ativostracecontext,baggage,xray
OTEL_TRACES_SAMPLERSampling de tracesalways_on

⚠️ Nota importante:

  • As variáveis LOKI_AUTH_TOKEN e LOKI_TENANT_ID são fornecidas pela Elven.
  • É necessário também possuir um OpenTelemetry Collector ativo e acessível para o envio de traces e métricas (OTEL_EXPORTER_OTLP_ENDPOINT).
  • Caso não possua o Token, Tenant ID ou Collector configurado, entre em contato com o suporte da Elven.

Passo 4 — Deploy

Agora basta salvar e fazer o deploy da sua Lambda.

A instrumentação será automática.


4️⃣ Exemplos práticos

Exemplo 100% funcional

Imagine sua Lambda original configurada com handler:

Handler: src/index.handler

Após instrumentação com a Elven:

  • No campo Handler da Lambda (console AWS), deixe o que quiser (não importa).
  • Adicione:
AWS_LAMBDA_FUNCTION_HANDLER=src/index.handler
AWS_LAMBDA_EXEC_WRAPPER=/opt/bootstrap
# e todas as variáveis do bloco 3

Pronto. Não é necessário alterar código.


5️⃣ Problemas comuns & Troubleshooting

ProblemaCausaSolução
Cannot find handlerAWS_LAMBDA_FUNCTION_HANDLER não está definido corretamenteVerifique o path exato do handler, incluindo subpastas
Timeout na inicializaçãoFalha de rede para conectar Loki/OTELVerifique se sua Lambda tem acesso à internet ou endpoints privados
Dados não aparecem no ElvenToken ou Tenant incorretosSolicite novos dados de autenticação ao suporte

6️⃣ Suporte & Contato

Caso precise de ajuda para configuração, onboarding ou troubleshooting, entre em contato:

📧 suporte@elvenobservability.com

🌐 https://elvenobservability.com


7️⃣ ARNs completos das Layers (por região)

  • us-east-1: arn:aws:lambda:us-east-1:204595508824:layer:elven-instrumentation-js:1
  • us-east-2: arn:aws:lambda:us-east-2:204595508824:layer:elven-instrumentation-js:1
  • us-west-1: arn:aws:lambda:us-west-1:204595508824:layer:elven-instrumentation-js:1
  • us-west-2: arn:aws:lambda:us-west-2:204595508824:layer:elven-instrumentation-js:1
  • sa-east-1: arn:aws:lambda:sa-east-1:204595508824:layer:elven-instrumentation-js:1
Nesta página
Rolar para cima