Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Vous pouvez instrument votre fonction Lambda en ajoutant la couche New Relic Lambda. Cela intègre l'agent New Relic, permettant monitoring automatique à chaque fois que vos fonctions sont invoquées.
Conseil
New Relic recommande d'intégrer votre compte AWS à New Relic en utilisant l' intégration AWS pour découvrir et monitorer automatiquement votre fonction Lambda. Cela vous permet d'exploiter pleinement la puissance de New Relic APM pour votre serveur de fonctions.
Méthodes d'instrumentation
New Relic propose plusieurs méthodes pour instrumenter votre fonction AWS Lambda pour monitoring complète :
interface de ligne de commande (CLI): utilisez l'AWS CLI pour ajouter rapidement la couche New Relic à votre fonction Lambda.
Framework Serverless : intégrez de manière transparente l'instrumentation New Relic dans votre déploiement sans serveur.
CloudFormation/SAM: incluez la couche New Relic dans vos modèles d’infrastructure en tant que code.
AWS CDK: ajoutez la couche New Relic Lambda dans votre code CDK aux côtés d’autres ressources d’infrastructure.
Terraform: gérez facilement l'instrumentation New Relic avec vos autres ressources d'infrastructure.
Instrumentation manuelle: ajoutez directement la couche New Relic via la console AWS Lambda pour un contrôle plus précis.
Quelle que soit la méthode choisie, la couche New Relic ajoute l'agent New Relic à vos fonctions. Cet agent instrumente automatiquement vos fonctions lors de l'invocation, générant une charge, NR_LAMBDA_MONITORING, qui est envoyée à New Relic via l'extension New Relic Lambda .
Selon vos besoins, vous pouvez choisir de contourner l'extension et de voir uniquement la télémétrie dans CloudWatch, de contourner CloudWatch ou d'utiliser CloudWatch comme solution de secours. La section CloudWatch à la fin de ce document vous guidera à travers chaque option.
Vous pouvez instrumenter votre fonction Lambda avec le quickstart newrelic-lambda CLI.
Pour installer ou mettre à niveau la couche d'instrumentation New Relic, exécutez cette commande :
Cette commande recherche automatiquement la couche la plus récente disponible pour la région et l'environnement d'exécution de votre Lambda.
Cette commande fournit un moyen rapide d'initier l'instrumentation New Relic et peut être facilement intégrée à votre pipeline CI/CD. Cependant, étant donné qu’il modifie les ressources de fonction Lambda existantes, le redéploiement du code mis à jour peut supprimer par inadvertance l’instrumentation. Pour assurer monitoring continue, réexécutez la commande après chaque déploiement ou, de préférence, intégrez la couche et la configuration New Relic directement dans votre processus de déploiement.
Notez que la CLI peut fonctionner sur de nombreuses fonctions dans un lot : utilisez --function all, --function installed ou --function not-installed pour fonctionner sur toutes les fonctions d'une région, ou uniquement celles avec ou sans instrumentation New Relic existante.
Le modèle d'application Serverless d'AWS, ou SAM, est une variante des modèles CloudFormation qui simplifie la relation entre les fonctions et les ressources dont elles dépendent et la gestion du cycle de vie d'une application entière. Nous utilisons SAM et CloudFormation pour la plupart de nos fonctions d’exemple Lambda, et de nombreux autres outils sont construits sur des modèles CloudFormation, offrant une couche d’abstraction supplémentaire.
CloudFormation est un service AWS qui simplifie l'approvisionnement et la gestion des ressources AWS. En définissant l'état souhaité des ressources dans les modèles YAML ou JSON, CloudFormation gère automatiquement l'appel d'API sous-jacent pour créer, mettre à jour ou supprimer des ressources selon les besoins. Cette approche déclarative automatise la gestion de l’infrastructure, garantissant cohérence et reproductibilité.
Pour monitorer votre fonction Lambda avec New Relic :
Installez la couche Lambda de New Relic. Voici un exemple de modèle CloudFormation simple pour une fonction Lambda Node.js :
AWSTemplateFormatVersion:'2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: And example of a simple instrumented Node.js Lambda
Resources:
NewRelicExample:
Type: AWS::Serverless::Function
Properties:
# In this example, we're using the SAM CLI to package and deploy our lambda. SAM will transform this value during the publish step.
CodeUri: newrelic-example-node/
# The handler for your function needs to be the one provided by the instrumentation layer, below.
Handler: newrelic-lambda-wrapper.handler
Runtime: nodejs22.x
Environment:
Variables:
# For the instrumentation handler to invoke your real handler, we need this value
Déployez votre fonction Lambda avec la configuration mise à jour.
Serverless Framework est un outil de développement et de résolution de problèmes populaire pour les applications sans serveur. Il est écrit pour AWS en Node.js et agit principalement comme une abstraction de haut niveau sur les modèles CloudFormation. Il fonctionne bien pour les fonctions Node, Python, Ruby, Java et .NET.
Déployez votre fonction Lambda avec la configuration mise à jour.
Le kit de développement cloud AWS (AWS CDK) est un framework permettant de définir des ressources cloud dans le code et de les provisionner via AWS CloudFormation.
Pour utiliser New Relic avec AWS CDK, suivez ces étapes :
Installez la couche Lambda de New Relic. Voici un exemple d'application CDK de base qui déploie une fonction Lambda Node.js instrumentée New Relic :
Déployez votre fonction Lambda avec la configuration mise à jour.
Terraform est un outil d'infrastructure en tant que code à usage général populaire. Il peut être utilisé pour gérer les ressources AWS. Nous proposons quelques exemples de New Relic instrumenté fonction Lambda déployée en utilisant le script Terraform.
Vous pouvez utiliser le fournisseur New Relic Terraform pour configurer votre intégration AWS. Lors de la configuration du fournisseur, configurez les variables d'environnement requises et ajoutez la tag NR.Apm.Lambda.Mode: true à votre fonction Lambda.
Bien que cela soit plus sujet aux erreurs et demande plus de travail que les approches ci-dessus, vous pouvez modifier manuellement la configuration d'une fonction Lambda pour utiliser New Relic à partir de la console AWS Lambda, pour Node.js, Python, Ruby et Java.
Voici un exemple de la manière d'instrumenter le monitoring Lambda de pour un environnement d'exécution Ruby :
Accédez à la section du service Lambda dans la console Web AWS. À partir de là, recherchez la fonction Lambda que vous souhaitez connecter à New Relic.
Dans l’onglet Code par défaut, faites défiler jusqu’à la section Layers et cliquez sur le bouton Add a layer .
Cliquez sur le bouton Create layer .
Accédez à Choose a layer et sélectionnez l’option Specify an ARN .
Accédez à la liste des couches de New Relic et utilisez la liste déroulante pour sélectionner la région AWS où votre fonction Lambda est hébergée. À partir de là, recherchez l’ARN qui correspond à la version et à l’architecture Ruby de votre fonction Lambda. Il devrait y avoir deux options : X86 et ARM64. Utilisez le bouton Copy to clipboard ou copiez manuellement la chaîne ARN.
Dans la section Specify an ARN du formulaire de la console AWS, collez l’ARN de la couche New Relic Lambda.
Dans le formulaire de la console AWS, cliquez sur le bouton Add pour ajouter la couche à votre fonction Lambda.
Sur la page de votre fonction Lambda, avec l’onglet Code par défaut sélectionné, faites défiler jusqu’à la section Runtime settings et cliquez sur le bouton Edit .
Créez une copie sécurisée de la valeur du gestionnaire (Handler) existante. Vous en aurez besoin pour une étape ultérieure.
Modifiez la valeur du gestionnaire (Handler) sur : newrelic_lambda_wrapper.handler et cliquez sur Save.
Passez à l'onglet de Configuration sur la page de votre fonction Lambda.
Sélectionnez le sous-onglet Environment variables et, en fonction de vos besoins, définissez les variables d’environnement.
Modifiez le rôle d’exécution pour autoriser l’accès au secret de la clé de licence New Relic.
Trouvez l'ARN du secret nommé NEW_RELIC_LICENSE_KEY.
Ajoutez une nouvelle politique en ligne dans le rôle d’exécution de la fonction qui ressemble au code ci-dessous. Remplacez le SECRET_ARN par la valeur que vous avez trouvée ci-dessus.
"Statement":[
{
"Action":[
"secretsmanager:GetSecretValue"
],
"Resource":"SECRET_ARN",
"Effect":"Allow"
}
]
Conseil
La couche New Relic fournira automatiquement l'agent New Relic Ruby et sera chargée via un Ruby require avant l'appel de votre fonction Lambda. Pour éviter les conflits, n'incluez pas de copie de l'agent Ruby ailleurs. N'hésitez pas à effectuer tous les appels d'agent API New Relic Ruby souhaités au sein de votre fonction pour profiter de la présence de l'agent.
Dans votre console de gestion AWS, dans l'onglet configuration, ajoutez la tag NR.Apm.Lambda.Mode: true à votre fonction Lambda.
Déployez votre fonction Lambda avec la configuration mise à jour.
Les environnements d'exécution Java, Python, Node.js et .Net suivront le même flux d'instrumentation que Ruby, mais avec des gestionnaires différents. Voici comment mettre à jour le gestionnaire de votre fonction pour qu'il pointe vers la couche nouvellement attachée dans la console pour votre fonction :
Pour .Net, vous n'avez pas besoin de définir le gestionnaire.
Notez que pour Go, vous devez apporter des modifications au code source de votre fonction Lambda pour l'instrumenter. Les changements de configuration ne suffisent pas.
Rechercher et utiliser des données
Une fois votre fonction AWS Lambda instrumentée, vous pouvez trouver et utiliser les données dans l'interface New Relic APM. Les données sont organisées en plusieurs domaines clés, chacun fournissant des informations différentes détaillées sur les performances et l'état de votre fonction Lambda.
Dans l'interface APM, vous pouvez explorer différents aspects de votre fonction Lambda, notamment le tracing distribué, les cartes de services, les transactions, l'analyse des erreurs et bien plus encore. Chacune de ces zones fournit des informations détaillées sur les performances, la latence et le taux d'erreur de votre fonction Lambda, vous permettant d'identifier et de résoudre rapidement les problèmes.
Conseil
L'expérience d'invocation est désormais intégrée à la trace de transaction APM. Cela vous permet d'utiliser un AWS RequestId spécifique pour explorer en détail une trace de transaction APM afin d'obtenir des informations détaillées sur cette exécution Lambda particulière.
Pour afficher votre fonction Lambda dans l'interface New Relic APM :