• EnglishEspañol日本語한국어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

Introdução ao monitoramento do AWS Lambda

À medida que sua organização faz a transição para uma arquitetura de função como serviço (FaaS) com AWS Lambda, compreender e otimizar o desempenho da função torna-se fundamental para garantir uma experiência do usuário contínua e eficiente. Cada invocação do Lambda representa um potencial gargalo ou oportunidade de melhoria.

A instrumentação da New Relic para AWS Lambda fornece visibilidade profunda do funcionamento interno de suas funções. Ao adicionar o agente New Relic à sua função, cada vez que sua função é invocada, o New Relic também o é. Você pode obter insights sobre as principais métricas de desempenho, como duração, partidas a frio, exceções e rastreamentos.

Este documento explicará a arquitetura de monitoramento Lambda da New Relic e orientará você na vinculação de suas contas AWS e New Relic. Você precisará vincular suas contas antes de implementar suas funções.

Como funciona a instrumentação Lambda

Estes são os elementos essenciais da instrumentação AWS Lambda com New Relic:

  • Sua função: sua função é o código que você deseja entender. Você quer saber quando ele encontra erros, por que está lento ou com que frequência é invocado.
  • O agente ou SDK do New Relic : Dependendo do idioma em que sua função está escrita, New Relic fornece diferentes agentes ou SDKs. Seu trabalho é fazer o monitoramento real do seu código. Ele mede a duração de suas invocações de função, observa os erros que ocorrem, registra detalhes sobre o evento de origem e as respostas de suas funções. Para fazer isso, ele precisa envolver a função do manipulador de invocação do Lambda.
  • A extensão New Relic Lambda: Quando você instrumenta a extensão New Relic Lambda em sua função, ela será executada dentro do ambiente de execução Lambda, junto com seu código. Ele aprimora a telemetria que o agente coleta e envia para o backend da New Relic em lotes. Ele também pode enviar o log da sua função para New Relic. Você não precisa da extensão Lambda para monitor sua função com New Relic.

Escolha seu método de envio

Existem três maneiras de enviar sua telemetria New Relic AWS Lambda. O método de envio que você escolher depende de suas necessidades de dados.

  • Custo: A maneira mais econômica de usar AWS Lambda é usando qualquer uma de nossas camadas, que inclui a extensão Lambda. Por padrão, nossa extensão nunca envia dados para o AWS CloudWatch.
  • Confiabilidade: você pode enviar seus dados somente por meio do CloudWatch. Para fazer isso, você desativará a extensão New Relic Lambda. Isso significa que sua função do Lambda será mais leve e não terá nenhum processo adicional para executar quando for invocada. Neste caso, o log e a carga serão enviados para a New Relic através do CloudWatch e não através da extensão.
  • O melhor dos dois mundos: usar a extensão com o AWS CloudWatch como alternativa ajuda a manter os custos baixos e, ao mesmo tempo, fornece proteção contra falhas caso haja um problema com a extensão.

Mostraremos como instrumentar sua função do Lambda usando cada método em nossos documentos de instrumentação:

Antes de você começar

Antes de habilitar o monitoramento Serverless usando nossa camada Lambda, você precisará de:

  1. Uma conta New Relic com função de administrador ou com o Infrastructure manager função complementar.

  2. Um

    .

  3. Uma conta AWS com permissões para criar recursos IAM, segredos gerenciados e Lambdas. Você também precisa de permissões para criar pilha do CloudFormation e buckets S3.

Então você precisará concluir o seguinte:

  1. Instale a configuraçãoda AWS CLI v2 usando aws configure. Você precisará de um ID de chave de acesso da AWS e uma chave de acesso secreta da AWS.

  2. Instale o Python versão 3.3 ou superior.

  3. Instale a CLI newrelic-lambda. Para instalar, execute o seguinte:

    bash
    $
    pip3 install newrelic-lambda-cli
  4. Por padrão, usamos a política gerenciada pela AWS ReadOnlyAccess. Isso permite que a integração da infraestrutura veja todos os recursos da sua conta, e não apenas a sua função do Lambda e as métricas do CloudWatch. New Relic recomenda este padrão, mas entendemos que algumas organizações preferem uma postura de segurança rigorosa para integração de terceiros. Se você quiser limitar o acesso do New Relic, a função IAM pode ser concedida com um mínimo destas permissões:

Resource: "*"
Action:
- "cloudwatch:GetMetricStatistics"
- "cloudwatch:ListMetrics"
- "cloudwatch:GetMetricData"
- "lambda:GetAccountSettings"
- "lambda:ListFunctions"
- "lambda:ListAliases"
- "lambda:ListTags"
- "lambda:ListEventSourceMappings"
  1. Antes de executar a CLI, você precisará conceder à New Relic um mínimo destas permissões na AWS:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CLIAccessPolicy",
"Action": [
"cloudformation:CreateChangeSet",
"cloudformation:CreateStack",
"cloudformation:DescribeStacks",
"cloudformation:ExecuteChangeSet",
"iam:AttachRolePolicy",
"iam:CreateRole",
"iam:GetRole",
"iam:PassRole",
"lambda:AddPermission",
"lambda:CreateFunction",
"lambda:GetFunction",
"logs:DeleteSubscriptionFilter",
"logs:DescribeSubscriptionFilters",
"logs:PutSubscriptionFilter",
"s3:GetObject",
"serverlessrepo:CreateCloudFormationChangeSet",
"secretsmanager:CreateSecret"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "NRLogAccessPolicy",
"Effect": "Allow",
"Action": [
"serverlessrepo:CreateCloudFormationTemplate",
"serverlessrepo:GetCloudFormationTemplate"
],
"Resource": "arn:aws:serverlessrepo:us-east-1:463657938898:applications/NewRelic-log-ingestion"
}
]
}

Se quiser saber mais sobre nossa CLI, consulte nosso repositório CLI.

Recomendamos os seguintes tempos de execução:

  • Node.js: nodejs16.x, nodejs18.x, nodejs20.x
  • Python: python3.8, python3.9, python3.10, python3.11, python3.12
  • Go: provided.al2
  • Java: java8.al2, java11, java17
  • Ruby: ruby3.2, ruby3.3
  • .NET: dotnet6, dotnet8

Considere os custos

Ativar o monitoramento Serverless para AWS Lambda pode resultar em cobranças da Amazon Web Services. Nossa newrelic-log-ingestion função do Lambda, que nos reporta seus dados Lambda, é considerada um serviço de terceiros: as cobranças AWS resultantes de seu uso são de sua responsabilidade.

Se você usar a extensão Lambda, poderá evitar a cobrança de ingestão de log do CloudWatch para telemetria coletada pelo New Relic.

Antes de poder instrumentar sua função, você precisará vincular sua conta AWS ao New Relic. Ao vincular contas, você está concedendo permissão New Relic para criar um inventário de sua conta AWS e coletar automaticamente informações do CloudWatch para sua função do Lambda. Depois de vincular as contas, os recursos da sua conta AWS aparecerão como entidade no explorador de entidades.

Camada Lambda do instrumento New Relic com a CLI newrelic-lambda

Para usar a camada Lambda do instrumento New Relic, execute:

bash
$
newrelic-lambda integrations install --nr-account-id YOUR_NR_ACCOUNT_ID \
>
--nr-api-key YOUR_NEW_RELIC_USER_KEY

A CLI newrelic-lambda adiciona New Relic como um segredo no AWS Secret Manager para maior segurança.

Instalar Streams métricos

Para que New Relic monitor sua função do Lambda, você precisará instalar o métrica Streams ou API Polling. Recomendamos o uso de métrica Streams, mas você também pode deixar que a CLI instale automaticamente a integração API Polling para você.

Se você quiser usar o métrica Streams, instale-o agora antes de executar a CLI. Você pode instalar isso usando nossa integração Connect AWS usando a documentação do métrica Streams .

Variáveis ambientais

Quando você utiliza a camada Lambda do New Relic com a CLI, suas variáveis de ambiente são configuradas automaticamente. Você pode alterar algumas das configurações padrão e configurar sua função do Lambda com as variáveis de ambiente que atendem às suas necessidades de monitoramento. Escolha seu tempo de execução para ver as variáveis de ambiente disponíveis e nossas recomendações para configurações padrão.

Experimente nossas funções de exemplo

Depois de instrumentar a camada Lambda do New Relic, recomendamos fortemente experimentar nossas funções de exemplo. Esses exemplos de trabalho devem ser usados como ponto de partida para instrumentar sua própria função serverless. O uso desses exemplos pode ajudá-lo a se familiarizar com a camada New Relic Lambda, testando o link da conta, e eles podem ser usados como referência para sua própria instrumentação. Each example demonstrates adding permissions, runtime-specific techniques for wrapping your handler, managing function log retention in CloudWatch, and more.

Embora existam muitas maneiras de gerenciar e implantar a função do Lambda, AWS CloudFormation é o mecanismo que usamos em nossos exemplos.

Nossos exemplos são publicados, juntamente com a extensão New Relic Lambda, neste repositório GitHub. Há um para cada tempo de execução do Lambda que o New Relic suporta:

  • Node.js

  • Python

  • Go

  • Java

  • Ruby

  • .NET

    Você também pode aprender como transformar distributed tracing em um aplicativo sem servidor não trivial em nosso exemplodistributed tracing . Ele ilustra a propagação manual trace para SQS e SNS, dois dos serviços mais populares que podem invocar a função do Lambda, com funções Node, Python, Ruby e Java.

    Dica

    Ao testar manualmente, os dados de telemetria podem ser atrasados. Recomendamos aguardar sete segundos antes de invocar a função novamente, permitindo que qualquer telemetria armazenada em buffer seja entregue.

Resolução de problemas

Se você tiver problemas instrumentados em sua função do Lambda, aqui estão algumas dicas comuns de resolução de problemas:

Qual é o próximo

Containerized Lambda functions

Se você possui a função do Lambda conteinerizada, clique aqui para instrumento.

Non-containerized Lambda functions

Se você possui função do Lambda não conteinerizada, clique aqui para instrumento.

Layerless Lambda functions

Se você possui a função do Lambda sem camadas, clique aqui para instrumento.

Copyright © 2024 New Relic Inc.

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