Tracer des applications Java
Exigences de compatibilité
Le dernier traceur Java prend en charge toutes les versions de JVM à partir de 8. Pour des informations supplémentaires sur les versions de JVM inférieures à 8, lisez Runtimes JVM pris en charge.
Pour obtenir la liste complète des frameworks et versions Java pris en charge (y compris les anciennes versions et les versions de maintenance), consultez la section relative aux exigences de compatibilité.
Démarrage
Avant de commencer, vérifiez que vous avez bien installé et configuré l’Agent.
Instrumentez votre application
Après avoir installé et configuré votre agent Datadog, l’étape suivante consiste à ajouter le SDK directement dans l’application pour l’instrumenter. En savoir plus sur informations de compatibilité.
Pour commencer à tracer vos applications :
- Téléchargez
dd-java-agent.jar qui contient les derniers fichiers de classe du traceur, dans un dossier accessible par votre utilisateur Datadog :
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
curl -Lo dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
ADD 'https://dtdg.co/latest-java-tracer' dd-java-agent.jar
Remarque : Pour télécharger la dernière version d’une version majeure spécifique, utilisez le https://dtdg.co/java-tracer-vX lien à la place, où X est la version majeure souhaitée.
Par exemple, utilisez https://dtdg.co/java-tracer-v1 pour la dernière version 1. Les numéros de version mineure ne doivent pas être inclus. Vous pouvez également récupérer n’importe quelle version spécifique depuis le référentiel Maven de Datadog.
Remarque : Les versions candidates (Release Candidate) sont disponibles sur GitHub DataDog/dd-trace-java releases. Celles-ci contiennent “RC” dans la version et sont recommandées pour des tests en dehors de votre environnement de production. Vous pouvez vous abonner aux notifications de version GitHub pour être informé lorsque de nouveaux Release Candidates sont disponibles pour des tests. Si vous rencontrez des problèmes avec les versions candidates (Release Candidates), contactez le support Datadog.
Pour exécuter votre application depuis un IDE, un script d’application Maven ou Gradle, ou java -jar une commande, avec le Continuous Profiler, le suivi des déploiements et l’injection de journaux (si vous envoyez des journaux à Datadog), ajoutez l’argument -javaagent JVM et les options de configuration suivantes, selon le cas :
java -javaagent:/path/to/dd-java-agent.jar -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.service=my-app -Ddd.env=staging -Ddd.version=1.0 -jar path/to/your/app.jar
Note: If you have a strong need to reduce the size of your image and omit modules, you can use the jdeps command to identify dependencies. However, required modules can change over time, so do this at your own risk.
Note: When running the SDK with Java 24+, you may see warnings related to JNI native access. Suppress these warnings by adding the --enable-native-access=ALL-UNNAMED flag. See JEP 472 for more details.
L'activation du profilage peut avoir un impact sur votre facture en fonction de votre forfait APM. Consultez la
page de tarification pour plus d'informations.
| Variable d’environnement | Propriété système | Description |
|---|
DD_ENV | dd.env | Votre environnement d’application (production, staging, etc.) |
DD_LOGS_INJECTION | dd.logs.injection | Activez l’injection automatique de clés MDC pour les identifiants de trace et de span Datadog. Voir Utilisation avancée pour plus de détails.
À partir de la version 1.18.3, si Configuration à distance de l’agent est activée où ce service s’exécute, vous pouvez définir DD_LOGS_INJECTION dans l’interface utilisateur du Catalogue de logiciels. |
DD_PROFILING_ENABLED | dd.profiling.enabled | Activez le Continuous Profiler |
DD_SERVICE | dd.service | Le nom d’un ensemble de processus qui effectuent le même travail. Utilisé pour regrouper les statistiques de votre application. |
DD_TRACE_SAMPLE_RATE | dd.trace.sample.rate | Définissez un taux d’échantillonnage à la racine de la trace pour tous les services.
À partir de la version 1.18.3, si Configuration à distance de l’agent est activée où ce service s’exécute, vous pouvez définir DD_TRACE_SAMPLE_RATE dans l’interface utilisateur du Catalogue de logiciels. |
DD_TRACE_SAMPLING_RULES | dd.trace.sampling.rules | Définissez un taux d’échantillonnage à la racine de la trace pour les services qui correspondent à la règle spécifiée. |
DD_VERSION | dd.version | Votre version d’application (par exemple, 2.5, 202003181415 ou 1.3-alpha) |
Des options de configuration supplémentaires sont décrites ci-dessous.
Ajoutez le SDK Java à la JVM
Utilisez la documentation de votre serveur d’application pour déterminer la bonne façon de passer -javaagent et d’autres arguments JVM. Voici des instructions pour certains frameworks couramment utilisés :
Si votre application s’appelle my_app.jar, créez un my_app.conf, contenant :
JAVA_OPTS=-javaagent:/path/to/dd-java-agent.jar
Pour en savoir plus, consultez la documentation relative à Spring Boot.
Linux
Pour activer le traçage lors de l’exécution de Tomcat sous Linux :
- Ouvrez votre fichier de script de démarrage Tomcat, par exemple
setenv.sh. - Ajoutez ce qui suit à
setenv.sh :CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/dd-java-agent.jar"
Windows (Tomcat en tant que service Windows)
Pour activer le traçage lors de l’exécution de Tomcat en tant que service Windows :
- Ouvrez l’utilitaire de maintenance “tomcat@VERSION_MAJOR@w.exe” situé dans le répertoire
./bin du dossier du projet Tomcat. - Naviguez vers l’onglet Java, et ajoutez ce qui suit à
Java Options :
-javaagent:C:\path\to\dd-java-agent.jar
- Redémarrez vos services Tomcat pour que les modifications prennent effet.
JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/dd-java-agent.jar"
- En mode autonome et sur Windows, ajoutez la ligne suivante à la fin de
standalone.conf.bat :
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:X:/path/to/dd-java-agent.jar"
<option value="-javaagent:/path/to/dd-java-agent.jar"/>
Pour en savoir plus, consultez la documentation relative à JBoss.
Si vous utilisez jetty.sh pour démarrer Jetty en tant que service, modifiez-le pour ajouter :
JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/dd-java-agent.jar"
Si vous utilisez start.ini pour démarrer Jetty, ajoutez la ligne suivante (sous --exec, ou ajoutez la ligne --exec si elle n’est pas encore là) :
-javaagent:/path/to/dd-java-agent.jar
Dans la console d’administration :
- Sélectionnez Serveurs. Sous Type de serveur, sélectionnez serveurs d’application WebSphere et sélectionnez votre serveur.
- Sélectionnez Java et Gestion des processus > Définition du processus.
- Dans la section Propriétés supplémentaires, cliquez sur Machine virtuelle Java.
- Dans le champ de texte Arguments JVM génériques, entrez :
-javaagent:/path/to/dd-java-agent.jar
Pour plus d’informations et d’options, consultez la documentation de WebSphere.
Remarque
Si vous ajoutez l’argument -javaagent à votre commande java -jar, il doit être ajouté avant l’argument -jar, en tant qu’option JVM, et non en tant qu’argument d’application. Exemple :
java -javaagent:/path/to/dd-java-agent.jar -jar my_app.jar
For more information, see the Oracle documentation.
N’ajoutez jamais dd-java-agent à votre classpath. Cela peut provoquer un comportement inattendu.
Instrumentation automatique
L’instrumentation automatique pour Java utilise les capacités d’instrumentation java-agent fournies par la JVM. Lorsqu’un java-agent est enregistré, il peut modifier les fichiers de classe au moment du chargement.
Remarque : Les classes chargées avec un ClassLoader distant ne sont pas instrumentées automatiquement.
L’instrumentation peut provenir de l’auto-instrumentation, de l’API OpenTracing, ou d’un mélange des deux. L’instrumentation capture généralement les informations suivantes :
- La durée de temporisation est capturée à l’aide de l’horloge NanoTime de la JVM, sauf si un horodatage est fourni par l’API OpenTracing
- Paires de balises clé/valeur
- Erreurs et traces de pile qui ne sont pas gérées par l’application
- Un compte total de traces (requêtes) circulant dans le système
Configuration
Si nécessaire, configurez le SDK pour envoyer les données de télémétrie de performance de l’application selon vos besoins, y compris la configuration du Unified Service Tagging. Lisez Configuration de la bibliothèque pour plus de détails.
Configuration distante
La Configuration distante permet à l’Agent Datadog de configurer dynamiquement les paramètres de traçage sans nécessiter de redémarrages d’application. Par défaut, la Configuration distante est activée. Pour le désactiver, définissez la variable d’environnement :
DD_REMOTE_CONFIG_ENABLED=false
Ou ajoutez la propriété système JVM :
-Ddd.remote_config.enabled=false
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: