Esta é uma etapa para ativar o monitoramento AWS Lambda da New Relic.
New Relic fornece exemplos mínimos de trabalho como ponto de partida para a sua própria função serverless, para que você possa se familiarizar com os elementos necessários, testar o link da conta e usá-los como referência para sua própria instrumentação.
Embora existam muitas maneiras de gerenciar e implantar a função do Lambda, o AWS CloudFormation é o mecanismo que usamos em nossos exemplos. Ele requer ferramentas mínimas, tem suporte interno e também sustenta muitas das opções de implantação de terceiros.
Exemplo de recurso
Cada um dos nossos exemplos básicos é funcionalmente idêntico e ilustra o seguinte recurso New Relic:
- Enviando telemetria de invocação para New Relic, por meio da extensão New Relic Lambda
- Adicionando atributo personalizado ao evento de invocação
- Adicionando evento personalizado à telemetria
Além disso, cada um demonstra:
Usando a camada New Relic Lambda com sua função
Adicionar permissões à função para acessar o AWS Secrets Manager e recuperar a New Relic
Técnicas específicas de tempo de execução para encapsular seu manipulador, para que o New Relic possa capturar telemetria
Gerenciar a retenção log de funções no CloudWatch
Opcionalmente, encaminhando o log da função para o produto de registro da New Relic por meio da extensão Lambda
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 pode utilizar:
Dica
Ao testar os exemplos, você poderá perceber que a telemetria nem sempre é enviada imediatamente. O ciclo de vida do AWS Lambda impõe certas restrições à execução de nosso agente e da extensão Lambda. Além disso, a valiosa telemetria da plataforma só estará disponível após a conclusão de uma invocação. A extensão New Relic equilibra o desempenho geral com a necessidade de entrega oportuna de telemetria, armazenando a telemetria em buffer por um período de tempo e entregando-a à New Relic em lotes, durante uma invocação subsequente (ou durante o desligamento).
Numa função de produção, achamos que isso funciona muito bem. Ao testar manualmente, muitas vezes é necessário esperar sete segundos e, em seguida, invocar uma função novamente para lhe dar a oportunidade de entregar telemetria previamente armazenada em buffer.
Embora façamos um esforço para manter os modelos em nossos exemplos atualizados, você sempre pode encontrar a camada New Relic Lambda mais recente para sua região e tempo de execução em nosso site de camadas. Este site também oferece uma API, que você pode usar em seu pipeline de CI/CD para manter seus próprios modelos atualizados.
Distributed tracing
Além de nossos exemplos básicos, oferecemos um exemplo de como integrar 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.