Este es el primer paso para habilitar el monitoreo AWS Lambda de New Relic.
Cuando vincula su cuenta de AWS a New Relic, le otorga permiso a New Relic para crear un inventario de su cuenta de AWS y recopilar métricas de CloudWatch para su función Lambda. Los recursos en su cuenta de AWS luego aparecen como entidad en el explorador de entidades, decorados con información de configuración.
Para que funcione el monitoreo serverless de la función Lambda, requiere una integración de API Polling o Streams métrica . Puede configurar su elección de integración antes de iniciar la vinculación de esta cuenta, o puede dejar que la CLI instale la integración de sondeo API por usted.
En este paso de integración, también almacenaremos su New Relic en el servicio AWS Secrets Manager, para que podamos enviar su telemetría a su cuenta de New Relic.
Método recomendado: la CLI newrelic-lambda
Requisitos
Para habilitar el monitoreo serverless usando nuestra capa Lambda, necesita lo siguiente:
AWS CLI v2 instalado y configurado mediante
aws configure
.Python versión 3.3 o superior instalada.
CLI newrelic-lambda, que puede instalar ejecutando
pip3 install newrelic-lambda-cli
.Una cuenta New Relic . Debe tener una función de administrador o tener la función de complemento
Infrastructure manager
.
Un
.
Una cuenta de AWS con permisos para crear recursos de IAM, secretos administrados y Lambdas. También necesita permisos para crear una pila de CloudFormation y depósitos de S3.
Para obtener detalles detallados sobre la CLI, consulte nuestro repositorio de CLI.
Integrar con CLI
Dado que el monitoreo serverless de Lambda función requiere una integración de API Polling o métrica Streams , la CLI instalará automáticamente API Polling si no ve una integración. Si prefiere métrica Streams, instálelo ahora antes de ejecutar la CLI.
Cuando se cumplan todos los requisitos , vincule su cuenta de AWS con su cuenta de New Relic ejecutando el siguiente comando usando su clave de usuario (reemplace todos los valores resaltados):
newrelic-lambda integrations install --nr-account-id YOUR_NR_ACCOUNT_ID \
--nr-api-key YOUR_NEW_RELIC_USER_KEY
La newrelic-lambda
CLI agrega su New Relic como secreto en AWS Secret Manager para mayor seguridad.
Sugerencia
Storing the New Relic license key in the AWS Secrets Manager
Su lo identifica y lo autentica en New Relic, lo que nos permite asociar su telemetría con su cuenta de New Relic. Cada función que envía telemetría necesita acceso a este valor y debe administrarse de forma segura. AWS Secrets Manager resuelve estos problemas.
Si su organización le impide utilizar AWS Secrets Manager o si necesita almacenar más de un secreto por región, consulte a continuación un método alternativo para configurar su clave de licencia.
Método alternativo
¿Te ha ayudado este documento con la instalación?
Resolución de problemas
Para obtener una serie de guías de resolución de problemas para Lambda, consulte estas publicaciones en nuestro foro de soporte:
- Conocimientos generales Parte 1
- Conocimientos generales Parte 2
- Detalles de instalación por método
- Resolución de problemas Lambda Parte 1
- Resolución de problemas Lambda Parte 2
Aquí hay más detalles sobre otros problemas y soluciones.
No se puede utilizar el administrador de secretos de AWS
Si su organización no permite el uso de AWS Secrets Manager, la extensión New Relic Lambda aceptará una variable de entorno NEW_RELIC_LICENSE_KEY
. Agregue la bandera --disable-license-key-secret
del comando newrelic-lambda integrations install
. Luego, establezca esta variable de entorno en su en la configuración de su función Lambda.
Múltiples regiones y cuentas de AWS
La CLI newrelic-lambda
debe ejecutarse una vez por región, con el parámetro --aws-region
. Utilice el mismo nombre de cuenta vinculada y la herramienta detectará que el vínculo de la cuenta ya se ha creado. El secreto debe crearse en cada región.
De manera similar, se pueden vincular varias cuentas de AWS a una cuenta de New Relic. Asigne a cada cuenta un nombre de cuenta vinculado diferente. El argumento --aws-profile
de la herramienta CLI seleccionará el perfil nombrado. La herramienta utiliza la misma configuración que la AWS CLI.
La función Lambda no se muestra como instrumentada
Ha instrumentado su función Lambda pero no se muestra como instrumentada en la sección Amazon Web Services -> Lambda functions de New Relic.
Ha vinculado manualmente un sondeo API y la integración de métrica Streams a su cuenta New Relic en la UI.
En este escenario con dos integraciones para la misma cuenta de AWS en una cuenta de New Relic, se producirá una condición de carrera cuando se reciba la carga instrumentada desde la función Lambda instrumentada en el extremo del recolector de nubes de New Relic. La carga útil se asignará aleatoriamente a una de las dos integraciones. Si se asigna a la integración no vinculada a su entidad de función, la carga útil se eliminará y la función no se mostrará como instrumentada. Solo las funciones que hayan recibido al menos una carga útil en los últimos 30 días hasta el evento AwsLambdaInvocation
se mostrarán como instrumentadas.
FROM AwsLambdaInvocation SELECT count(*) SINCE 30 days ago WHERE entityGuid = 'ENTITY_GUID' LIMIT 1
Para evitar la creación de dos integraciones para la misma cuenta de AWS, le recomendamos utilizar la CLI newrelic-lambda
, como se mencionó anteriormente, porque detectará una integración existente y la usará.
Si ya se han creado dos integraciones, elija una para conservar y desvincule la otra haciendo clic en Unlink this account en Infrastructure > AWS en New Relic.
Sugerencia
Existen algunas limitaciones para las integraciones de métrica Streams que deben considerarse antes de desvincular una integración de sondeo API. También existen algunas limitaciones para la consulta métrica de Infraestructura Dimensional que deben considerarse antes de comprometerse completamente con una integración de Streams métrica.
No se pudo recuperar la clave de licencia AccessDeniedException
Su código lambda requiere el rol de ejecución que tiene permiso para leer AWS Secrets Manager. Si encuentra un log como el siguiente, agregue el permiso apropiado a la política del rol de ejecución. En nuestros ejemplos, consulte el archivo template.yaml
para ver una manera sencilla de otorgar este permiso.
Failed to retrieve license key AccessDeniedException: User: <ARN> is not authorized to perform: secretsmanager:GetSecretValue on resource: <ARN>