Débuter

Débuter

Le profileur est fourni au sein des bibliothèques de tracing suivantes. Sélectionnez votre langage ci-dessous afin d’activer le profileur pour votre application :

Pour recevoir une notification lorsqu’une bêta privée est disponible pour le profileur Node, Ruby, PHP ou .NET, inscrivez-vous ici.

Le profileur Datadog nécessite JDK Flight Recorder. La bibliothèque du profileur Datadog est prise en charge par OpenJDK 11+, Oracle Java 11+, OpenJDK 8 (version 8u262 et ultérieur) et Zulu Java 8+ (version mineure 1.8.0_212+). Tous les langages basés sur une JVM, tels que Scala, Groovy, Kotlin, ou encore Clojure, sont pris en charge. Pour commencer le profiling d’applications :

  1. Si vous utilisez déjà Datadog, mettez votre Agent à jour vers la version 7.20.2+ ou 6.20.2+. Si l’APM n’est pas activé et que votre application n’est pas configurée pour envoyer des données à Datadog, dans votre Agent, définissez la variable d’environnement DD_APM_ENABLED sur true et le port d’écoute sur 8126/TCP.

  2. Téléchargez dd-java-agent.jar, qui contient les fichiers de classe de l’Agent Java :

    wget -O dd-java-agent.jar 'https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.datadoghq&a=dd-java-agent&v=LATEST'
    

    Remarque : le profileur est disponible dans la bibliothèque dd-java-agent.jar dans la version 0.55 et les versions ultérieures.

  3. Définissez le flag -Ddd.profiling.enabled ou la variable d’environnement DD_PROFILING_ENABLED sur true. Mettez à jour l’appel de votre service tel que ci-dessous :

    java -javaagent:dd-java-agent.jar -Ddd.profiling.enabled=true -XX:FlightRecorderOptions=stackdepth=256 -jar <YOUR_SERVICE>.jar <YOUR_SERVICE_FLAGS>
    
  4. Au bout d’une ou de deux minutes, visualisez vos profils en accédant à l’APM Datadog puis à la page Profiling.

Remarques :

  • L’argument -javaagent doit figurer avant -jar et être ajouté en tant qu’option JVM et non en tant qu’argument d’application. Pour en savoir plus, consultez la documentation Oracle (en anglais) :

    # Good:
    java -javaagent:dd-java-agent.jar ... -jar my-service.jar -more-flags
    # Bad:
    java -jar my-service.jar -javaagent:dd-java-agent.jar ...
    
  • Nous vous conseillons vivement de spécifier les tags service et version pour vous permettre de filtrer vos profils selon ces dimensions. Utilisez des variables d’environnement pour définir ces paramètres :

Variable d’environnement Type Description
DD_PROFILING_ENABLED Booléen Alternative à l’argument -Ddd.profiling.enabled. Définissez cette variable d’environnement sur true pour activer le profileur.
DD_SERVICE Chaîne Le nom de votre service, par exemple, web-backend.
DD_ENV Chaîne Le nom de votre environnement, par exemple production.
DD_VERSION Chaîne La version de votre service.
DD_TAGS Chaîne Les tags à appliquer à un profil importé. Doit correspondre à une liste de paires <key>:<value> séparées par des virgules, par exemple : layer:api, team:intake.

Le profileur Datadog nécessite Python 2.7 ou une version ultérieure. Le profiling de mémoire est disponible sur Python 3.5 ou les versions ultérieures. Pour commencer le profiling d’applications :

  1. Si vous utilisez déjà Datadog, mettez votre Agent à niveau vers la version 7.20.2 ou 6.20.2+.

  2. Installez ddtrace, qui contient le tracing et le profileur :

    pip install ddtrace
    

    Remarque : le profileur est disponible dans la bibliothèque ddtrace dans la version 0.36 et les versions ultérieures.

  3. Pour effectuer automatiquement le profiling de votre code, définissez la variable d’environnement DD_PROFILING_ENABLED sur true lorsque vous utilisez ddtrace-run :

    DD_PROFILING_ENABLED=true ddtrace-run python app.py
    

    Remarque : la variable d’environnement DD_PROFILING_ENABLED n’est prise en charge que dans les versions 0.40+ de dd-trace. Utilisez l’autre méthode si vous exécutez une version plus ancienne de dd-trace.

    Autre méthode

    Si vous préférez instrumenter le profileur dans votre code, importez ddtrace.profile.auto. Une fois l’importation terminée, le profileur démarre :

    import ddtrace.profiling.auto
    
  4. Au bout d’une ou de deux minutes, visualisez vos profils en accédant à l’APM Datadog puis à la page Profiler.

  • Nous vous conseillons vivement d’ajouter des tags tels que service et version pour vous permettre de filtrer vos profils selon ces dimensions et ainsi d’améliorer votre expérience globale du produit. Utilisez des variables d’environnement pour définir les paramètres :
