Tracing distribué avec des applications sans serveur
Associez vos traces sans serveur à vos métriques pour permettre à Datadog de vous offrir une vue d’ensemble détaillée et contextualisée des performances de votre application. Compte tenu de la nature distribuée des applications sans serveur, vous pouvez ainsi mieux dépanner les problèmes de performance.
Les bibliothèques de tracing Python, Node.js, Ruby, Go, Java et .NET Datadog prennent en charge le tracing distribué pour AWS Lambda.
Choisir votre solution de tracing
Vous souhaitez tirer profit de la surveillance sans serveur ? Suivez
ces étapes d'installation pour commencer sur de solides bases.
Pour comment à utiliser la solution APM Datadog avec votre solution sans serveur, vous pouvez choisir de générer des traces à l’aide du client de tracing Datadog (dd-trace
) ou récupérer des traces X-Ray à partir d’AWS.
APM Datadog with dd-trace | APM Datadog avec AWS X-Ray |
---|
Utilise les bibliothèques d’intégration de l’APM Datadog pour un tracing de bout en bout. | Traces récupérées depuis AWS X-Ray. |
Traces affichées en temps réel dans Datadog. | Données des traces disponibles dans Datadog après quelques minutes |
Échantillonnage basé sur le tailing et filtres de rétention basés sur les tags entièrement personnalisables. | Taux d’échantillonnage non configurable. |
Prise en charge des runtimes Lambda. | Prise en charge des runtimes Lambda. |
Recommandations de runtime
Python et Node.js
La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Python et Node.js prennent en charge les fonctionnalités suivantes :
- Corrélation automatique des logs Lambda et des traces avec l’ID de trace et l’injection de traces
- Installation sans modification du code à l’aide des intégrations Serverless Framework, AWS SAM et AWS CDK
- Le tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval
- Tracing des appels Lambda consécutifs effectués avec AWS SDK.
- Tracing des appels Lambda asynchrones via AWS Managed Services
- API Gateway
- SQS
- SNS
- Intégration directe de SNS et SQS
- Kinesis
- EventBridge
- Tracing de dizaines de bibliothèques supplémentaires Python et Node.js prêtes à l’emploi
Pour les applications sans serveur Python et Node.js, Datadog vous conseille d’installer les bibliothèques de tracing Datadog. Si vous devez effectuer pour votre application un tracing actif d’AWS X-Ray dans des services AWS gérés, comme AppSync ou Step Functions, il est recommandé d’enrichir vos traces AWS X-Ray à l’aide de la solution APM Datadog. Pour ce faire, configurez à la fois les bibliothèques de tracing d’APM Datadog et d’AWS X-Ray, tel que décrit dans la section Fusion de traces sans serveur.
Si vous effectuez déjà le tracing de vos fonctions sans serveur avec X-Ray, et que vous souhaitez continuer à utiliser ce service, vous pouvez installer l’intégration AWS X-Ray.
Vous souhaitez tracer d’autres ressources sans serveur ? Créez une demande de fonctionnalité sur cette page.
Ruby
La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Ruby prennent en charge les fonctionnalités suivantes :
- Corrélation automatique des logs Lambda et des traces avec l’ID de trace et l’injection de traces
- Le tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval
- Tracing de dizaines de bibliothèques supplémentaires Ruby prêtes à l’emploi
Vous pouvez tracer vos fonctions sans serveur dans Datadog avec les bibliothèques de tracing Datadog, ou en installant l’intégration AWS X-Ray. Si vous utilisez les bibliothèques de tracing Datadog et devez associer des traces de fonctions Lambda dans plusieurs services AWS gérés, Datadog vous conseille d’enrichir vos traces en configurant à la fois les bibliothèques de tracing d’APM Datadog et d’AWS X-Ray.
Vous souhaitez tracer d’autres ressources sans serveur ? Créez une demande de fonctionnalité sur cette page.
Go
La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Go prennent en charge les fonctionnalités suivantes :
- Corrélation manuelle des logs Lambda et des traces avec l’ID de trace et l’injection de traces
- Le tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval
- Tracing de dizaines de bibliothèques supplémentaires Go prêtes à l’emploi
Pour les applications sans serveur Go, Datadog vous conseille d’installer les bibliothèques de tracing Datadog. Si vous devez effectuer pour votre application un tracing actif d’AWS X-Ray dans des services AWS gérés, comme API Gateway ou Step Functions, vous pouvez envisager d’utiliser plutôt le tracing AWS X-Ray avec APM Datadog.
Vous souhaitez tracer d’autres ressources sans serveur ? Créez une demande de fonctionnalité sur cette page.
Java
La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Java prennent en charge les fonctionnalités suivantes :
- Mise en corrélation des logs Lambda et des traces avec l’ID de trace et l’injection de traces (voir la section Associer vos logs Java à vos traces pour en savoir plus)
- Le tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval
- Tracing de dizaines de bibliothèques supplémentaires Java prêtes à l’emploi
Pour les applications sans serveur Java, Datadog vous conseille d’installer les bibliothèques de tracing Datadog. Si vous devez effectuer pour votre application un tracing actif d’AWS X-Ray dans des services AWS gérés, comme API Gateway ou Step Functions, vous pouvez envisager d’utiliser plutôt le tracing AWS X-Ray avec APM Datadog.
Vous souhaitez partager votre avis sur les bibliothèques de tracing Datadog pour les fonctions Lambda Java ? N’hésitez pas à rejoindre le canal #serverless de la communauté Slack Datadog pour participer aux discussions.
.NET
La bibliothèque de tracing pour .NET prend en charge les fonctionnalités suivantes :
- Tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval
- Tracing de dizaines de bibliothèques supplémentaires .NET prêtes à l’emploi
Pour les applications sans serveur .NET, Datadog vous conseille d’installer les bibliothèques de tracing Datadog. Si vous devez effectuer pour votre application un tracing actif d’AWS X-Ray dans des services AWS gérés, comme API Gateway ou Step Functions, vous pouvez envisager d’utiliser plutôt le tracing AWS X-Ray avec APM Datadog.
En savoir plus sur le tracing via des applications sans serveur Azure .NET.
Environnements hybrides
Si vous avez installé les bibliothèques de tracing Datadog (dd-trace
) sur vos fonctions Lambda et vos hosts, vos traces dressent automatiquement un tableau complet des requêtes qui franchissent les limites de votre infrastructure, qu’il s’agisse de fonctions Lambda AWS, de hosts sur site ou de services gérés.
Si vous avez installé dd-trace
sur vos hosts avec l’Agent Datadog, et si le tracing de vos fonctions sans serveur passe par AWS X-Ray, il est nécessaire de fusionner les traces pour afficher une trace unique et associée dans votre infrastructure. Consultez la section Fusion de traces sans serveur pour en savoir plus sur la fusion de traces entre dd-trace
et AWS X-Ray.
L’intégration Datadog/AWS X-Ray fournit uniquement des traces pour les fonctions Lambda. Consultez la documentation relative à la solution APM Datadog pour en savoir plus sur le tracing dans des environnements basés sur des conteneurs ou des hosts.
Activer l’APM Datadog
Les bibliothèques de tracing Python, Node.js, Ruby, Go, Java et .NET Datadog prennent en charge le tracing distribué pour AWS Lambda. Pour activer le tracing sur vos fonctions, suivez les instructions d’installation.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: