• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Monitoramento de desempenho Java AWS Lambda Serverless

Você pode obter visibilidade da sua função Java do Lambda para entender o que está acontecendo em seus aplicativos serverless.

Você pode usar a variação de camada slim do agente Java para obter visibilidade das suas funções do Lambda em Java.

Agente Java New Relic

O agente Java da New Relic suporta instrumentar a função do AWS Lambda por meio de um modo serverless dedicado. Ao ser executado dentro de uma função do Lambda, o agente detecta automaticamente o ambiente e alterna para este modo, que é otimizado para a natureza de curta duração e orientada a eventos das invocações do Lambda.

Importante

O modo serverless do agente Java requer Java 17 ou posterior. Runtimes do Java 11 e anteriores não são suportados devido a tempos de inicialização inicial mais longos.

Como funciona

No modo sem servidor, o agente substitui sua coleta periódica padrão e o transporte HTTP por um modelo por invocação:

  1. Quando uma função do Lambda é invocada, o agente intercepta o handler antes que seu código seja executado.
  2. Uma transação é criada automaticamente para a invocação, capturando contexto como o ARN do Lambda, o ID de requisição e se é um cold start.
  3. Se a carga do evento for reconhecida (por exemplo, um evento do API Gateway ou SQS), o agente extrai os metadados da origem do evento, classifica a transação como uma transação da web ou transação fora da web e adiciona atributos relevantes.
  4. Quando a transação termina, o agente coleta toda a telemetria em buffer e a grava como uma carga compactada e codificada em base64 em /tmp/newrelic-telemetry e como JSON simples no stdout.
  5. A extensão do Lambda da New Relic (empacotada na camada) lê o arquivo de telemetria e encaminha os dados para a New Relic após cada invocação.

Camadas Lambda

Duas variantes da camada do Lambda são publicadas para o agente Java:

  • Camada completa do agente: todos os módulos de instrumentação estão habilitados. Fornece visibilidade máxima pronta para uso, mas gera maior sobrecarga de inicialização a frio devido ao conjunto completo de instrumentação automática.
  • Camada Slim (recomendada): desativa toda a instrumentação automática exceto os módulos aws-lambda-java-core. Isso significa que os handlers Java Lambda que implementam RequestHandler ou RequestStreamHandler são automaticamente instrumentados e começam a emitir telemetria pronta para uso, enquanto outra instrumentação (chamadas do AWS SDK, clientes HTTP, etc.) é desabilitada, a menos que você a habilite explicitamente. Este é o ponto de partida recomendado para a maioria dos clientes.

ARNs de camada

Os seguintes ARNs são para a região us-east-1. Substitua us-east-1 pela sua região da AWS. A versão da camada começa em 1 e aumenta a cada novo lançamento. Para as versões mais recentes disponíveis, consulte a lista de camadas da New Relic.

Variante de camada

Arquitetura

ARN

Slim (recomendado)

x86_64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJava-slim:1

Slim (recomendado)

ARM64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJavaARM64-slim:1

Completo

x86_64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJava:1

Completo

ARM64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJavaARM64:1

Para instruções de instalação, consulte Instrumentação em camadas.

Ao usar qualquer uma das camadas, defina o manipulador da sua função do Lambda para um dos seguintes valores de wrapper para que o agente possa interceptar a invocação:

  • RequestHandler implementação: com.newrelic.java.HandlerWrapper::handleRequest
  • RequestStreamHandler implementação: com.newrelic.java.HandlerWrapper::handleStreamsRequest

Detecção automática

O agente habilita automaticamente o modo serverless quando a variável de ambiente AWS_LAMBDA_FUNCTION_NAME está presente. Nenhuma configuração explícita é necessária ao usar a camada Lambda. O modo Serverless está sempre ativado e não pode ser sobrescrito.

Configuração

As seguintes variáveis de ambiente estão pré-configuradas na camada Lambda:

Variável de ambiente

Padrão da camada

Descrição

NEW_RELIC_SERVERLESS_MODE_ENABLED

true

Habilita o modo serverless. Definido como

true

pela camada se ainda não estiver definido.

NEW_RELIC_LOG_FILE_PATH

/tmp/logs

Por padrão, isso define o caminho do arquivo de log do agente Java para

/tmp/logs/newrelic_agent.log

NEW_RELIC_APP_NAME

lambda-function

Nome padrão do aplicativo usado pelo agente. Definido pela camada se ainda não estiver definido. Este valor não é usado na interface do New Relic para funções do Lambda.

NEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED

false

Desabilita o encaminhamento de logs no agente. Definido pela camada se ainda não estiver definido. Em vez disso, os logs são capturados via CloudWatch ou pela extensão Lambda.

NEW_RELIC_ENABLE_AUTO_APP_NAMING

false

Sempre definido como

false

pela camada. Evita que o agente sobrescreva o nome do aplicativo com base nos dados da transação.

As seguintes variáveis de ambiente são obrigatórias e devem ser definidas por você:

Variável de ambiente

Valor obrigatório

Descrição

AWS_LAMBDA_EXEC_WRAPPER

/opt/newrelic-java-handler

Aponta o AWS Lambda para o wrapper do agente Java New Relic. Isso deve sempre ser definido como

/opt/newrelic-java-handler

ao usar a camada do agente Java.

NEW_RELIC_LICENSE_KEY

Sua chave de licença New Relic

Sua chave de licença de ingestão da New Relic, usada para autenticar telemetria enviada para a New Relic.

NEW_RELIC_TRUSTED_ACCOUNT_KEY

ID da sua conta New Relic

Exigido pela extensão New Relic Lambda para distributed tracing. Defina isso como o ID da sua conta pai New Relic ou ID da conta se não houver uma conta pai.

Importante

Por padrão, a extensão Lambda ou o CloudWatch captura seus logs. O agente não encaminha logs diretamente.

Cold starts

O agente rastreia cold starts usando um sinalizador estático que é definido na primeira invocação. Em invocações cold start, o atributo aws.lambda.coldStart=true é adicionado à transação. Este atributo é omitido em invocações quentes. Não está definido para false.

Importante

Tempo de Cold start: adicionar o agente Java aumenta o tempo de cold start em aproximadamente 4.000–6.200 ms comparado a uma função sem o agente. Isso afeta apenas a primeira invocação. As invocações quentes não são afetadas. A camada slim reduz isso ao carregar menos módulos de monitoramento na inicialização.

Para melhorar o desempenho de cold start, aumente o limite de timeout e a alocação de memória e use simultaneidade provisionada.

Telemetria coletada

No modo serverless, o agente Java coleta e armazena em buffer os seguintes tipos de telemetria durante a invocação:

  • Rastreamento da transação
  • Eventos de erro e erros rastreados (com stack traces)
  • Eventos de span (para distributed tracing)
  • Eventos (analíticos) de transação
  • Evento personalizado
  • Eventos de log (via CloudWatch por padrão)
  • Métricas de desempenho

Todos os dados coletados são gravados como uma única carga NR_LAMBDA_MONITORING e encaminhados para o New Relic após a conclusão da invocação.

Limitações

  • Somente Java 17+. Java 11 e anteriores não são suportados.
  • O profiling de thread não está disponível no modo serverless.
  • O monitoramento do JFR (Java Flight Recorder) está desativado no modo serverless.
  • O coletor JAR (varredura de módulo) está desabilitado no modo serverless.
Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.