Lorsque vous instrumentez des fonctions Lambda avec une couche OpenTelemetry (OTel), la variable d’environnement OTEL_SERVICE_NAME contrôle à quelle entité la télémétrie de votre fonction est attribuée dans New Relic. Par défaut, chaque fonction est signalée comme une entité distincte. Définir le même OTEL_SERVICE_NAME sur plusieurs fonctions regroupe toute leur télémétrie sous une seule entité.
Aucune modification du code de l’application n’est requise. La couche Lambda OTel gère l’instrumentation automatiquement : vous configurez uniquement les variables d’environnement qui contrôlent la destination des données.
Prérequis
- Un compte New Relic avec une clé API.
- Fonctions Lambda instrumentées avec la couche New Relic OTel Lambda.
Définissez le nom de l’entité OTel
Définissez OTEL_SERVICE_NAME comme variable d'environnement Lambda :
OTEL_SERVICE_NAME = my-service-nameToute la télémétrie de cette fonction est attribuée à une entité OTel nommée my-service-name dans New Relic. Si aucune entité portant ce nom n’existe, une est créée automatiquement.
Important
OTEL_SERVICE_NAME n’est pas permanent. Si vous mettez à jour la valeur et redéployez, la fonction commence à rapporter sous le nouveau nom d’entité à partir de ce moment-là. New Relic ne migre pas l’historique précédent : l’ancienne entité conserve ses données, mais cesse de recevoir de la nouvelle télémétrie.
Grouper des fonctions Lambda sous une seule entité
Pour grouper deux fonctions Lambda ou plus sous une seule entité OTel, donnez à chaque fonction la même valeur OTEL_SERVICE_NAME. C’est la seule configuration requise.
# Function A (us-east-1)OTEL_SERVICE_NAME = payment-service
# Function B (eu-west-1)OTEL_SERVICE_NAME = payment-serviceLes deux fonctions remontent désormais les données dans une seule entité payment-service dans New Relic.
Comportement de l’entité
Les fonctions partageant la même valeur OTEL_SERVICE_NAME et le même compte New Relic sont regroupées sous une seule entité OTel dans l'UI de New Relic.
Important
Changer OTEL_SERVICE_NAME crée une nouvelle entité OTel. 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 OTEL_SERVICE_NAME. Toutes ces fonctions sont rattachées à une seule entité OTel, 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 OTEL_SERVICE_NAME créent des entités OTel distinctes : une par environnement d’exécution. Le regroupement ne traverse pas les limites de l’environnement d’exécution. Il s’agit du comportement attendu d’OTel : l’identité de l’entité inclut le type de langage, et pas seulement le nom du service.
Changements de nom d’entité
Scénario | Résultat |
|---|---|
Définir
pour la première fois | Nouvelle entité créée ; la télémétrie y circule immédiatement |
Mettre à jour
et redéployer | Nouvelle entité créée pour le nouveau nom ; l’ancienne entité conserve l’historique, mais cesse de recevoir de la télémétrie |
Supprimer
| La fonction recommence à remonter les données sous le nom de la fonction Lambda (
) |
Préserver faas.name dans les Processeurs du collecteur
Prudence
faas.name est renseigné automatiquement pour Lambda par la couche OTel : ne le supprimez pas (ne l’effacez pas ou ne le renommez pas). New Relic l’utilise pour reconnaître le span parent (SERVER) comme une invocation Lambda. Le supprimer entraîne :
- Le span parent à exclure de la synthèse de métrique
- Nombre de transactions incomplet, ou incorrect
- La résolution de l’entité en tant que
EXT|SERVICEau lieu d’une entité Lambda, cassant la fonctionnalité group-by ainsi que le tag et le filtragecloud.resource_id