Este es un paso para habilitar el monitoreo AWS Lambda de New Relic.
Importante
Debido a que hay varios pasos para la integración, es importante que pruebe el enlace de su cuenta implementando y probando una función de ejemplo antes de instrumentar su propio código.
Implementar estrategias
Existen muchas estrategias de implementación diferentes para la función Lambda. New Relic ofrece soporte directo para varios, pero no podemos cubrir todas las opciones. En esencia, la instrumentación de New Relic Lambda se basa en el servicio Lambda en sí, en lugar de cualquier estrategia o herramienta de despliegue particular, por lo que estamos seguros de que se puede hacer que funcione en su caso de uso.
newrelic-lambda
CLI inicio rapido
La herramienta CLI que recomendamos para configurar el enlace de la cuenta también puede reconfigurar su función Lambda para usar New Relic.
Para instalar o actualizar la capa de instrumentación de New Relic, ejecute:
newrelic-lambda layers install --nr-account-id YOUR_NR_ACCOUNT_ID --function my-function --upgrade
Este comando encuentra automáticamente la capa más nueva disponible para la región y el tiempo de ejecución de Lambda.
Esta es una excelente manera de iniciar rápidamente la instrumentación y esta herramienta se puede integrar fácilmente en sus procesos de CI/CD existentes. Sin embargo, dado que modifica los recursos de la función Lambda existente, cuando implementa una actualización de código en su función, puede eliminar sin darse cuenta la instrumentación de New Relic. Asegúrese de volver a ejecutar el comando anterior después de cada actualización o (mejor aún) integre la capa y la configuración asociada con su proceso de implementación existente.
Tenga en cuenta que la CLI puede operar en muchas funciones en un lote: use --function all
, --function installed
o --function not-installed
para operar en todas las funciones en una región, o solo aquellas con o sin instrumentación New Relic existente.
Despliegue continuo
A largo plazo, suele ser menos trabajo integrar New Relic en su proceso de despliegue continuo existente. En lugar de ejecutar la CLI después de actualizar su función, puede integrar New Relic en su framework de despliegue continuo.
Integración inusual
Para la mayoría, una de las opciones anteriores funcionará bien. Sin embargo, existe la posibilidad de que no puedas utilizar ninguna de estas soluciones. Para obtener orientación sobre cómo personalizar su integración para que se ajuste a sus necesidades, siga leyendo.
Telemetría CloudWatch
Como se mencionó anteriormente, solíamos recomendar enviar su telemetría a través del log de CloudWatch. Esta ruta aún puede funcionar, aunque está en desuso.
Deshabilite la extensión agregando la variable de entorno
NEW_RELIC_LAMBDA_EXTENSION_ENABLED
a su función, con el valorfalse
.Cree un filtro de suscripción de logs de CloudWatch para invocar la función
newrelic-log-ingestion
con el log de su función.- La CLI puede hacer esto por usted:
newrelic-lambda subscriptions install --function FUNCTION_NAME
- Como alternativa, utilice la consola de AWS para crear un filtro de suscripción desde el grupo log de CloudWatch de su función para invocar la función
newrelic-log-ingestion
Lambda. Vea abajo.
- La CLI puede hacer esto por usted:
Configuración UI de la consola Lambda
Si bien es más propenso a errores y requiere más mano de obra que los enfoques anteriores, es posible modificar manualmente la configuración de una función Lambda para usar New Relic desde la consola AWS Lambda, para Node.js, Python, Ruby y Java.
Busque la capa que coincida con su tiempo de ejecución y región.
Copie el nombre de recurso de Amazon (ARN) de la versión más reciente y agréguelo en la consola de AWS Lambda para su función.
Actualice el controlador de su función para que apunte a la capa recién adjunta en la consola para su función:
Python y Ruby:
newrelic_lambda_wrapper.handler
(guiones bajos)Nodo:
newrelic-lambda-wrapper.handler
(guiones)Java:
RequestHandler
implementación:com.newrelic.java.HandlerWrapper::handleRequest
RequestStreamHandlerWrapper
implementación:com.newrelic.java.HandlerWrapper::handleStreamsRequest
Agregue estas variables de entorno a su consola Lambda:
NEW_RELIC_ACCOUNT_ID
: Su ID de cuentaNEW_RELIC_LAMBDA_HANDLER
: Ruta a su controlador inicial.
Modifique la función de ejecución para permitir el acceso al secreto de New Relic
Encuentra el ARN del secreto nombrado
NEW_RELIC_LICENSE_KEY
Agregue una nueva política en línea en la función de ejecución de la función que se ve así (reemplazando
SECRET_ARN
con el valor que encontró arriba):"Statement": [{"Action": ["secretsmanager:GetSecretValue"],"Resource": "SECRET_ARN","Effect": "Allow"}]
Tenga en cuenta que para Go, debe realizar cambios en el código fuente de su función Lambda para implementarla. Los cambios de configuración no son suficientes.
Personalización de capas
La capa contiene varios componentes, según su tiempo de ejecución:
Para todos los tiempos de ejecución, el ejecutable de la extensión está empaquetado en la capa.
Para Python, Ruby, Node.js y Java, también incluimos:
- El agente de New Relic
- El paquete de instrumentación del SDK de AWS para el agente New Relic
- Un contenedor de controlador, que configura el agente e intercepta las invocaciones para iniciar el proceso de instrumentación y luego invoca a su controlador.
Si necesita un contenedor diferente, puede crear su propia capa, basada en la nuestra. Consulte nuestro repositorio de GitHub newrelic-lambda-layers para ver el código contenido en nuestra función contenedora. Al crear su propia capa con un envoltorio de reemplazo y aplicarla después de la nuestra, su envoltorio sobrescribirá el que le proporcionamos. De manera similar, puede incluir su contenedor personalizado directamente en su función.
De manera similar, si está probando una compilación personalizada del agente, tal vez para solucionar algún error, puede modificar nuestro script de empaquetado de capas anterior para empaquetar la compilación de su agente y crear su propia capa.
No recomendamos explícitamente que empaquete el agente con su función Lambda. Si bien esto es posible, le resultará difícil actualizar el agente y recibir correcciones de errores. La capa puede entrar en conflicto con su agente proveedor. Esta configuración debe considerarse no compatible, aunque puede funcionar.
¿Te ha ayudado este documento con la instalación?
¿Que sigue?
Después de completar estos pasos, esto es lo que puede hacer a continuación:
- Consulte los informes de datos en la UI de monitoreo de Lambda. Si tiene problemas para encontrar sus datos, consulte Lambda habilitar resolución de problemas.