Avant de commencer
- Si vous ne l’avez pas fait, vous souhaiterez peut-être vérifier que votre fonction Lambda répond à notre compatibilité et à nos exigences.
Installer Lambda monitoring
Lambda monitoring comprend :
- Une intégration AWS pour ingérer des métriques CloudWatch et effectuer la synthèse d'entités au sein de New Relic.
- Un agent New Relic inclus dans nos couches Lambda New Relic ou en tant que SDK.
- Une méthode d'envoi de charge et de logs à New Relic via notre fonction d'ingestion newrelic-log ou extension. Si vous utilisez New Relic Lambda Layers, vous n'avez pas besoin d'effectuer de configuration supplémentaire pour envoyer des données.
Associez vos comptes AWS et New Relic
Conseil
Si vous utilisez newrelic-lambda-cli pour instrumenter votre fonction Lambda, le processus de liaison est automatisé, vous permettant de contourner cette étape.
En liant des comptes, vous accordez à New Relic l'autorisation de créer un inventaire de votre compte AWS et de collecter automatiquement les métriques CloudWatch pour votre fonction Lambda. Une fois que vous avez lié des comptes, les ressources de votre compte AWS apparaissent sous forme d'entité dans l'explorateur d'entités. L'entité fonction Lambda se trouvera dans la vue fonction serverless.
Vous pouvez lier votre compte AWS et New Relic par l’une des méthodes d’intégration suivantes.
Pour que New Relic puisse monitorer votre fonction Lambda, vous devez configurer une intégration entre New Relic et AWS. Nous vous recommandons d'utiliser des flux métriques pour aider à réduire la latence et éviter la limitation de nos requests d'interrogation.
Si vous n'utilisez pas d'intégration Métrique Streams, vous pouvez choisir de configurer une intégration API Polling à la place. Par défaut, une intégration d'interrogation API avec le service Lambda activé interrogera toutes les 5 minutes les métriques CloudWatch.
Vous pouvez utiliser newrelic-lambda-cli pour configurer une intégration d'interrogation API, mais pas une intégration de flux métrique.
$newrelic-lambda integrations install --nr-account-id YOUR_NR_ACCOUNT_ID \>--nr-api-key YOUR_NEW_RELIC_USER_KEY
Une étape de la commande d’installation d’intégration créera un secret NEW_RELIC_LICENSE_KEY
dans AWS Secrets Manager pour une sécurité améliorée. Ceci est configurable avec un indicateur --disable-license-key-secret
, ainsi que d'autres options et indicateurs.
instrumentez votre fonction Lambda
Pour instrumenter votre fonction Lambda, vous avez besoin d'un agent et d'une extension. Ces composants sont regroupés dans la couche New Relic Lambda. Si l’utilisation de couches Lambda n’est pas une option pour vous, vous pouvez incorporer manuellement l’agent et l’extension dans votre fonction. En fonction des exigences de votre fonction Lambda, sélectionnez l’une des méthodes d’instrumentation suivantes :
Utilisez cette méthode si votre fonction Lambda est packagée sous forme de fichier Zip et que vous pouvez ajouter des calques. Les couches sont un mécanisme de distribution pour la bibliothèque, les environnements d'exécution personnalisés et d'autres dépendances. Pour plus d'informations, reportez-vous à la documentation de l'instrumentation en couches .
Utilisez cette méthode si votre fonction Lambda ne peut pas utiliser de couches, garantissant un déploiement rapide sans qu'il soit nécessaire de modifier les couches. Pour plus d'informations, reportez-vous à la documentation de l'instrumentation basée sur le SDK .
Utilisez cette méthode si votre fonction Lambda s’exécute dans un conteneur. conteneur fournit un environnement d'exécution cohérent et isolé pour vos applications. New Relic fournit une image Docker prédéfinie qui inclut la couche New Relic Lambda, l'extension New Relic Lambda et l'agent New Relic. Pour plus d'informations, reportez-vous à la documentation de l'instrumentation conteneurisée .
Configurer les variables d’environnement
Conseil
- Lorsque vous instrumentez la couche Lambda de New Relic avec la CLI New Relic, vos variables d'environnement obligatoires sont configurées automatiquement. Cependant, vous souhaiterez peut-être modifier certains des paramètres par défaut et configurer votre fonction Lambda avec les variables d'environnement qui correspondent à vos besoins monitoring .
- Si vous utilisez l’extension New Relic Lambda, vous devez configurer les variables d’environnement manuellement.
Les variables d’environnement sont utilisées pour configurer l’agent New Relic et l’extension Lambda. Il est important de définir correctement ces variables pour garantir que vos fonctions Lambda sont correctement monitorées.
Essayez nos exemples de fonctions
Après avoir instrumenté la couche Lambda de New Relic, nous vous recommandons vivement d'essayer nos exemples de fonctions. Ces exemples de travail doivent être utilisés comme point de départ pour instrumenter votre propre fonction serverless. L’utilisation de ces exemples peut vous aider à vous familiariser avec la couche New Relic Lambda, à tester le lien de compte, et ils peuvent être utilisés comme référence pour votre propre instrumentation. Chaque exemple illustre l'ajout d'autorisations, des techniques spécifiques à l'exécution pour encapsuler votre gestionnaire, la gestion de la conservation log des fonctions dans CloudWatch, et bien plus encore.
Bien qu'il existe de nombreuses façons de gérer et d'utiliser la fonction Lambda, AWS CloudFormation est le mécanisme que nous utilisons pour nos exemples.
Nos exemples sont publiés, aux côtés de l'extension New Relic Lambda, dans ce référentiel GitHub. Il y en a un pour chaque runtime Lambda pris en charge par New Relic :
Vous pouvez également apprendre comment instrumenter le tracing distribué dans une application sans serveur non triviale dans notre exemple de tracing distribué. Il illustre la propagation manuelle trace pour SQS et SNS, deux des services les plus populaires susceptibles d'invoquer la fonction Lambda, avec les fonctions Node, Python, Ruby et Java .
Conseil
Lors de tests manuels, les données télémétriques peuvent être retardées. Nous vous recommandons d'attendre sept secondes avant d'appeler à nouveau la fonction, ce qui permet à toute télémétrie mise en mémoire tampon d'être transmise.