Variable d’environnement Type Description
DD_PROFILING_ENABLED Booléen Définissez cette variable d’environnement sur true pour activer le profileur. Elle est prise en charge à partir de la version 0.40 du traceur.
DD_SERVICE Chaîne Le nom du service Datadog.
DD_ENV Chaîne Le nom de l'environnement Datadog, par exemple production.
DD_VERSION Chaîne La version de votre application.
DD_TAGS Chaîne Les tags à appliquer à un profil importé. Doit correspondre à une liste de paires <key>:<value> séparées par des virgules, par exemple : layer:api,team:intake.
Conseillé pour une utilisation avancée uniquement.
  • Lorsque votre processus est dupliqué via os.fork, le profileur est arrêté dans le processus enfant.

    Pour Python 3.7+ sur les plateformes POSIX, si vous avez activé le profileur via ddtrace-run ou ddtrace.profiling.auto, un nouveau profileur est lancé.

    Si vous créez manuellement un Profiler(), utilisez Python < 3.6, ou procédez à l’exécution sur une plateforme non conforme à POSIX, redémarrez manuellement le profileur dans votre enfant avec :

    ddtrace.profiling.auto.start_profiler()
    
  • Si vous souhaitez contrôler manuellement le cycle de vie du profileur, utilisez l’objet ddtrace.profiling.profiler.Profiler :

    from ddtrace.profiling import Profiler
    
    prof = Profiler()
    prof.start()
    
    # At shutdown
    prof.stop()
    

Le profileur Datadog nécessite Go 1.12 ou une version ultérieure. Pour commencer le profiling d’applications :

  1. Si vous utilisez déjà Datadog, mettez votre Agent à niveau vers la version 7.20.2 ou 6.20.2+.

  2. Accédez à dd-trace-go en utilisant la commande :

    go get gopkg.in/DataDog/dd-trace-go.v1
    

    Remarque : le profileur est disponible dans la bibliothèque dd-trace-go dans la version 1.23.0 et les versions ultérieures.

  3. Importez le profileur au démarrage de votre application :

    import "gopkg.in/DataDog/dd-trace-go.v1/profiler"
    
  4. Ajoutez le snippet suivant pour démarrer le profileur :

    err := profiler.Start(
        profiler.WithService("<SERVICE_NAME>"),
        profiler.WithEnv("<ENVIRONMENT>"),
        profiler.WithVersion("<APPLICATION_VERSION>"),
        profiler.WithTags("<KEY1>:<VALUE1>,<KEY2>:<VALUE2>"),
    )
    if err != nil {
        log.Fatal(err)
    }
    defer profiler.Stop()
    
  5. Au bout d’une ou de deux minutes, visualisez vos profils en accédant à l’APM Datadog puis à la page Profiler.

Remarques :

  • Par défaut, seuls les profils du CPU et du tas sont activés. Utilisez profiler.WithProfileTypes pour activer des types de profils supplémentaires.

  • Vous pouvez définir les paramètres du profileur dans le code, à l’aide des fonctions suivantes :

Fonction Type Description
WithService Chaîne Le nom du service Datadog, par exemple my-web-app.
WithEnv Chaîne Le nom de l'environnement Datadog, par exemple production.
WithVersion Chaîne La version de votre application.
WithTags Chaîne Les tags à appliquer à un profil importé. Doit correspond à une liste au format <KEY1>:<VALUE1>,<KEY2>:<VALUE2>.
  • Vous pouvez également définir la configuration du profileur à l’aide de variables d’environnement :
Variable d’environnement Type Description
DD_SERVICE Chaîne Le nom du service Datadog.
DD_ENV Chaîne Le nom de l'environnement Datadog, par exemple production.
DD_VERSION Chaîne La version de votre application.
DD_TAGS Chaîne Les tags à appliquer à un profil importé. Doit correspondre à une liste de paires <key>:<value> séparées par des virgules, par exemple : layer:api,team:intake.

Pour aller plus loin