Este es un paso para habilitar el monitoreo AWS Lambda de New Relic.
New Relic proporciona ejemplos mínimos de trabajo como punto de partida para instrumentar tu propia función serverless, de modo que puedas familiarizarte con los elementos necesarios, probar el enlace de la cuenta y utilizarlos como referencia para tu propia instrumentación.
Si bien hay muchas formas de administrar y desplegar la función Lambda, AWS CloudFormation es el mecanismo que utilizamos para nuestros ejemplos. Requiere herramientas mínimas, tiene soporte propio y también respalda muchas de las opciones de implementación de terceros.
Ejemplo característico
Cada uno de nuestros ejemplos básicos es funcionalmente idéntico e ilustra la siguiente característica de New Relic:
- Envío de telemetría de invocación a New Relic, a través de la extensión New Relic Lambda
- Agregar atributo personalizado al evento de invocación
- Añadiendo evento personalizado a la telemetría
Además, cada uno demuestra:
Usando la capa New Relic Lambda con su función
Agregar permisos a la función para acceder a AWS Secrets Manager y recuperar la New Relic
Técnicas específicas de tiempo de ejecución para ajustar su controlador, de modo que New Relic pueda capturar telemetría
Administrar la retención log de funciones en CloudWatch
Opcionalmente, reenvíe el log de la función al producto de logging de New Relic a través de la extensión Lambda.
Ejemplos
Nuestros ejemplos se publican, junto con la extensión New Relic Lambda, en este repositorio de GitHub. Hay uno para cada tiempo de ejecución de Lambda que New Relic puede instrumentar:
Sugerencia
A medida que pruebe los ejemplos, podrá notar que la telemetría no siempre se envía de inmediato. El ciclo de vida de AWS Lambda impone ciertas restricciones a la ejecución de nuestro agente y la extensión Lambda. Además, la valiosa telemetría de la plataforma solo está disponible después de que se haya completado una invocación. La extensión New Relic equilibra el rendimiento general con la necesidad de una entrega oportuna de telemetría almacenando la telemetría en un búfer durante un período de tiempo y entregándola a New Relic en lotes, durante una invocación posterior (o durante el apagado).
En una función de producción, encontramos que esto funciona muy bien. Cuando se realizan pruebas manualmente, a menudo es necesario esperar siete segundos y luego invocar una función nuevamente para darle la oportunidad de entregar telemetría previamente almacenada en el búfer.
Si bien nos esforzamos por mantener actualizadas las plantillas de nuestros ejemplos, siempre puede encontrar la última capa New Relic Lambda para su región y tiempo de ejecución en nuestro sitio de capas. Este sitio también ofrece una API, que puede utilizar en su proceso de CI/CD para mantener sus propias plantillas actualizadas.
rastreo distribuido
Además de nuestros ejemplos básicos, ofrecemos un ejemplo de cómo integrar rastreo distribuido en una aplicación sin servidor no trivial en nuestro ejemplo de rastreo distribuido. Ilustra la propagación manual de trazas para SQS y SNS, dos de los servicios más populares que pueden invocar la función Lambda, con funciones de Node, Python, Ruby y Java.