Une visibilité unifiée sur les comportements les plus détaillés de votre fonction .NET Lambda est essentielle pour que vous puissiez comprendre ce qui se passe dans votre application sans serveur. Ces informations vous permettent de dépanner et d'optimiser vos fonctions afin qu'elles puissent fonctionner plus rapidement et fournir des résultats cohérents.
Vous pouvez choisir entre deux approches instrumentation pour obtenir une visibilité sur votre fonction .NET Lambda:
Utilisez les conseils ci-dessous pour vous aider à décider quelle approche vous convient le mieux.
Comparaison des fonctionnalités
Le tableau suivant décrit les différentes exigences et capacités de chaque approche :
Agent .NET de New Relic | Distribution AWS pour OpenTelemetry | |
---|---|---|
Nécessite des modifications de code | Non | Oui |
Nécessite un outil pour envoyer des données | Oui | Non |
Expérience de l'UI de New Relic | ||
Tracing distribué | Oui | |
Métriques | Non | Oui |
trace de transaction | Oui | N/A |
Événement de transaction | Oui | |
Événement/série d'erreurs | Oui | Oui |
Événement ou spans | Oui | Oui |
Trace SQL | Oui | N/A |
Profilage de filetage | Non | N/A |
Gestion des vulnérabilités | Non | N/A |
Appels externes | Oui | |
instrumentation personnalisée utilisant XML | Non | Non |
instrumentation personnalisée utilisant API | Oui (agent) | Oui (OpenTelemetry) |
Métriques personnalisées | Non | Oui |
Événements personnalisés | Oui | N/A |
Travées personnalisées | Oui | Oui |
Erreurs personnalisées | Oui | Non |
Les attributs personnalisés | Oui | Oui |
Logs | Oui | Oui |
traçage inter-applicationhérité | Non | Non |
Informations
Les journaux en contexte seront capturés par Lambda l'extension ou CloudWatch, et non par leagent transfert de intégré logà .
Agent .NET de New Relic
À partir de la agent version 10.26.0 , l'agent .NET de New Relic prend en charge la fonction instrumentée AWS Lambda. Dans la plupart des cas, l'agent .NET instrumente automatiquement votre fonction AWS Lambda. L'avantage d'utiliser l'agent est que dans la plupart des cas, aucune modification de code n'est requise pour monitorer votre fonction Lambda.
Dans une fonction Lambda, l'agent passera en « mode sans serveur » qui désactivera l'envoi de données directement à New Relic, ainsi que désactivera certaines autres fonctionnalités. Pour envoyer des données à New Relic, vous devez utiliser l'extension New Relic Lambda (incluse dans notre couche d'agent .NET) ou CloudWatch.
Étant donné que agent agent l'package instrumente automatiquement la plupart des fonctions Lambda, vous pouvez utiliser le NuGet pour monitorer votre fonction Lambda. Vous devez configurer manuellement les variables d'environnement pour la méthode de déploiement choisie (consultez notre guide d'installation). Cela nécessite toujours que vous configuriez l'extension New Relic Lambda ou l'intégration CloudWatch pour envoyer vos données à New Relic.
instrumentation automatique est disponible pour les types de fonctions AWS Lambda suivants (à partir de la version 10.29.0 agent ) :
- Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction
- Amazon.Lambda.AspNetCoreServer.APIGatewayHttpApiV2ProxyFunction
- Amazon.Lambda.AspNetCoreServer.ApplicationLoadBalancerFunction
Limites:
- Les méthodes lambda génériques ne sont pas instrumentées automatiquement. Si votre méthode lambda est une méthode générique, telle que
Task<TResponse> MyMethod<TRequest, TResponse>(TRequest, ILambdaContext)
, l'agent .NET n'est actuellement pas en mesure d'instrumenter cette méthode. - Le framework d'annotations Lambda n'est actuellement pas pris en charge.
- L'événement ApiGatewayV2 manque du contexte requis pour le traçage distribué.
- Le traçage sortant distribué pour différents appels AWS SDK (tels que SQS) n'est pas pris en charge.
- Si votre gestionnaire de fonction Lambda n’inclut pas de paramètre
ILambdaContext
, l’agent .NET ne pourra pas collecter toutes les informations attendues sur votre fonction Lambda. - Les fonctions .NET Lambda construites avec la méthode de déploiement AOT native ne sont pas prises en charge.
Important
La prise en charge du Serverless Framework Plugin pour la fonction .NET Lambda commence dans la version 5.3.0 du plugin sans serveur. Si vous exécutez une version du plugin sans serveur antérieure à la v5.3.0, la mise à niveau vers la version 5.3.0 ou une version ultérieure instrumentera automatiquement votre fonction .NET Lambda. Vous pouvez utiliser l'instruction exclude dans votre serverless.yml pour exclure des fonctions de l'instrumentation automatique.
Prise en charge Lambda de la distribution AWS pour OpenTelemetry (ADOT) pour .NET
L'OpenTelemetry Lambda instrumentation pour .NET fournit d'extension et de traçage que API vous pouvez utiliser pour instrumenter votre fonction Lambda. ADOT est disponible sous forme de couche pour faciliter son installation. La couche ADOT Lambda fournit une version réduite de la distribution AWS pour OpenTelemetry Collector, qui peut exporter des données OpenTelemetry vers New Relic. Au lieu de Serverless UI l’expérience , cette approche utilisera l’ OpenTelemetry UI.
Cette méthode nécessite une configuration manuelle initiale en fonction de votre méthode de déploiement.
Pour plus de détails installation , consultez tracez votre fonction .NET Lambda avec New Relic et OpenTelemetry.