Você pode instrumentar sua função Lambda adicionando a camada Lambda New Relic. Isso integra o agente New Relic, permitindo o monitoramento automático sempre que suas funções forem invocadas.
Dica
New Relic recomenda integrar sua conta AWS com a New Relic usando a integraçãoAWS para descobrir e monitorar automaticamente sua função do Lambda. Isso permite que você aproveite todo o poder do New Relic APM para sua função serverless.
Métodos de instrumentação
New Relic oferece vários métodos para instrumentar sua função AWS do Lambda para monitoramento abrangente:
interface de linha de comando (CLI): Use a AWS CLI para adicionar rapidamente a camada New Relic à sua função do Lambda.
Framework sem servidor: integre perfeitamente a instrumentação New Relic em sua implantação sem servidor.
CloudFormation/SAM: inclua a camada New Relic em seus modelos de infraestrutura como código.
AWS CDK: adicione a camada New Relic Lambda ao seu código CDK junto com outros recursos de infraestrutura.
Terraform: gerencie facilmente a instrumentação do New Relic juntamente com outros recursos de infraestrutura.
Instrumentação manual: Adicione diretamente a camada New Relic por meio do console AWS Lambda para um controle mais granular.
Independentemente do método escolhido, a camada New Relic adiciona o agente New Relic às suas funções. Este agente instrumenta automaticamente suas funções na invocação, gerando uma carga, NR_LAMBDA_MONITORING, que é enviada ao New Relic por meio da extensão New Relic Lambda.
Dependendo de suas necessidades, você pode optar por ignorar a extensão e ver apenas a telemetria no CloudWatch, ignorar o CloudWatch ou usar o CloudWatch como fallback. A seção CloudWatch no final deste documento guiará você por cada opção.
Você pode instrumentar sua função do Lambda com o newrelic-lambda CLI início rápido.
Para instalar ou atualizar a camada de instrumentação New Relic, execute este comando:
Este comando encontra automaticamente a camada disponível mais recente para a região e o tempo de execução do seu Lambda.
Este comando fornece uma maneira rápida de iniciar a instrumentação do New Relic e pode ser facilmente integrado ao seu pipeline de CI/CD. No entanto, uma vez que modifica os recursos existentes da função do Lambda, a reimplantação do código atualizado pode remover inadvertidamente a instrumentação. Para garantir o monitoramento contínuo, execute novamente o comando após cada implantação ou, de preferência, incorpore a camada e a configuração do New Relic diretamente em seu processo de implantação.
Observe que a CLI pode operar em muitas funções em um lote: use --function all, --function installed ou --function not-installed para operar em todas as funções em uma região ou apenas naquelas com ou sem instrumentação New Relic existente.
O modelo de aplicativo serverless da AWS, ou SAM, é uma variante dos modelos CloudFormation que simplifica o relacionamento de funções com os recursos dos quais dependem e o gerenciamento do ciclo de vida de um aplicativo inteiro. Usamos SAM e CloudFormation para a maioria de nossas funções de exemplo do Lambda, e muitas outras ferramentas são construídas sobre modelos do CloudFormation, fornecendo uma camada adicional de abstração.
CloudFormation é um serviço da AWS que simplifica o provisionamento e gerenciamento de recursos AWS . Ao definir o estado desejado dos recursos em modelos YAML ou JSON, o CloudFormation lida automaticamente com a chamada de API subjacente para criar, atualizar ou excluir recursos conforme necessário. Esta abordagem declarativa automatiza o gerenciamento da infraestrutura, garantindo consistência e reprodutibilidade.
Para monitorar sua função Lambda com New Relic:
Instale a camada Lambda do New Relic. Aqui está um exemplo de um modelo simples do CloudFormation para uma função do Lambda do Node.js :
AWSTemplateFormatVersion:'2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: And example of a simple instrumented Node.js Lambda
Resources:
NewRelicExample:
Type: AWS::Serverless::Function
Properties:
# In this example, we're using the SAM CLI to package and deploy our lambda. SAM will transform this value during the publish step.
CodeUri: newrelic-example-node/
# The handler for your function needs to be the one provided by the instrumentation layer, below.
Handler: newrelic-lambda-wrapper.handler
Runtime: nodejs22.x
Environment:
Variables:
# For the instrumentation handler to invoke your real handler, we need this value
implante sua função do Lambda com a configuração atualizada.
framework sem servidor é uma ferramenta popular de desenvolvimento e implantação de aplicativos sem servidor. Ele foi escrito para AWS em Node.js e atua principalmente como uma abstração de alto nível sobre modelos CloudFormation. Funciona bem para funções Node, Python, Ruby, Java e .NET.
implante sua função do Lambda com a configuração atualizada.
O Nuvem da AWS Development Kit (AWS CDK) é um framework para definir recursos de nuvem em código e provisioná-los por meio do AWS CloudFormation.
Para usar o New Relic com o AWS CDK, siga estes passos:
Instale a camada Lambda do New Relic. Abaixo está um exemplo de um aplicativo CDK básico que implanta uma função New Relic instrumentada Node.js do Lambda:
implante sua função do Lambda com a configuração atualizada.
Terraform é uma infraestrutura popular de uso geral como ferramenta de código. Ele pode ser usado para gerenciar recursos da AWS. Oferecemos alguns exemplos de New Relic instrumentado com função de implantação Lambda usando script Terraform.
Você pode usar o provedor Terraform New Relic para configurar sua integração AWS. Após configurar o provedor, configure as variáveis de ambiente necessárias e adicione a tag NR.Apm.Lambda.Mode: true à sua função do Lambda.
Embora seja mais propenso a erros e trabalhoso do que as abordagens acima, você pode alterar manualmente a configuração de uma função do Lambda para usar New Relic do AWS Lambda Console, para Node.js, Python, Ruby e Java.
Aqui está um exemplo de como configurar o monitoramento Lambda do New Relic para um runtime Ruby :
Navegue até a seção de serviço Lambda no console web da AWS. A partir daí, encontre a função do Lambda que você gostaria de conectar ao New Relic.
Na guia Code padrão, role para baixo até a seção Layers e clique no botão Add a layer .
Clique no botão Create layer .
Vá para Choose a layer e selecione a opção Specify an ARN .
Vá para a New Relic's list of layers e use a lista suspensa para selecionar a região AWS onde sua função do Lambda está hospedada. A partir daí, localize o ARN que corresponde à versão e arquitetura Ruby da sua Função do Lambda. Deve haver duas opções: X86 e ARM64. Use o botão Copy to clipboard ou copie manualmente a string ARN.
Na seção Specify an ARN do formulário do console AWS, cole o ARN da camada New Relic Lambda.
No formulário do console AWS , clique no botão Add para adicionar a camada à sua função do Lambda.
Na página da sua Função do Lambda, com a guia Code padrão selecionada, role para baixo até a seção Runtime settings e clique no botão Edit .
Faça uma cópia segura do valor existente do Handler . Você precisará dele em uma etapa posterior.
Altere o valor do Handler para: newrelic_lambda_wrapper.handler e clique em Save.
Mude para a aba Configuration na página da sua função do Lambda.
Selecione a subguia Environment variables e, com base em suas necessidades, defina as Environment variables.
Modifique a função de execução para permitir acesso ao segredo da chave de licença do New Relic.
Encontre o ARN do segredo chamado NEW_RELIC_LICENSE_KEY.
Adicione uma nova política embutida na função de execução da função semelhante ao código abaixo. Substitua SECRET_ARN pelo valor encontrado acima.
"Statement":[
{
"Action":[
"secretsmanager:GetSecretValue"
],
"Resource":"SECRET_ARN",
"Effect":"Allow"
}
]
Dica
A camada New Relic entregará automaticamente o agente New Relic Ruby e será carregada por meio de um Ruby require antes da invocação da sua função do Lambda. Para evitar conflitos, não inclua uma cópia do agente Ruby em nenhum outro lugar. Sinta-se à vontade para realizar qualquer chamada de API do agente New Relic Ruby desejada em sua função para aproveitar a presença do agente.
No seu Console de Gerenciamento AWS, na guia de configuração, adicione a tag NR.Apm.Lambda.Mode: true à sua função do Lambda.
implante sua função do Lambda com a configuração atualizada.
Os tempos de execução Java, Python, Node.js e .Net seguirão o mesmo fluxo de instrumentação do Ruby, mas com alguns manipuladores diferentes. Veja como atualizar o manipulador da sua função para apontar para a camada recém-anexada no console da sua função:
Observe que para o Go, você deve fazer alterações no código-fonte da sua função do Lambda para instrumentá-lo. As alterações de configuração não são suficientes.
Encontre e use dados
Após instrumentar sua função AWS do Lambda, você poderá encontrar e usar os dados na interface do New Relic APM. Os dados estão organizados em diversas áreas principais, cada uma fornecendo diferentes insights sobre o desempenho e a saúde da sua função Lambda.
Na interface APM, você pode explorar vários aspectos da sua função Lambda, incluindo distributed tracing, mapas de serviço, transações, análise de erros e muito mais. Cada uma dessas áreas fornece insights detalhadas sobre o desempenho, a latência e a taxa de erros da sua função Lambda, permitindo que você identifique e resolva problemas rapidamente.
Dica
A experiência de invocação agora está integrada ao rastreamento de transações do APM. Isso permite que você use um AWS RequestId específico para detalhar um trace APM de transação para obter informações detalhadas sobre aquela execução Lambda específica.
Para visualizar sua função Lambda na interface do New Relic APM :