Code Origin pour les spans
Aperçu
Code Origin capture les emplacements exacts dans votre codebase où les spans APM sont créés. Lorsqu’il est activé sur un service compatible, il ajoute automatiquement le chemin du fichier, le numéro de ligne et le nom de la fonction à chaque span d’entrée de service, facilitant ainsi :
- Déboguer les problèmes de performance
- Comprendre le flux d’exécution du code
- Identifier les goulets d’étranglement de performance
Dans Trace Explorer, sélectionnez un span d’un service activé pour voir les détails de Code Origin dans l’onglet Aperçu :
Commencer
Prérequis
Exigences de compatibilité
| Version SDK | Frameworks |
|---|
| 1.47.0+ | Spring Boot/Data, serveurs gRPC, Micronaut 4, consommateurs Kafka |
Limitation : Sur JDK 18 et inférieur, les classes compilées avec le -parameters flag peuvent ne pas être prises en charge. Spring 6+, Spring Boot 3+ et Scala utilisent ce flag par défaut.
| Version SDK | Frameworks |
|---|
| 2.15.0+ | Django, Flask, Starlette et dérivés |
| Version SDK | Frameworks |
|---|
| 4.49.0+ | Fastify |
| 5.54.0+ | Express |
Remarque : NestJS n’est pas pris en charge, même si le framework sous-jacent est soit Express soit Fastify.
| Version SDK | Frameworks |
|---|
| 3.15.0+ | ASP.NET, ASP.NET Core |
| Version SDK | Frameworks |
|---|
| 1.11.0+ | Tous les frameworks web pris en charge |
Activer Code Origin
Exécutez votre service avec la variable d’environnement suivante :
export DD_CODE_ORIGIN_FOR_SPANS_ENABLED=true
Pour les applications Node.js transpilées (par exemple, TypeScript), assurez-vous de générer et de publier des cartes sources avec l'application déployée, exécutez Node.js avec le
--enable-source-maps flag, et utilisez v5.59.0 ou une version plus récente du traceur Node.js. Sinon, les aperçus de code ne fonctionnent pas. Consultez la documentation Node.js
Intégration du Code Source pour plus de détails.
Utilisation de Code Origin
Dans Trace Explorer
Naviguez vers le Trace Explorer.
Recherchez “Service Entry Spans” parmi vos services activés pour Code Origin.
Cliquez sur un span pour voir ses détails.
Dans le panneau latéral des détails de trace, recherchez la section “Code Origin”.
À partir de la section Code Origin :
Démarrez une session de Débogueur en Direct sur le service en cours d’exécution en cliquant sur “Démarrer la Session de Débogage” pour capturer les journaux à l’emplacement de la méthode de Code Origin. Ou, sélectionnez un point d’arrêt dans la marge de l’aperçu du code pour capturer les journaux à la ligne de code sélectionnée.
Click on source code variables to add them as attributes to future spans with Dynamic Instrumentation.
Dans votre IDE
Configurez votre Intégration IDE Datadog.
- IDEs pris en charge : IntelliJ, VS Code
- Langages pris en charge : Java, Python
Affichez les métriques RED (Requêtes, Erreurs et Durée) en tant qu’annotations en ligne au-dessus de vos méthodes de point de terminaison.
Dépannage
La section Code Origin est manquante
Vérifiez que Code Origin est activé dans la configuration de votre SDK.
Confirmez que votre service répond à toutes les exigences de compatibilité (c’est-à-dire, langage de service, frameworks pris en charge et version minimale du traceur).
Pour la plupart des services, les données de Code Origin sont capturées uniquement pour les service entry spans. Vous pouvez filtrer sur “Service Entry Spans” dans l’APM Trace Explorer.
L’aperçu du code n’est pas visible ou le fichier est introuvable
- Assurez-vous que toutes les exigences de configuration de l’Source Code Integration sont respectées, y compris que vos
DD_GIT_* variables d’environnement sont configurées avec les bonnes valeurs. - Pour les applications Node.js transpilées (par exemple, TypeScript), assurez-vous de générer et de publier des cartes sources avec l’application déployée, d’exécuter Node.js avec le
--enable-source-maps flag, et d’utiliser v5.59.0 ou une version plus récente du traceur Node.js. Sinon, les aperçus de code ne fonctionneront pas. Consultez la documentation de Source Code Integration de Node.js pour plus de détails. - Code Origin est conçu pour référencer uniquement le code utilisateur, mais dans certains cas, des références de code tiers peuvent passer inaperçues. Vous pouvez signaler ces cas au support Datadog et aider à améliorer ces références.
Pour en savoir plus
Documentation, liens et articles supplémentaires utiles: