Esta é uma etapa para ativar o monitoramento AWS Lambda da New Relic.
Importante
Como existem vários passos para a integração, é importante que você teste o link da sua conta implantando e testando uma função de exemplo antes de implementar seu próprio código.
Estratégias de implantação
Existem muitas estratégias de implantação diferentes para a Função do Lambda. A New Relic oferece suporte direto para vários, mas não podemos cobrir todas as opções. Basicamente, a instrumentação New Relic Lambda depende do próprio serviço Lambda, em vez de qualquer estratégia ou ferramenta de implantação específica, por isso estamos confiantes de que ela pode funcionar em seu caso de uso.
newrelic-lambda
Guia de início rápido da CLI
A ferramenta CLI que recomendamos para configurar o link da conta também pode reconfigurar sua função do Lambda para usar o New Relic.
Para instalar ou atualizar a camada de instrumentação New Relic, execute:
newrelic-lambda layers install --nr-account-id YOUR_NR_ACCOUNT_ID --function my-function --upgrade
Este comando encontra automaticamente a camada disponível mais recente para a região e o tempo de execução do seu Lambda.
Essa é uma ótima maneira de iniciar rapidamente a instrumentação e essa ferramenta pode ser facilmente integrada aos seus processos de CI/CD existentes. No entanto, como ele modifica os recursos existentes da Função do Lambda, ao implantar uma atualização de código em sua função, você pode remover inadvertidamente a instrumentação do New Relic. Certifique-se de executar novamente o comando acima após cada atualização ou (melhor ainda) integre a camada e a configuração associada ao seu processo de implantação existente.
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.
implantação contínua
No longo prazo, geralmente é menos trabalhoso integrar o New Relic ao seu processo de implantação contínua existente. Em vez de executar a CLI após atualizar sua função, você pode integrar o New Relic à sua framework de implantação contínua.
Integração incomum
Para a maioria, uma das opções acima funcionará bem. Há uma chance de você não poder usar nenhuma dessas soluções. Para obter orientação sobre como personalizar sua integração para atender às suas necessidades, continue lendo.
Telemetria CloudWatch
Conforme mencionado anteriormente, recomendamos o envio de sua telemetria por meio do log do CloudWatch. Este caminho ainda pode funcionar, embora esteja obsoleto.
Desative a extensão adicionando a variável de ambiente
NEW_RELIC_LAMBDA_EXTENSION_ENABLED
à sua função, com o valorfalse
.Crie um filtro de assinatura de log do CloudWatch para invocar a função
newrelic-log-ingestion
com o log da sua função.- A CLI pode fazer isso por você:
newrelic-lambda subscriptions install --function FUNCTION_NAME
- Como alternativa, use o Console AWS para criar um filtro de assinatura do grupo log do CloudWatch da sua função para invocar a
newrelic-log-ingestion
função do Lambda. Veja abaixo.
- A CLI pode fazer isso por você:
Configuração da interface do console Lambda
Embora seja mais propenso a erros e trabalhoso do que as abordagens acima, é possível 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.
Encontre a camada que corresponde ao seu tempo de execução e região.
Copie o nome de recurso da Amazon (ARN) da versão mais recente e adicione-o no console do AWS Lambda para sua função.
Atualize o manipulador da sua função para apontar para a camada recém-anexada no console da sua função:
Python e Ruby:
newrelic_lambda_wrapper.handler
(sublinhados)Nó:
newrelic-lambda-wrapper.handler
(hífens)Java:
RequestHandler
implementação:com.newrelic.java.HandlerWrapper::handleRequest
RequestStreamHandlerWrapper
implementação:com.newrelic.java.HandlerWrapper::handleStreamsRequest
Adicione estas variáveis de ambiente ao console do Lambda:
NEW_RELIC_ACCOUNT_ID
: ID da sua contaNEW_RELIC_LAMBDA_HANDLER
: caminho para seu manipulador inicial.
Modifique a função de execução para permitir acesso ao segredo da New Relic
Encontre o ARN do segredo nomeado
NEW_RELIC_LICENSE_KEY
Adicione uma nova política in-line na função de execução da função semelhante a esta (substituindo
SECRET_ARN
pelo valor encontrado acima):"Statement": [{"Action": ["secretsmanager:GetSecretValue"],"Resource": "SECRET_ARN","Effect": "Allow"}]
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.
Personalização de camadas
A camada contém vários componentes, dependendo do seu tempo de execução:
Para todos os tempos de execução, o executável da extensão é empacotado na camada.
Para Python, Ruby, Node.js e Java, também incluímos:
- O agente New Relic
- O pacote de instrumentação AWS SDK para o agente New Relic
- Um wrapper de manipulador, que configura o agente e intercepta invocações para iniciar o processo de instrumentação e, em seguida, invoca seu manipulador.
Se precisar de um wrapper diferente, você pode construir sua própria camada, baseada na nossa. Consulte nosso repositório GitHub newrelic-lambda-layers para obter o código contido em nossa função wrapper. Ao criar sua própria camada com um wrapper substituto e aplicá-la depois do nosso, seu wrapper substituirá aquele que fornecemos. Da mesma forma, você pode incluir seu wrapper personalizado diretamente em sua função.
Da mesma forma, se você estiver testando uma construção personalizada do agente, talvez para resolver algum bug, você pode modificar nosso script de empacotamento de camada acima para empacotar a construção do seu agente e construir sua própria camada.
Não recomendamos explicitamente que você empacote o agente com sua função do Lambda. Embora isso seja possível, torna difícil atualizar o agente e receber correções de bugs. A camada pode entrar em conflito com o seu agente fornecedor. Tal configuração deve ser considerada não suportada, embora possa funcionar.
Este documento ajudou você na instalação?
Qual é o próximo?
Depois de concluir essas etapas, veja o que você pode fazer a seguir:
- Veja relatório de dados na interface de monitoramento do Lambda. Se você estiver tendo problemas para encontrar seus dados, consulte Lambda permitir resolução de problemas.