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 :
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
.
Téléchargez dd-java-agent.jar
, qui contient les fichiers de classe de l’Agent Java :
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
Remarque : le profileur est disponible dans la bibliothèque dd-java-agent.jar
dans la version 0.55 et les versions ultérieures.
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>
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 :
Si vous utilisez déjà Datadog, mettez votre Agent à niveau vers la version 7.20.2 ou 6.20.2+.
Installez ddtrace
, qui contient le tracing et le profileur :
Remarque : le profileur est disponible dans la bibliothèque ddtrace
dans la version 0.36 et les versions ultérieures.
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
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 :
Si vous utilisez déjà Datadog, mettez votre Agent à niveau vers la version 7.20.2 ou 6.20.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.
Importez le profileur au démarrage de votre application :
import "gopkg.in/DataDog/dd-trace-go.v1/profiler"
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()
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
Documentation, liens et articles supplémentaires utiles: