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
We recommend integrating your AWS account using the AWS integration to automatically discover and monitor your Lambda functions. This allows you to leverage the full power of New Relic APM for your serverless functions.
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 .
Depending on your needs, you can choose to either bypass the extension and only see telemetry in CloudWatch, bypass CloudWatch, or use CloudWatch as a fallback. The CloudWatch section at the end of this doc will guide you through each 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.
AWS's Serverless Application Model, or SAM, is a variant of CloudFormation templates that simplifies relating functions to the resources they depend on, and managing the lifecycle of an entire application. We use SAM and CloudFormation for most of our Lambda example functions, and many other tools are built on top of CloudFormation templates, providing an additional layer of abstraction.
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 :
Install the New Relic Lambda layer. Below are examples for Node.js and Java agent Lambda functions.
Node.js example:
AWSTemplateFormatVersion:'2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An 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.
While it's more error-prone and labor-intensive than the approaches above, you can manually alter the configuration of a Lambda function to use New Relic from the AWS Lambda Console, for Node.js, Python, Ruby, and 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.
In the APM interface, you can explore various aspects of your Lambda functions including distributed tracing, service maps, transactions, error analysis, and more. Each of these areas provides detailed insights into the performance, latency, and error rates of your Lambda functions, allowing you to quickly identify and resolve issues.
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 :