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 :

Détails de Code Origin

Commencer

Prérequis

Exigences de compatibilité

Version SDKFrameworks
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 SDKFrameworks
2.15.0+Django, Flask, Starlette et dérivés
Version SDKFrameworks
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 SDKFrameworks
3.15.0+ASP.NET, ASP.NET Core
Version SDKFrameworks
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

  1. Naviguez vers le Trace Explorer.

  2. Recherchez “Service Entry Spans” parmi vos services activés pour Code Origin.

    Code Origin - Rechercher les Service Entry Spans
  3. Cliquez sur un span pour voir ses détails.

  4. Dans le panneau latéral des détails de trace, recherchez la section “Code Origin”.

    Détails de Code Origin dans Trace Explorer
  5. À 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.

      Code Origin - Démarrer la Session de Débogueur en Direct
    • Click on source code variables to add them as attributes to future spans with Dynamic Instrumentation.

      Code Origin - Ajouter une balise span avec Dynamic Instrumentation

Dans votre IDE

  1. Configurez votre Intégration IDE Datadog.

    • IDEs pris en charge : IntelliJ, VS Code
    • Langages pris en charge : Java, Python
  2. 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étails de Code Origin dans l'IDE

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.

    Code Origin - Rechercher les Service Entry Spans

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