NEW_RELIC_APP_NAME est une variable d’environnement Lambda qui contrôle à quelle entité APM la télémétrie de votre fonction est attribuée dans New Relic. Lorsqu’elle est définie, la télémétrie de votre fonction Lambda apparaît sous une entité APM nommée de votre choix au lieu d’utiliser par défaut le nom de la fonction Lambda.
Comment ça marche
Lorsque NEW_RELIC_APM_LAMBDA_MODE est true, l’extension Lambda New Relic effectue un appel APM connect à chaque démarrage à froid. Elle utilise NEW_RELIC_APP_NAME (ou se rabat sur AWS_LAMBDA_FUNCTION_NAME s’il n’est pas défini) comme app_name dans cet appel. Le collecteur APM résout ou crée une entité pour ce nom et renvoie son GUID. Toute la télémétrie produite pendant cette invocation est taguée avec ce GUID et apparaît sous l’entité nommée dans New Relic.
Configuration
Définissez NEW_RELIC_APP_NAME comme variable d’environnement Lambda. Aucune modification de code n’est requise : l’extension s’en charge automatiquement au démarrage à froid.
NEW_RELIC_APP_NAME = my-entity-nameExécutions prises en charge
NEW_RELIC_APP_NAME est pris en charge par tous les runtimes Lambda en mode APM - Python, Node.js, Java, Ruby. .NET et Go.
Durée d'exécution | Soutenu |
|---|---|
Python | Oui |
Node.js | Oui |
Java | Oui |
Ruby | Oui |
.NET | Oui |
Go | Oui |
Comportement de l’entité
Les fonctions partageant la même valeur NEW_RELIC_APP_NAME et le même compte New Relic sont regroupées sous une seule entité APM dans l'UI de New Relic.
Si le nom que vous définissez correspond à une entité APM existante — par exemple, une entité déjà créée par un service non-Lambda —, la télémétrie de votre fonction Lambda fusionne automatiquement avec cette entité. Aucune entité distincte n'est créée.
Important
La modification de NEW_RELIC_APP_NAME crée une nouvelle entité APM. Les données historiques associées au nom précédent ne sont pas migrées vers la nouvelle entité.
Reporting multi-régions
Plusieurs fonctions Lambda déployées dans différentes régions AWS peuvent partager le même NEW_RELIC_APP_NAME. Toutes ces fonctions remontent à une seule entité APM, quelle que soit la région dans laquelle elles sont déployées.
Pour distinguer les fonctions individuelles ou les déploiements spécifiques à une région au sein de l’entité groupée, filtrez par l’attribut tags.aws.arn dans NRQL ou utilisez la barre de filtrage par tag dans la vue de l’entité.
Reporting inter-runtime
Les fonctions Lambda utilisant des environnements d’exécution différents (par exemple, une fonction Python et une fonction Node.js) qui partagent le même NEW_RELIC_APP_NAME créent des entités APM distinctes : une par environnement d’exécution. Le groupement ne traverse pas les limites des environnements d’exécution.
Même nom d’application pour les services Lambda et non-Lambda
Si une fonction Lambda et un service APM non-Lambda (par exemple, une application web traditionnelle ou un microservices) sont tous deux configurés avec le même NEW_RELIC_APP_NAME, ils remontent dans la même entité APM.
Cela peut être intentionnel : si vous souhaitez une vue unifiée d'un service qui s'exécute à la fois sur Lambda et sur une infrastructure basée sur des serveurs, le partage du nom permet à toute la télémétrie — transactions, erreurs, débit — d'apparaître à un seul endroit.
Cependant, si cela est fait involontairement, cela peut prêter à confusion. Les métriques, les taux d’erreur et le débit de la fonction Lambda et du service non-Lambda sont combinés, ce qui peut rendre plus difficile le diagnostic des problèmes ou la compréhension des performances de manière indépendante.
Cycle de vie de l’entité, et expiration des tags
Lorsqu’une fonction Lambda cesse de générer des rapports, son entité APM n’est pas immédiatement supprimée. Les tags d’entité (y compris aws.arn) expirent après environ 1 - 2 jours sans télémétrie entrante. L’entité elle-même peut persister plus longtemps en fonction des paramètres de rétention de votre compte.
Dépannage
La télémétrie apparaît toujours sous le nom de la fonction après la configuration NEW_RELIC_APP_NAME
- Confirmez que la variable est définie au niveau de l’environnement Lambda, et pas seulement dans le code de l’application.
- Vérifiez les logs CloudWatch pour les entrées de connexion APM
[NR_EXT]: le champapp_namedoit refléter votre valeur personnalisée. - Assurez-vous que la version de l’extension New Relic Lambda dans votre couche prend en charge cette fonctionnalité.
Deux entités distinctes existent pour la même fonction
Ceci est attendu lorsque NEW_RELIC_APP_NAME est ajouté, ou modifié après que la fonction a déjà commencé à générer des rapports. L'ancienne entité conserve ses données historiques ; toute la nouvelle télémétrie va vers la nouvelle entité.
Deux fonctions Lambda avec le même nom d’application s’affichent comme des entités distinctes
C'est le comportement attendu lorsque les runtimes diffèrent (par exemple, Python vs Node.js). Les fonctions partageant le même runtime et le même NEW_RELIC_APP_NAME remonteront vers une seule entité.