Problema
Você está tentando habilitar o monitoramento Serverless para AWS Lambda e está tendo um problema ou erro.
Solução
Existem dois problemas comuns relacionados à não conclusão de todos os procedimentos de habilitação:
Não estou vendo dados na página da interface do usuário
CloudWatch metrics
. Isso significa que a etapa de integração da AWS não foi concluída.
Não vejo dados em
Troubleshooting
páginas de interface de categoria. Se você não estiver vendo dados nas guias de interface
Distributed tracing
,
Errors
e
Invocations
, isso significa que a etapa de instrumentação de agente do APM não foi concluída.
Além desses problemas básicos de ativação, existem alguns problemas adicionais que podem causar problemas:
Erro do CloudWatch "Erro HTTP 401: não autorizado." Isso ocorre devido a uma chave de API incorreta. O argumento
--nr-api-key
na etapa Configurar AWS enable leva seu , que é diferente da chave de API REST.Faltam métricas personalizadas. A monitorização lambda não é compatível com a nossa métrica personalizada. Use atributo personalizado para adicionar metadados.
Faltam invocações. Para ver os detalhes do detalhamento da invocação, distributed tracing deve ser habilitado como parte da etapa de instrumentação do Lambda. distributed tracing é necessário para que os detalhes do intervalo possam ser exibidos no painel de detalhes da chamada.
Você concluiu as etapas de instalação, integração e instrumentação corretamente e sua função está enviando log para o CloudWatch, mas você não está vendo rastreamento de dependência específica (ou qualquer rastreamento) na interface. Isso pode resultar da ordem de fusão das camadas (se você estiver usando nossas camadas Lambda) ou da ordem de importação (se você estiver usando o instrumento manualmente):
Se você usa camadas: certifique-se na configuração da sua função que a camada New Relic seja mesclada antes de outras camadas (embora se sua função usar webpack, a camada New Relic deva ser mesclada após a camada webpack).
Se você usar uma função Node.js manualmente, certifique-se de que o registro esteja ativado e que sua função importe
newrelic
antes de importar qualquer dependência que você espera monitor.
Se você estiver usando módulos ES com uma função Node.js, certifique-se de que a variável de ambiente
NEW_RELIC_USE_ESM
esteja definida comotrue
. Além disso, certifique-se de usar async/await ou promessas para lidar com comportamento assíncrono em sua função, pois funções baseadas em retorno de chamada não são suportadas ao usar módulos ES.
Se nenhuma dessas soluções ajudar você, entre em contato com nossa equipe de suporte. As informações a seguir irão ajudá-lo quando você falar com técnicos de suporte:
- A função do Lambda já apareceu na interface antes? Se sim, qual é o nome da função?
- Se alguns dados da função do Lambda estão aparecendo na interface, quais dados específicos estão aparecendo?
- Qual agente de linguagem APM você está usando para instrumentalizar a função?